diff --git a/README.md b/README.md index 381166fc5..585bbd06c 100644 --- a/README.md +++ b/README.md @@ -1,228 +1,24 @@ srsRAN -======== +====== [![Build Status](https://travis-ci.org/srsRAN/srsRAN.svg?branch=master)](https://travis-ci.org/srsRAN/srsRAN) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/srsRAN/srsRAN.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/srsRAN/srsRAN/context:cpp) [![Coverity](https://scan.coverity.com/projects/10045/badge.svg)](https://scan.coverity.com/projects/srsran) -srsRAN is a 4G/5G software radio suite developed by SRS (www.softwareradiosystems.com) -See the srsRAN project pages (www.srsran.com) for documentation, guides and project news. +srsRAN is a 4G/5G software radio suite developed by [SRS](http://www.srs.io). -It includes: - * srsUE - a complete SDR 4G/5G UE application featuring all layers from PHY to IP - * srsENB - a complete SDR LTE eNodeB application - * srsEPC - a light-weight LTE core network implementation with MME, HSS and S/P-GW - * a highly modular set of common libraries for PHY, MAC, RLC, PDCP, RRC, NAS, S1AP and GW layers. +See the [srsRAN project pages](https://www.srsran.com) for information, guides and project news. -For license details, see LICENSE file. - -Common Features ---------------- - - * LTE Release 10 aligned - * Tested bandwidths: 1.4, 3, 5, 10, 15 and 20 MHz - * Transmission mode 1 (single antenna), 2 (transmit diversity), 3 (CCD) and 4 (closed-loop spatial multiplexing) - * Carrier Aggregation support - * QAM256 support in Downlink - * Frequency-based ZF and MMSE equalizer - * Evolved multimedia broadcast and multicast service (eMBMS) - * Highly optimized Turbo Decoder available in Intel SSE4.1/AVX2 (+150 Mbps) - * MAC, RLC, PDCP, RRC, NAS, S1AP and GW layers - * Detailed log system with per-layer log levels and hex dumps - * MAC layer Wireshark packet capture - * Command-line trace metrics - * Detailed input configuration files - * Channel simulator for EPA, EVA, and ETU 3GPP channels - * ZeroMQ-based fake RF driver for I/Q over IPC/network - -srsUE Features --------------- - - * FDD and TDD configuration - * Cell search and synchronization procedure for the UE - * Soft USIM supporting Milenage and XOR authentication - * Hard USIM support using PCSC framework - * Virtual network interface *tun_srsue* created upon network attach - * QoS support - * 150 Mbps DL in 20 MHz MIMO TM3/TM4 or 2xCA configuration (195 Mbps with QAM256) - * 75 Mbps DL in 20 MHz SISO configuration (98 Mbps with QAM256) - * 36 Mbps DL in 10 MHz SISO configuration - -srsUE has been fully tested and validated with the following network equipment: - * Amarisoft LTE100 eNodeB and EPC - * Nokia FlexiRadio family FSMF system module with 1800MHz FHED radio module and TravelHawk EPC simulator - * Huawei DBS3900 - * Octasic Flexicell LTE-FDD NIB - -srsENB Features ---------------- - - * FDD configuration - * IntraENB- and InterENB (S1) mobility support - * Proportional-fair and Round Robin MAC scheduler with FAPI-like C++ API - * SR support - * Periodic and Aperiodic CQI feedback support - * Standard S1AP and GTP-U interfaces to the Core Network - * 150 Mbps DL in 20 MHz MIMO TM3/TM4 with commercial UEs (195 Mbps with QAM256) - * 75 Mbps DL in SISO configuration with commercial UEs - * 50 Mbps UL in 20 MHz with commercial UEs - * User-plane encryption - -srsENB has been tested and validated with the following handsets: - * LG Nexus 5 and 4 - * Motorola Moto G4 plus and G5 - * Huawei P9/P9lite, P10/P10lite, P20/P20lite - * Huawei dongles: E3276 and E398 - -srsEPC Features ---------------- - - * Single binary, light-weight LTE EPC implementation with: - * MME (Mobility Management Entity) with standard S1AP and GTP-U interface to eNB - * S/P-GW with standard SGi exposed as virtual network interface (TUN device) - * HSS (Home Subscriber Server) with configurable user database in CSV format - * Support for paging - -Hardware --------- - -srsRAN has native support for the Ettus Universal Hardware Driver (UHD) and the bladeRF driver. We also support SoapySDR. -Thus, any hardware supported by SoapySDR can be used. There is no sampling rate conversion, therefore the hardware should -support 30.72 MHz clock in order to work correctly with LTE sampling frequencies and decode signals from live LTE base stations. - -We have tested the following hardware: - * USRP B2x0 - * USRP B205mini - * USRP X3x0 - * LimeSDR - * bladeRF - -For Ettus Research equipment we recommended the LTS version of UHD, i.e. either 3.9.7 or 3.15. - -Build Instructions ------------------- - -* Mandatory requirements: - * Common: - * cmake https://cmake.org/ - * libfftw http://www.fftw.org/ - * PolarSSL/mbedTLS https://tls.mbed.org - * srsUE: - * Boost: http://www.boost.org - * srsENB: - * Boost: http://www.boost.org - * lksctp: http://lksctp.sourceforge.net/ - * config: http://www.hyperrealm.com/libconfig/ - * srsEPC: - * Boost: http://www.boost.org - * lksctp: http://lksctp.sourceforge.net/ - * config: http://www.hyperrealm.com/libconfig/ - -For example, on Ubuntu, one can install the mandatory build dependencies with: -``` -sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev -``` -or on Fedora: -``` -dnf install cmake fftw3-devel mbedtls-devel lksctp-tools-devel libconfig-devel boost-devel -``` -For CentOS, use the Fedora packages but replace `libconfig-devel` with just `libconfig`. - -Note that depending on your flavor and version of Linux, the actual package names may be different. - -* Optional requirements: - * srsgui: https://github.com/srsran/srsgui - for real-time plotting. - * libpcsclite-dev: https://pcsclite.apdu.fr/ - for accessing smart card readers - * libdw-dev libdw - for truly informative backtraces using backward-cpp - -* RF front-end driver: - * UHD: https://github.com/EttusResearch/uhd - * SoapySDR: https://github.com/pothosware/SoapySDR - * BladeRF: https://github.com/Nuand/bladeRF - * ZeroMQ: https://github.com/zeromq - -Download and build srsRAN: -``` -git clone https://github.com/srsRAN/srsRAN.git -cd srsRAN -mkdir build -cd build -cmake ../ -make -make test -``` +The srsRAN suite includes: + * srsUE - a full-stack SDR 4G/5G-NSA UE application (5G-SA coming soon) + * srsENB - a full-stack SDR 4G eNodeB application (5G-NSA and 5G-SA coming soon) + * srsEPC - a light-weight 4G core network implementation with MME, HSS and S/P-GW -Install srsRAN: +For application features, build instructions and user guides see the [srsRAN documentation](https://docs.srsran.com). -``` -sudo make install -srsran_install_configs.sh user -``` - -This installs srsRAN and also copies the default srsRAN config files to -the user's home directory (~/.config/srsran). - - -Execution Instructions ----------------------- - -The srsUE, srsENB and srsEPC applications include example configuration files -that should be copied (manually or by using the convenience script) and modified, -if needed, to meet the system configuration. -On many systems they should work out of the box. - -By default, all applications will search for config files in the user's home -directory (~/.config/srsran) upon startup. - -Note that you have to execute the applications with root privileges to enable -real-time thread priorities and to permit creation of virtual network interfaces. - -srsENB and srsEPC can run on the same machine as a network-in-the-box configuration. -srsUE needs to run on a separate machine. - -If you have installed the software suite using ```sudo make install``` and -have installed the example config files using ```srsran_install_configs.sh user```, -you may just start all applications with their default parameters. - -### srsEPC - -On machine 1, run srsEPC as follows: - -``` -sudo srsepc -``` - -Using the default configuration, this creates a virtual network interface -named "srs_spgw_sgi" on machine 1 with IP 172.16.0.1. All connected UEs -will be assigned an IP in this network. - -### srsENB - -Also on machine 1, but in another console, run srsENB as follows: - -``` -sudo srsenb -``` - -### srsUE - -On machine 2, run srsUE as follows: - -``` -sudo srsue -``` - -Using the default configuration, this creates a virtual network interface -named "tun_srsue" on machine 2 with an IP in the network 172.16.0.x. -Assuming the UE has been assigned IP 172.16.0.2, you may now exchange -IP traffic with machine 1 over the LTE link. For example, run a ping to -the default SGi IP address: - -``` -ping 172.16.0.1 -``` +For license details, see LICENSE file. Support -======== +======= Mailing list: http://www.softwareradiosystems.com/mailman/listinfo/srsran-users diff --git a/lib/include/srsran/adt/bounded_bitset.h b/lib/include/srsran/adt/bounded_bitset.h index 30251b274..86e705ae8 100644 --- a/lib/include/srsran/adt/bounded_bitset.h +++ b/lib/include/srsran/adt/bounded_bitset.h @@ -101,7 +101,7 @@ struct zerobit_counter { #ifdef __GNUC__ // clang and gcc /// Specializations for unsigned template -struct zerobit_counter { +struct zerobit_counter { static Integer msb_count(Integer value) { return (value) ? __builtin_clz(value) : std::numeric_limits::digits; @@ -111,19 +111,17 @@ struct zerobit_counter { return (value) ? __builtin_ctz(value) : std::numeric_limits::digits; } }; -#endif -#ifdef __GNUC__ // clang and gcc -/// Specializations for unsigned long +/// Specializations for unsigned long long template -struct zerobit_counter { +struct zerobit_counter { static Integer msb_count(Integer value) { - return (value) ? __builtin_clzl(value) : std::numeric_limits::digits; + return (value) ? __builtin_clzll(value) : std::numeric_limits::digits; } static Integer lsb_count(Integer value) { - return (value) ? __builtin_ctzl(value) : std::numeric_limits::digits; + return (value) ? __builtin_ctzll(value) : std::numeric_limits::digits; } }; #endif diff --git a/lib/include/srsran/adt/circular_buffer.h b/lib/include/srsran/adt/circular_buffer.h index c2985e4da..55c7cee76 100644 --- a/lib/include/srsran/adt/circular_buffer.h +++ b/lib/include/srsran/adt/circular_buffer.h @@ -542,10 +542,11 @@ public: std::swap(base_t::buffer, other.buffer); } - void set_size(size_t size) + void set_size(size_t sz) { - srsran_assert(base_t::empty(), "Dynamic resizes not supported when circular buffer is not empty"); - base_t::buffer.resize(size); + srsran_assert(base_t::empty() or sz == base_t::size(), + "Dynamic resizes not supported when circular buffer is not empty"); + base_t::buffer.resize(sz); } }; diff --git a/lib/include/srsran/adt/move_callback.h b/lib/include/srsran/adt/move_callback.h index 7459d3efd..8fdc10a2b 100644 --- a/lib/include/srsran/adt/move_callback.h +++ b/lib/include/srsran/adt/move_callback.h @@ -192,7 +192,7 @@ template constexpr task_details::empty_table_t move_callback::empty_table; //! Generic move task -using move_task_t = move_callback; +using move_task_t = move_callback; } // namespace srsran diff --git a/lib/include/srsran/asn1/asn1_utils.h b/lib/include/srsran/asn1/asn1_utils.h index dc8c3d8b0..f24570ae2 100644 --- a/lib/include/srsran/asn1/asn1_utils.h +++ b/lib/include/srsran/asn1/asn1_utils.h @@ -22,6 +22,7 @@ #ifndef SRSASN_COMMON_UTILS_H #define SRSASN_COMMON_UTILS_H +#include "srsran/common/srsran_assert.h" #include "srsran/srslog/srslog.h" #include #include @@ -91,9 +92,16 @@ void log_invalid_access_choice_id(uint32_t val, uint32_t choice_id); void log_invalid_choice_id(uint32_t val, const char* choice_type); void invalid_enum_number(int value, const char* name); void assert_choice_type(uint32_t val, uint32_t choice_id); -void assert_choice_type(const std::string& access_type, - const std::string& current_type, - const std::string& choice_type); +template +void assert_choice_type(typename Enumerated::options access_type, Enumerated& current_type, const char* choice_type) +{ + if (srsran_unlikely(current_type.value != access_type)) { + log_error("Invalid field access for choice type \"%s\" (\"%s\"!=\"%s\")", + choice_type, + Enumerated(access_type).to_string(), + current_type.to_string()); + } +} /************************ error handling diff --git a/lib/include/srsran/asn1/ngap.h b/lib/include/srsran/asn1/ngap.h index ed395a0e6..f90f1a41f 100644 --- a/lib/include/srsran/asn1/ngap.h +++ b/lib/include/srsran/asn1/ngap.h @@ -304,7 +304,7 @@ namespace ngap_nr { struct crit_opts { enum options { reject, ignore, notify, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated crit_e; @@ -312,7 +312,7 @@ typedef enumerated crit_e; struct presence_opts { enum options { optional, conditional, mandatory, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated presence_e; @@ -335,7 +335,7 @@ struct ngap_protocol_ies_empty_o { struct types_opts { enum options { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -354,7 +354,7 @@ struct ngap_protocol_ies_empty_o { static presence_e get_presence(const uint32_t& id); }; // CPTransportLayerInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o cp_transport_layer_info_ext_ies_o; +using cp_transport_layer_info_ext_ies_o = ngap_protocol_ies_empty_o; // ProtocolExtensionField{NGAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-EXTENSION}} template @@ -388,7 +388,7 @@ struct ngap_protocol_ext_empty_o { struct types_opts { enum options { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -407,14 +407,14 @@ struct ngap_protocol_ext_empty_o { static presence_e get_presence(const uint32_t& id); }; // AMF-TNLAssociationSetupItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o amf_tnlassoc_setup_item_ext_ies_o; +using amf_tnlassoc_setup_item_ext_ies_o = ngap_protocol_ext_empty_o; // CPTransportLayerInformation ::= CHOICE struct cp_transport_layer_info_c { struct types_opts { enum options { endpoint_ip_address, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -431,34 +431,26 @@ struct cp_transport_layer_info_c { // getters bounded_bitstring<1, 160, true, true>& endpoint_ip_address() { - assert_choice_type("endpointIPAddress", type_.to_string(), "CPTransportLayerInformation"); + assert_choice_type(types::endpoint_ip_address, type_, "CPTransportLayerInformation"); return c.get >(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "CPTransportLayerInformation"); + assert_choice_type(types::choice_exts, type_, "CPTransportLayerInformation"); return c.get >(); } const bounded_bitstring<1, 160, true, true>& endpoint_ip_address() const { - assert_choice_type("endpointIPAddress", type_.to_string(), "CPTransportLayerInformation"); + assert_choice_type(types::endpoint_ip_address, type_, "CPTransportLayerInformation"); return c.get >(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "CPTransportLayerInformation"); - return c.get >(); - } - bounded_bitstring<1, 160, true, true>& set_endpoint_ip_address() - { - set(types::endpoint_ip_address); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "CPTransportLayerInformation"); return c.get >(); } + bounded_bitstring<1, 160, true, true>& set_endpoint_ip_address(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -496,7 +488,7 @@ struct protocol_ext_container_empty_l { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l amf_tnlassoc_setup_item_ext_ies_container; +using amf_tnlassoc_setup_item_ext_ies_container = protocol_ext_container_empty_l; // AMF-TNLAssociationSetupItem ::= SEQUENCE struct amf_tnlassoc_setup_item_s { @@ -516,17 +508,17 @@ struct amf_tnlassoc_setup_item_s { using amf_tnlassoc_setup_list_l = dyn_array; // AMF-TNLAssociationToAddItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o amf_tnlassoc_to_add_item_ext_ies_o; +using amf_tnlassoc_to_add_item_ext_ies_o = ngap_protocol_ext_empty_o; // TNLAssociationUsage ::= ENUMERATED struct tnlassoc_usage_opts { enum options { ue, non_ue, both, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tnlassoc_usage_e; -typedef protocol_ext_container_empty_l amf_tnlassoc_to_add_item_ext_ies_container; +using amf_tnlassoc_to_add_item_ext_ies_container = protocol_ext_container_empty_l; // AMF-TNLAssociationToAddItem ::= SEQUENCE struct amf_tnlassoc_to_add_item_s { @@ -549,9 +541,9 @@ struct amf_tnlassoc_to_add_item_s { using amf_tnlassoc_to_add_list_l = dyn_array; // AMF-TNLAssociationToRemoveItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o amf_tnlassoc_to_rem_item_ext_ies_o; +using amf_tnlassoc_to_rem_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l amf_tnlassoc_to_rem_item_ext_ies_container; +using amf_tnlassoc_to_rem_item_ext_ies_container = protocol_ext_container_empty_l; // AMF-TNLAssociationToRemoveItem ::= SEQUENCE struct amf_tnlassoc_to_rem_item_s { @@ -571,9 +563,9 @@ struct amf_tnlassoc_to_rem_item_s { using amf_tnlassoc_to_rem_list_l = dyn_array; // AMF-TNLAssociationToUpdateItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o amf_tnlassoc_to_upd_item_ext_ies_o; +using amf_tnlassoc_to_upd_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l amf_tnlassoc_to_upd_item_ext_ies_container; +using amf_tnlassoc_to_upd_item_ext_ies_container = protocol_ext_container_empty_l; // AMF-TNLAssociationToUpdateItem ::= SEQUENCE struct amf_tnlassoc_to_upd_item_s { @@ -597,9 +589,9 @@ struct amf_tnlassoc_to_upd_item_s { using amf_tnlassoc_to_upd_list_l = dyn_array; // S-NSSAI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o s_nssai_ext_ies_o; +using s_nssai_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l s_nssai_ext_ies_container; +using s_nssai_ext_ies_container = protocol_ext_container_empty_l; // S-NSSAI ::= SEQUENCE struct s_nssai_s { @@ -618,12 +610,12 @@ struct s_nssai_s { }; // SliceSupportItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o slice_support_item_ext_ies_o; +using slice_support_item_ext_ies_o = ngap_protocol_ext_empty_o; // GUAMI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o guami_ext_ies_o; +using guami_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l slice_support_item_ext_ies_container; +using slice_support_item_ext_ies_container = protocol_ext_container_empty_l; // SliceSupportItem ::= SEQUENCE struct slice_support_item_s { @@ -639,7 +631,7 @@ struct slice_support_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l guami_ext_ies_container; +using guami_ext_ies_container = protocol_ext_container_empty_l; // GUAMI ::= SEQUENCE struct guami_s { @@ -659,15 +651,15 @@ struct guami_s { }; // PLMNSupportItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o plmn_support_item_ext_ies_o; +using plmn_support_item_ext_ies_o = ngap_protocol_ext_empty_o; // ServedGUAMIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o served_guami_item_ext_ies_o; +using served_guami_item_ext_ies_o = ngap_protocol_ext_empty_o; // SliceSupportList ::= SEQUENCE (SIZE (1..1024)) OF SliceSupportItem using slice_support_list_l = dyn_array; -typedef protocol_ext_container_empty_l plmn_support_item_ext_ies_container; +using plmn_support_item_ext_ies_container = protocol_ext_container_empty_l; // PLMNSupportItem ::= SEQUENCE struct plmn_support_item_s { @@ -684,7 +676,7 @@ struct plmn_support_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l served_guami_item_ext_ies_container; +using served_guami_item_ext_ies_container = protocol_ext_container_empty_l; // ServedGUAMIItem ::= SEQUENCE struct served_guami_item_s { @@ -725,7 +717,7 @@ struct amf_cfg_upd_ies_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -834,7 +826,7 @@ struct amf_cfg_upd_s { }; // Cause-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o cause_ext_ies_o; +using cause_ext_ies_o = ngap_protocol_ies_empty_o; // CauseMisc ::= ENUMERATED struct cause_misc_opts { @@ -849,7 +841,7 @@ struct cause_misc_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_misc_e; @@ -857,7 +849,7 @@ typedef enumerated cause_misc_e; struct cause_nas_opts { enum options { normal_release, authentication_fail, deregister, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_nas_e; @@ -875,7 +867,7 @@ struct cause_protocol_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_protocol_e; @@ -933,7 +925,7 @@ struct cause_radio_network_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_radio_network_e; @@ -941,18 +933,18 @@ typedef enumerated cause_radio_network_e; struct cause_transport_opts { enum options { transport_res_unavailable, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_transport_e; // CriticalityDiagnostics-IE-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o crit_diagnostics_ie_item_ext_ies_o; +using crit_diagnostics_ie_item_ext_ies_o = ngap_protocol_ext_empty_o; // TypeOfError ::= ENUMERATED struct type_of_error_opts { enum options { not_understood, missing, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated type_of_error_e; @@ -962,7 +954,7 @@ struct cause_c { enum options { radio_network, transport, nas, protocol, misc, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -980,94 +972,70 @@ struct cause_c { // getters cause_radio_network_e& radio_network() { - assert_choice_type("radioNetwork", type_.to_string(), "Cause"); + assert_choice_type(types::radio_network, type_, "Cause"); return c.get(); } cause_transport_e& transport() { - assert_choice_type("transport", type_.to_string(), "Cause"); + assert_choice_type(types::transport, type_, "Cause"); return c.get(); } cause_nas_e& nas() { - assert_choice_type("nas", type_.to_string(), "Cause"); + assert_choice_type(types::nas, type_, "Cause"); return c.get(); } cause_protocol_e& protocol() { - assert_choice_type("protocol", type_.to_string(), "Cause"); + assert_choice_type(types::protocol, type_, "Cause"); return c.get(); } cause_misc_e& misc() { - assert_choice_type("misc", type_.to_string(), "Cause"); + assert_choice_type(types::misc, type_, "Cause"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "Cause"); + assert_choice_type(types::choice_exts, type_, "Cause"); return c.get >(); } const cause_radio_network_e& radio_network() const { - assert_choice_type("radioNetwork", type_.to_string(), "Cause"); + assert_choice_type(types::radio_network, type_, "Cause"); return c.get(); } const cause_transport_e& transport() const { - assert_choice_type("transport", type_.to_string(), "Cause"); + assert_choice_type(types::transport, type_, "Cause"); return c.get(); } const cause_nas_e& nas() const { - assert_choice_type("nas", type_.to_string(), "Cause"); + assert_choice_type(types::nas, type_, "Cause"); return c.get(); } const cause_protocol_e& protocol() const { - assert_choice_type("protocol", type_.to_string(), "Cause"); + assert_choice_type(types::protocol, type_, "Cause"); return c.get(); } const cause_misc_e& misc() const { - assert_choice_type("misc", type_.to_string(), "Cause"); + assert_choice_type(types::misc, type_, "Cause"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "Cause"); - return c.get >(); - } - cause_radio_network_e& set_radio_network() - { - set(types::radio_network); - return c.get(); - } - cause_transport_e& set_transport() - { - set(types::transport); - return c.get(); - } - cause_nas_e& set_nas() - { - set(types::nas); - return c.get(); - } - cause_protocol_e& set_protocol() - { - set(types::protocol); - return c.get(); - } - cause_misc_e& set_misc() - { - set(types::misc); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "Cause"); return c.get >(); } + cause_radio_network_e& set_radio_network(); + cause_transport_e& set_transport(); + cause_nas_e& set_nas(); + cause_protocol_e& set_protocol(); + cause_misc_e& set_misc(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1076,7 +1044,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l crit_diagnostics_ie_item_ext_ies_container; +using crit_diagnostics_ie_item_ext_ies_container = protocol_ext_container_empty_l; // CriticalityDiagnostics-IE-Item ::= SEQUENCE struct crit_diagnostics_ie_item_s { @@ -1095,15 +1063,15 @@ struct crit_diagnostics_ie_item_s { }; // TNLAssociationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tnlassoc_item_ext_ies_o; +using tnlassoc_item_ext_ies_o = ngap_protocol_ext_empty_o; // CriticalityDiagnostics-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o crit_diagnostics_ext_ies_o; +using crit_diagnostics_ext_ies_o = ngap_protocol_ext_empty_o; // CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..256)) OF CriticalityDiagnostics-IE-Item using crit_diagnostics_ie_list_l = dyn_array; -typedef protocol_ext_container_empty_l tnlassoc_item_ext_ies_container; +using tnlassoc_item_ext_ies_container = protocol_ext_container_empty_l; // TNLAssociationItem ::= SEQUENCE struct tnlassoc_item_s { @@ -1124,11 +1092,11 @@ struct tnlassoc_item_s { struct trigger_msg_opts { enum options { init_msg, successful_outcome, unsuccessfull_outcome, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated trigger_msg_e; -typedef protocol_ext_container_empty_l crit_diagnostics_ext_ies_container; +using crit_diagnostics_ext_ies_container = protocol_ext_container_empty_l; // CriticalityDiagnostics ::= SEQUENCE struct crit_diagnostics_s { @@ -1161,7 +1129,7 @@ struct amf_cfg_upd_ack_ies_o { struct types_opts { enum options { amf_tnlassoc_setup_list, amf_tnlassoc_failed_to_setup_list, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1234,7 +1202,7 @@ struct time_to_wait_opts { enum options { v1s, v2s, v5s, v10s, v20s, v60s, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_to_wait_e; @@ -1246,7 +1214,7 @@ struct amf_cfg_upd_fail_ies_o { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1314,20 +1282,20 @@ struct amf_cfg_upd_fail_s { }; // GNB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o gnb_id_ext_ies_o; +using gnb_id_ext_ies_o = ngap_protocol_ies_empty_o; // N3IWF-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o n3_iwf_id_ext_ies_o; +using n3_iwf_id_ext_ies_o = ngap_protocol_ies_empty_o; // NgENB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o ng_enb_id_ext_ies_o; +using ng_enb_id_ext_ies_o = ngap_protocol_ies_empty_o; // GNB-ID ::= CHOICE struct gnb_id_c { struct types_opts { enum options { gnb_id, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1344,34 +1312,26 @@ struct gnb_id_c { // getters bounded_bitstring<22, 32, false, true>& gnb_id() { - assert_choice_type("gNB-ID", type_.to_string(), "GNB-ID"); + assert_choice_type(types::gnb_id, type_, "GNB-ID"); return c.get >(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "GNB-ID"); + assert_choice_type(types::choice_exts, type_, "GNB-ID"); return c.get >(); } const bounded_bitstring<22, 32, false, true>& gnb_id() const { - assert_choice_type("gNB-ID", type_.to_string(), "GNB-ID"); + assert_choice_type(types::gnb_id, type_, "GNB-ID"); return c.get >(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "GNB-ID"); - return c.get >(); - } - bounded_bitstring<22, 32, false, true>& set_gnb_id() - { - set(types::gnb_id); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "GNB-ID"); return c.get >(); } + bounded_bitstring<22, 32, false, true>& set_gnb_id(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1381,13 +1341,13 @@ private: }; // GlobalGNB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o global_gnb_id_ext_ies_o; +using global_gnb_id_ext_ies_o = ngap_protocol_ext_empty_o; // GlobalN3IWF-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o global_n3_iwf_id_ext_ies_o; +using global_n3_iwf_id_ext_ies_o = ngap_protocol_ext_empty_o; // GlobalNgENB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o global_ng_enb_id_ext_ies_o; +using global_ng_enb_id_ext_ies_o = ngap_protocol_ext_empty_o; // N3IWF-ID ::= CHOICE struct n3_iwf_id_c { @@ -1395,7 +1355,7 @@ struct n3_iwf_id_c { enum options { n3_iwf_id, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1413,34 +1373,26 @@ struct n3_iwf_id_c { // getters fixed_bitstring<16, false, true>& n3_iwf_id() { - assert_choice_type("n3IWF-ID", type_.to_string(), "N3IWF-ID"); + assert_choice_type(types::n3_iwf_id, type_, "N3IWF-ID"); return c.get >(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "N3IWF-ID"); + assert_choice_type(types::choice_exts, type_, "N3IWF-ID"); return c.get >(); } const fixed_bitstring<16, false, true>& n3_iwf_id() const { - assert_choice_type("n3IWF-ID", type_.to_string(), "N3IWF-ID"); + assert_choice_type(types::n3_iwf_id, type_, "N3IWF-ID"); return c.get >(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "N3IWF-ID"); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_n3_iwf_id() - { - set(types::n3_iwf_id); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "N3IWF-ID"); return c.get >(); } + fixed_bitstring<16, false, true>& set_n3_iwf_id(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1454,7 +1406,7 @@ struct ng_enb_id_c { struct types_opts { enum options { macro_ng_enb_id, short_macro_ng_enb_id, long_macro_ng_enb_id, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1471,64 +1423,48 @@ struct ng_enb_id_c { // getters fixed_bitstring<20, false, true>& macro_ng_enb_id() { - assert_choice_type("macroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } fixed_bitstring<18, false, true>& short_macro_ng_enb_id() { - assert_choice_type("shortMacroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::short_macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } fixed_bitstring<21, false, true>& long_macro_ng_enb_id() { - assert_choice_type("longMacroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::long_macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::choice_exts, type_, "NgENB-ID"); return c.get >(); } const fixed_bitstring<20, false, true>& macro_ng_enb_id() const { - assert_choice_type("macroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } const fixed_bitstring<18, false, true>& short_macro_ng_enb_id() const { - assert_choice_type("shortMacroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::short_macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } const fixed_bitstring<21, false, true>& long_macro_ng_enb_id() const { - assert_choice_type("longMacroNgENB-ID", type_.to_string(), "NgENB-ID"); + assert_choice_type(types::long_macro_ng_enb_id, type_, "NgENB-ID"); return c.get >(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "NgENB-ID"); - return c.get >(); - } - fixed_bitstring<20, false, true>& set_macro_ng_enb_id() - { - set(types::macro_ng_enb_id); - return c.get >(); - } - fixed_bitstring<18, false, true>& set_short_macro_ng_enb_id() - { - set(types::short_macro_ng_enb_id); - return c.get >(); - } - fixed_bitstring<21, false, true>& set_long_macro_ng_enb_id() - { - set(types::long_macro_ng_enb_id); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "NgENB-ID"); return c.get >(); } + fixed_bitstring<20, false, true>& set_macro_ng_enb_id(); + fixed_bitstring<18, false, true>& set_short_macro_ng_enb_id(); + fixed_bitstring<21, false, true>& set_long_macro_ng_enb_id(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1537,7 +1473,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l global_gnb_id_ext_ies_container; +using global_gnb_id_ext_ies_container = protocol_ext_container_empty_l; // GlobalGNB-ID ::= SEQUENCE struct global_gnb_id_s { @@ -1554,7 +1490,7 @@ struct global_gnb_id_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l global_n3_iwf_id_ext_ies_container; +using global_n3_iwf_id_ext_ies_container = protocol_ext_container_empty_l; // GlobalN3IWF-ID ::= SEQUENCE struct global_n3_iwf_id_s { @@ -1571,7 +1507,7 @@ struct global_n3_iwf_id_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l global_ng_enb_id_ext_ies_container; +using global_ng_enb_id_ext_ies_container = protocol_ext_container_empty_l; // GlobalNgENB-ID ::= SEQUENCE struct global_ng_enb_id_s { @@ -1589,13 +1525,13 @@ struct global_ng_enb_id_s { }; // GlobalRANNodeID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o global_ran_node_id_ext_ies_o; +using global_ran_node_id_ext_ies_o = ngap_protocol_ies_empty_o; // TAI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_ext_ies_o; +using tai_ext_ies_o = ngap_protocol_ext_empty_o; // AMFPagingTarget-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o amf_paging_target_ext_ies_o; +using amf_paging_target_ext_ies_o = ngap_protocol_ies_empty_o; // GlobalRANNodeID ::= CHOICE struct global_ran_node_id_c { @@ -1603,7 +1539,7 @@ struct global_ran_node_id_c { enum options { global_gnb_id, global_ng_enb_id, global_n3_iwf_id, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1621,64 +1557,48 @@ struct global_ran_node_id_c { // getters global_gnb_id_s& global_gnb_id() { - assert_choice_type("globalGNB-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_gnb_id, type_, "GlobalRANNodeID"); return c.get(); } global_ng_enb_id_s& global_ng_enb_id() { - assert_choice_type("globalNgENB-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_ng_enb_id, type_, "GlobalRANNodeID"); return c.get(); } global_n3_iwf_id_s& global_n3_iwf_id() { - assert_choice_type("globalN3IWF-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_n3_iwf_id, type_, "GlobalRANNodeID"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::choice_exts, type_, "GlobalRANNodeID"); return c.get >(); } const global_gnb_id_s& global_gnb_id() const { - assert_choice_type("globalGNB-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_gnb_id, type_, "GlobalRANNodeID"); return c.get(); } const global_ng_enb_id_s& global_ng_enb_id() const { - assert_choice_type("globalNgENB-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_ng_enb_id, type_, "GlobalRANNodeID"); return c.get(); } const global_n3_iwf_id_s& global_n3_iwf_id() const { - assert_choice_type("globalN3IWF-ID", type_.to_string(), "GlobalRANNodeID"); + assert_choice_type(types::global_n3_iwf_id, type_, "GlobalRANNodeID"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "GlobalRANNodeID"); - return c.get >(); - } - global_gnb_id_s& set_global_gnb_id() - { - set(types::global_gnb_id); - return c.get(); - } - global_ng_enb_id_s& set_global_ng_enb_id() - { - set(types::global_ng_enb_id); - return c.get(); - } - global_n3_iwf_id_s& set_global_n3_iwf_id() - { - set(types::global_n3_iwf_id); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "GlobalRANNodeID"); return c.get >(); } + global_gnb_id_s& set_global_gnb_id(); + global_ng_enb_id_s& set_global_ng_enb_id(); + global_n3_iwf_id_s& set_global_n3_iwf_id(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1691,7 +1611,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l tai_ext_ies_container; +using tai_ext_ies_container = protocol_ext_container_empty_l; // TAI ::= SEQUENCE struct tai_s { @@ -1713,7 +1633,7 @@ struct amf_paging_target_c { struct types_opts { enum options { global_ran_node_id, tai, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1730,49 +1650,37 @@ struct amf_paging_target_c { // getters global_ran_node_id_c& global_ran_node_id() { - assert_choice_type("globalRANNodeID", type_.to_string(), "AMFPagingTarget"); + assert_choice_type(types::global_ran_node_id, type_, "AMFPagingTarget"); return c.get(); } tai_s& tai() { - assert_choice_type("tAI", type_.to_string(), "AMFPagingTarget"); + assert_choice_type(types::tai, type_, "AMFPagingTarget"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "AMFPagingTarget"); + assert_choice_type(types::choice_exts, type_, "AMFPagingTarget"); return c.get >(); } const global_ran_node_id_c& global_ran_node_id() const { - assert_choice_type("globalRANNodeID", type_.to_string(), "AMFPagingTarget"); + assert_choice_type(types::global_ran_node_id, type_, "AMFPagingTarget"); return c.get(); } const tai_s& tai() const { - assert_choice_type("tAI", type_.to_string(), "AMFPagingTarget"); + assert_choice_type(types::tai, type_, "AMFPagingTarget"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "AMFPagingTarget"); - return c.get >(); - } - global_ran_node_id_c& set_global_ran_node_id() - { - set(types::global_ran_node_id); - return c.get(); - } - tai_s& set_tai() - { - set(types::tai); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "AMFPagingTarget"); return c.get >(); } + global_ran_node_id_c& set_global_ran_node_id(); + tai_s& set_tai(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1785,14 +1693,14 @@ private: struct timer_approach_for_guami_removal_opts { enum options { apply_timer, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated timer_approach_for_guami_removal_e; // UnavailableGUAMIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o unavailable_guami_item_ext_ies_o; +using unavailable_guami_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l unavailable_guami_item_ext_ies_container; +using unavailable_guami_item_ext_ies_container = protocol_ext_container_empty_l; // UnavailableGUAMIItem ::= SEQUENCE struct unavailable_guami_item_s { @@ -1822,7 +1730,7 @@ struct amf_status_ind_ies_o { struct types_opts { enum options { unavailable_guami_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1863,17 +1771,17 @@ struct amf_status_ind_s { struct data_forwarding_accepted_opts { enum options { data_forwarding_accepted, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated data_forwarding_accepted_e; // GTPTunnel-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o gtp_tunnel_ext_ies_o; +using gtp_tunnel_ext_ies_o = ngap_protocol_ext_empty_o; // QosFlowItemWithDataForwarding-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_item_with_data_forwarding_ext_ies_o; +using qos_flow_item_with_data_forwarding_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l gtp_tunnel_ext_ies_container; +using gtp_tunnel_ext_ies_container = protocol_ext_container_empty_l; // GTPTunnel ::= SEQUENCE struct gtp_tunnel_s { @@ -1890,7 +1798,7 @@ struct gtp_tunnel_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l qos_flow_item_with_data_forwarding_ext_ies_container; +using qos_flow_item_with_data_forwarding_ext_ies_container = protocol_ext_container_empty_l; // QosFlowItemWithDataForwarding ::= SEQUENCE struct qos_flow_item_with_data_forwarding_s { @@ -1909,10 +1817,10 @@ struct qos_flow_item_with_data_forwarding_s { }; // UPTransportLayerInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o up_transport_layer_info_ext_ies_o; +using up_transport_layer_info_ext_ies_o = ngap_protocol_ies_empty_o; // AdditionalDLUPTNLInformationForHOItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o add_dluptnl_info_for_ho_item_ext_ies_o; +using add_dluptnl_info_for_ho_item_ext_ies_o = ngap_protocol_ext_empty_o; // QosFlowListWithDataForwarding ::= SEQUENCE (SIZE (1..64)) OF QosFlowItemWithDataForwarding using qos_flow_list_with_data_forwarding_l = dyn_array; @@ -1922,7 +1830,7 @@ struct up_transport_layer_info_c { struct types_opts { enum options { gtp_tunnel, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1939,34 +1847,26 @@ struct up_transport_layer_info_c { // getters gtp_tunnel_s& gtp_tunnel() { - assert_choice_type("gTPTunnel", type_.to_string(), "UPTransportLayerInformation"); + assert_choice_type(types::gtp_tunnel, type_, "UPTransportLayerInformation"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "UPTransportLayerInformation"); + assert_choice_type(types::choice_exts, type_, "UPTransportLayerInformation"); return c.get >(); } const gtp_tunnel_s& gtp_tunnel() const { - assert_choice_type("gTPTunnel", type_.to_string(), "UPTransportLayerInformation"); + assert_choice_type(types::gtp_tunnel, type_, "UPTransportLayerInformation"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "UPTransportLayerInformation"); - return c.get >(); - } - gtp_tunnel_s& set_gtp_tunnel() - { - set(types::gtp_tunnel); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "UPTransportLayerInformation"); return c.get >(); } + gtp_tunnel_s& set_gtp_tunnel(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -1975,7 +1875,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l add_dluptnl_info_for_ho_item_ext_ies_container; +using add_dluptnl_info_for_ho_item_ext_ies_container = protocol_ext_container_empty_l; // AdditionalDLUPTNLInformationForHOItem ::= SEQUENCE struct add_dluptnl_info_for_ho_item_s { @@ -1998,13 +1898,13 @@ struct add_dluptnl_info_for_ho_item_s { using add_dluptnl_info_for_ho_list_l = dyn_array; // AllocationAndRetentionPriority-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o alloc_and_retention_prio_ext_ies_o; +using alloc_and_retention_prio_ext_ies_o = ngap_protocol_ext_empty_o; // Pre-emptionCapability ::= ENUMERATED struct pre_emption_cap_opts { enum options { shall_not_trigger_pre_emption, may_trigger_pre_emption, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pre_emption_cap_e; @@ -2012,11 +1912,11 @@ typedef enumerated pre_emption_cap_e; struct pre_emption_vulnerability_opts { enum options { not_pre_emptable, pre_emptable, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pre_emption_vulnerability_e; -typedef protocol_ext_container_empty_l alloc_and_retention_prio_ext_ies_container; +using alloc_and_retention_prio_ext_ies_container = protocol_ext_container_empty_l; // AllocationAndRetentionPriority ::= SEQUENCE struct alloc_and_retention_prio_s { @@ -2035,9 +1935,9 @@ struct alloc_and_retention_prio_s { }; // AllowedNSSAI-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o allowed_nssai_item_ext_ies_o; +using allowed_nssai_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l allowed_nssai_item_ext_ies_container; +using allowed_nssai_item_ext_ies_container = protocol_ext_container_empty_l; // AllowedNSSAI-Item ::= SEQUENCE struct allowed_nssai_item_s { @@ -2060,12 +1960,12 @@ using allowed_nssai_l = dyn_array; using allowed_tacs_l = bounded_array, 16>; // EUTRA-CGI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o eutra_cgi_ext_ies_o; +using eutra_cgi_ext_ies_o = ngap_protocol_ext_empty_o; // NR-CGI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o nr_cgi_ext_ies_o; +using nr_cgi_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l eutra_cgi_ext_ies_container; +using eutra_cgi_ext_ies_container = protocol_ext_container_empty_l; // EUTRA-CGI ::= SEQUENCE struct eutra_cgi_s { @@ -2083,9 +1983,9 @@ struct eutra_cgi_s { }; // NGRAN-CGI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o ngran_cgi_ext_ies_o; +using ngran_cgi_ext_ies_o = ngap_protocol_ies_empty_o; -typedef protocol_ext_container_empty_l nr_cgi_ext_ies_container; +using nr_cgi_ext_ies_container = protocol_ext_container_empty_l; // NR-CGI ::= SEQUENCE struct nr_cgi_s { @@ -2103,20 +2003,20 @@ struct nr_cgi_s { }; // AreaOfInterestCellItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o area_of_interest_cell_item_ext_ies_o; +using area_of_interest_cell_item_ext_ies_o = ngap_protocol_ext_empty_o; // AreaOfInterestRANNodeItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o area_of_interest_ran_node_item_ext_ies_o; +using area_of_interest_ran_node_item_ext_ies_o = ngap_protocol_ext_empty_o; // AreaOfInterestTAIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o area_of_interest_tai_item_ext_ies_o; +using area_of_interest_tai_item_ext_ies_o = ngap_protocol_ext_empty_o; // NGRAN-CGI ::= CHOICE struct ngran_cgi_c { struct types_opts { enum options { nr_cgi, eutra_cgi, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2133,49 +2033,37 @@ struct ngran_cgi_c { // getters nr_cgi_s& nr_cgi() { - assert_choice_type("nR-CGI", type_.to_string(), "NGRAN-CGI"); + assert_choice_type(types::nr_cgi, type_, "NGRAN-CGI"); return c.get(); } eutra_cgi_s& eutra_cgi() { - assert_choice_type("eUTRA-CGI", type_.to_string(), "NGRAN-CGI"); + assert_choice_type(types::eutra_cgi, type_, "NGRAN-CGI"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "NGRAN-CGI"); + assert_choice_type(types::choice_exts, type_, "NGRAN-CGI"); return c.get >(); } const nr_cgi_s& nr_cgi() const { - assert_choice_type("nR-CGI", type_.to_string(), "NGRAN-CGI"); + assert_choice_type(types::nr_cgi, type_, "NGRAN-CGI"); return c.get(); } const eutra_cgi_s& eutra_cgi() const { - assert_choice_type("eUTRA-CGI", type_.to_string(), "NGRAN-CGI"); + assert_choice_type(types::eutra_cgi, type_, "NGRAN-CGI"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "NGRAN-CGI"); - return c.get >(); - } - nr_cgi_s& set_nr_cgi() - { - set(types::nr_cgi); - return c.get(); - } - eutra_cgi_s& set_eutra_cgi() - { - set(types::eutra_cgi); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "NGRAN-CGI"); return c.get >(); } + nr_cgi_s& set_nr_cgi(); + eutra_cgi_s& set_eutra_cgi(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -2184,7 +2072,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l area_of_interest_cell_item_ext_ies_container; +using area_of_interest_cell_item_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterestCellItem ::= SEQUENCE struct area_of_interest_cell_item_s { @@ -2200,7 +2088,7 @@ struct area_of_interest_cell_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l area_of_interest_ran_node_item_ext_ies_container; +using area_of_interest_ran_node_item_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterestRANNodeItem ::= SEQUENCE struct area_of_interest_ran_node_item_s { @@ -2216,7 +2104,7 @@ struct area_of_interest_ran_node_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l area_of_interest_tai_item_ext_ies_container; +using area_of_interest_tai_item_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterestTAIItem ::= SEQUENCE struct area_of_interest_tai_item_s { @@ -2233,7 +2121,7 @@ struct area_of_interest_tai_item_s { }; // AreaOfInterest-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o area_of_interest_ext_ies_o; +using area_of_interest_ext_ies_o = ngap_protocol_ext_empty_o; // AreaOfInterestCellList ::= SEQUENCE (SIZE (1..256)) OF AreaOfInterestCellItem using area_of_interest_cell_list_l = dyn_array; @@ -2244,7 +2132,7 @@ using area_of_interest_ran_node_list_l = dyn_array; -typedef protocol_ext_container_empty_l area_of_interest_ext_ies_container; +using area_of_interest_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterest ::= SEQUENCE struct area_of_interest_s { @@ -2266,9 +2154,9 @@ struct area_of_interest_s { }; // AreaOfInterestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o area_of_interest_item_ext_ies_o; +using area_of_interest_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l area_of_interest_item_ext_ies_container; +using area_of_interest_item_ext_ies_container = protocol_ext_container_empty_l; // AreaOfInterestItem ::= SEQUENCE struct area_of_interest_item_s { @@ -2289,9 +2177,9 @@ struct area_of_interest_item_s { using area_of_interest_list_l = dyn_array; // RecommendedCellItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o recommended_cell_item_ext_ies_o; +using recommended_cell_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l recommended_cell_item_ext_ies_container; +using recommended_cell_item_ext_ies_container = protocol_ext_container_empty_l; // RecommendedCellItem ::= SEQUENCE struct recommended_cell_item_s { @@ -2313,23 +2201,23 @@ struct recommended_cell_item_s { using recommended_cell_list_l = dyn_array; // RecommendedCellsForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o recommended_cells_for_paging_ext_ies_o; +using recommended_cells_for_paging_ext_ies_o = ngap_protocol_ext_empty_o; // AssistanceDataForRecommendedCells-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o assist_data_for_recommended_cells_ext_ies_o; +using assist_data_for_recommended_cells_ext_ies_o = ngap_protocol_ext_empty_o; // NextPagingAreaScope ::= ENUMERATED struct next_paging_area_scope_opts { enum options { same, changed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated next_paging_area_scope_e; // PagingAttemptInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o paging_attempt_info_ext_ies_o; +using paging_attempt_info_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l recommended_cells_for_paging_ext_ies_container; +using recommended_cells_for_paging_ext_ies_container = protocol_ext_container_empty_l; // RecommendedCellsForPaging ::= SEQUENCE struct recommended_cells_for_paging_s { @@ -2346,9 +2234,9 @@ struct recommended_cells_for_paging_s { }; // AssistanceDataForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o assist_data_for_paging_ext_ies_o; +using assist_data_for_paging_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l assist_data_for_recommended_cells_ext_ies_container; +using assist_data_for_recommended_cells_ext_ies_container = protocol_ext_container_empty_l; // AssistanceDataForRecommendedCells ::= SEQUENCE struct assist_data_for_recommended_cells_s { @@ -2364,7 +2252,7 @@ struct assist_data_for_recommended_cells_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l paging_attempt_info_ext_ies_container; +using paging_attempt_info_ext_ies_container = protocol_ext_container_empty_l; // PagingAttemptInformation ::= SEQUENCE struct paging_attempt_info_s { @@ -2383,7 +2271,7 @@ struct paging_attempt_info_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l assist_data_for_paging_ext_ies_container; +using assist_data_for_paging_ext_ies_container = protocol_ext_container_empty_l; // AssistanceDataForPaging ::= SEQUENCE struct assist_data_for_paging_s { @@ -2403,16 +2291,16 @@ struct assist_data_for_paging_s { }; // AssociatedQosFlowItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o associated_qos_flow_item_ext_ies_o; +using associated_qos_flow_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l associated_qos_flow_item_ext_ies_container; +using associated_qos_flow_item_ext_ies_container = protocol_ext_container_empty_l; // AssociatedQosFlowItem ::= SEQUENCE struct associated_qos_flow_item_s { struct qos_flow_map_ind_opts { enum options { ul, dl, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated qos_flow_map_ind_e_; @@ -2435,18 +2323,18 @@ struct associated_qos_flow_item_s { using associated_qos_flow_list_l = dyn_array; // CancelledCellsInEAI-EUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cancelled_cells_in_eai_eutra_item_ext_ies_o; +using cancelled_cells_in_eai_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CancelledCellsInEAI-NR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cancelled_cells_in_eai_nr_item_ext_ies_o; +using cancelled_cells_in_eai_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // CancelledCellsInTAI-EUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cancelled_cells_in_tai_eutra_item_ext_ies_o; +using cancelled_cells_in_tai_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CancelledCellsInTAI-NR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cancelled_cells_in_tai_nr_item_ext_ies_o; +using cancelled_cells_in_tai_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l cancelled_cells_in_eai_eutra_item_ext_ies_container; +using cancelled_cells_in_eai_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CancelledCellsInEAI-EUTRA-Item ::= SEQUENCE struct cancelled_cells_in_eai_eutra_item_s { @@ -2463,7 +2351,7 @@ struct cancelled_cells_in_eai_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l cancelled_cells_in_eai_nr_item_ext_ies_container; +using cancelled_cells_in_eai_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CancelledCellsInEAI-NR-Item ::= SEQUENCE struct cancelled_cells_in_eai_nr_item_s { @@ -2480,7 +2368,7 @@ struct cancelled_cells_in_eai_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l cancelled_cells_in_tai_eutra_item_ext_ies_container; +using cancelled_cells_in_tai_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CancelledCellsInTAI-EUTRA-Item ::= SEQUENCE struct cancelled_cells_in_tai_eutra_item_s { @@ -2497,7 +2385,7 @@ struct cancelled_cells_in_tai_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l cancelled_cells_in_tai_nr_item_ext_ies_container; +using cancelled_cells_in_tai_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CancelledCellsInTAI-NR-Item ::= SEQUENCE struct cancelled_cells_in_tai_nr_item_s { @@ -2527,24 +2415,24 @@ using cancelled_cells_in_tai_eutra_l = dyn_array; // CellIDCancelledEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cell_id_cancelled_eutra_item_ext_ies_o; +using cell_id_cancelled_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CellIDCancelledNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cell_id_cancelled_nr_item_ext_ies_o; +using cell_id_cancelled_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // EmergencyAreaIDCancelledEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o emergency_area_id_cancelled_eutra_item_ext_ies_o; +using emergency_area_id_cancelled_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // EmergencyAreaIDCancelledNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o emergency_area_id_cancelled_nr_item_ext_ies_o; +using emergency_area_id_cancelled_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // TAICancelledEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_cancelled_eutra_item_ext_ies_o; +using tai_cancelled_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // TAICancelledNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_cancelled_nr_item_ext_ies_o; +using tai_cancelled_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l cell_id_cancelled_eutra_item_ext_ies_container; +using cell_id_cancelled_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CellIDCancelledEUTRA-Item ::= SEQUENCE struct cell_id_cancelled_eutra_item_s { @@ -2561,7 +2449,7 @@ struct cell_id_cancelled_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l cell_id_cancelled_nr_item_ext_ies_container; +using cell_id_cancelled_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CellIDCancelledNR-Item ::= SEQUENCE struct cell_id_cancelled_nr_item_s { @@ -2578,7 +2466,7 @@ struct cell_id_cancelled_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l emergency_area_id_cancelled_eutra_item_ext_ies_container; +using emergency_area_id_cancelled_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // EmergencyAreaIDCancelledEUTRA-Item ::= SEQUENCE struct emergency_area_id_cancelled_eutra_item_s { @@ -2595,7 +2483,7 @@ struct emergency_area_id_cancelled_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l emergency_area_id_cancelled_nr_item_ext_ies_container; +using emergency_area_id_cancelled_nr_item_ext_ies_container = protocol_ext_container_empty_l; // EmergencyAreaIDCancelledNR-Item ::= SEQUENCE struct emergency_area_id_cancelled_nr_item_s { @@ -2612,7 +2500,7 @@ struct emergency_area_id_cancelled_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l tai_cancelled_eutra_item_ext_ies_container; +using tai_cancelled_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // TAICancelledEUTRA-Item ::= SEQUENCE struct tai_cancelled_eutra_item_s { @@ -2629,7 +2517,7 @@ struct tai_cancelled_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l tai_cancelled_nr_item_ext_ies_container; +using tai_cancelled_nr_item_ext_ies_container = protocol_ext_container_empty_l; // TAICancelledNR-Item ::= SEQUENCE struct tai_cancelled_nr_item_s { @@ -2647,7 +2535,7 @@ struct tai_cancelled_nr_item_s { }; // BroadcastCancelledAreaList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o broadcast_cancelled_area_list_ext_ies_o; +using broadcast_cancelled_area_list_ext_ies_o = ngap_protocol_ies_empty_o; // CellIDCancelledEUTRA ::= SEQUENCE (SIZE (1..65535)) OF CellIDCancelledEUTRA-Item using cell_id_cancelled_eutra_l = dyn_array; @@ -2681,7 +2569,7 @@ struct broadcast_cancelled_area_list_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2698,109 +2586,81 @@ struct broadcast_cancelled_area_list_c { // getters cell_id_cancelled_eutra_l& cell_id_cancelled_eutra() { - assert_choice_type("cellIDCancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } tai_cancelled_eutra_l& tai_cancelled_eutra() { - assert_choice_type("tAICancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } emergency_area_id_cancelled_eutra_l& emergency_area_id_cancelled_eutra() { - assert_choice_type("emergencyAreaIDCancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::emergency_area_id_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } cell_id_cancelled_nr_l& cell_id_cancelled_nr() { - assert_choice_type("cellIDCancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } tai_cancelled_nr_l& tai_cancelled_nr() { - assert_choice_type("tAICancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } emergency_area_id_cancelled_nr_l& emergency_area_id_cancelled_nr() { - assert_choice_type("emergencyAreaIDCancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::emergency_area_id_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::choice_exts, type_, "BroadcastCancelledAreaList"); return c.get >(); } const cell_id_cancelled_eutra_l& cell_id_cancelled_eutra() const { - assert_choice_type("cellIDCancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } const tai_cancelled_eutra_l& tai_cancelled_eutra() const { - assert_choice_type("tAICancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } const emergency_area_id_cancelled_eutra_l& emergency_area_id_cancelled_eutra() const { - assert_choice_type("emergencyAreaIDCancelledEUTRA", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::emergency_area_id_cancelled_eutra, type_, "BroadcastCancelledAreaList"); return c.get(); } const cell_id_cancelled_nr_l& cell_id_cancelled_nr() const { - assert_choice_type("cellIDCancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } const tai_cancelled_nr_l& tai_cancelled_nr() const { - assert_choice_type("tAICancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } const emergency_area_id_cancelled_nr_l& emergency_area_id_cancelled_nr() const { - assert_choice_type("emergencyAreaIDCancelledNR", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::emergency_area_id_cancelled_nr, type_, "BroadcastCancelledAreaList"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "BroadcastCancelledAreaList"); - return c.get >(); - } - cell_id_cancelled_eutra_l& set_cell_id_cancelled_eutra() - { - set(types::cell_id_cancelled_eutra); - return c.get(); - } - tai_cancelled_eutra_l& set_tai_cancelled_eutra() - { - set(types::tai_cancelled_eutra); - return c.get(); - } - emergency_area_id_cancelled_eutra_l& set_emergency_area_id_cancelled_eutra() - { - set(types::emergency_area_id_cancelled_eutra); - return c.get(); - } - cell_id_cancelled_nr_l& set_cell_id_cancelled_nr() - { - set(types::cell_id_cancelled_nr); - return c.get(); - } - tai_cancelled_nr_l& set_tai_cancelled_nr() - { - set(types::tai_cancelled_nr); - return c.get(); - } - emergency_area_id_cancelled_nr_l& set_emergency_area_id_cancelled_nr() - { - set(types::emergency_area_id_cancelled_nr); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "BroadcastCancelledAreaList"); return c.get >(); } + cell_id_cancelled_eutra_l& set_cell_id_cancelled_eutra(); + tai_cancelled_eutra_l& set_tai_cancelled_eutra(); + emergency_area_id_cancelled_eutra_l& set_emergency_area_id_cancelled_eutra(); + cell_id_cancelled_nr_l& set_cell_id_cancelled_nr(); + tai_cancelled_nr_l& set_tai_cancelled_nr(); + emergency_area_id_cancelled_nr_l& set_emergency_area_id_cancelled_nr(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -2817,18 +2677,18 @@ private: }; // CompletedCellsInEAI-EUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o completed_cells_in_eai_eutra_item_ext_ies_o; +using completed_cells_in_eai_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CompletedCellsInEAI-NR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o completed_cells_in_eai_nr_item_ext_ies_o; +using completed_cells_in_eai_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // CompletedCellsInTAI-EUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o completed_cells_in_tai_eutra_item_ext_ies_o; +using completed_cells_in_tai_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CompletedCellsInTAI-NR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o completed_cells_in_tai_nr_item_ext_ies_o; +using completed_cells_in_tai_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l completed_cells_in_eai_eutra_item_ext_ies_container; +using completed_cells_in_eai_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CompletedCellsInEAI-EUTRA-Item ::= SEQUENCE struct completed_cells_in_eai_eutra_item_s { @@ -2844,7 +2704,7 @@ struct completed_cells_in_eai_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l completed_cells_in_eai_nr_item_ext_ies_container; +using completed_cells_in_eai_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CompletedCellsInEAI-NR-Item ::= SEQUENCE struct completed_cells_in_eai_nr_item_s { @@ -2860,7 +2720,7 @@ struct completed_cells_in_eai_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l completed_cells_in_tai_eutra_item_ext_ies_container; +using completed_cells_in_tai_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CompletedCellsInTAI-EUTRA-Item ::= SEQUENCE struct completed_cells_in_tai_eutra_item_s { @@ -2876,7 +2736,7 @@ struct completed_cells_in_tai_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l completed_cells_in_tai_nr_item_ext_ies_container; +using completed_cells_in_tai_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CompletedCellsInTAI-NR-Item ::= SEQUENCE struct completed_cells_in_tai_nr_item_s { @@ -2893,10 +2753,10 @@ struct completed_cells_in_tai_nr_item_s { }; // CellIDBroadcastEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cell_id_broadcast_eutra_item_ext_ies_o; +using cell_id_broadcast_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // CellIDBroadcastNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cell_id_broadcast_nr_item_ext_ies_o; +using cell_id_broadcast_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // CompletedCellsInEAI-EUTRA ::= SEQUENCE (SIZE (1..65535)) OF CompletedCellsInEAI-EUTRA-Item using completed_cells_in_eai_eutra_l = dyn_array; @@ -2911,18 +2771,18 @@ using completed_cells_in_tai_eutra_l = dyn_array; // EmergencyAreaIDBroadcastEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o emergency_area_id_broadcast_eutra_item_ext_ies_o; +using emergency_area_id_broadcast_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // EmergencyAreaIDBroadcastNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o emergency_area_id_broadcast_nr_item_ext_ies_o; +using emergency_area_id_broadcast_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; // TAIBroadcastEUTRA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_broadcast_eutra_item_ext_ies_o; +using tai_broadcast_eutra_item_ext_ies_o = ngap_protocol_ext_empty_o; // TAIBroadcastNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_broadcast_nr_item_ext_ies_o; +using tai_broadcast_nr_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l cell_id_broadcast_eutra_item_ext_ies_container; +using cell_id_broadcast_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // CellIDBroadcastEUTRA-Item ::= SEQUENCE struct cell_id_broadcast_eutra_item_s { @@ -2938,7 +2798,7 @@ struct cell_id_broadcast_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l cell_id_broadcast_nr_item_ext_ies_container; +using cell_id_broadcast_nr_item_ext_ies_container = protocol_ext_container_empty_l; // CellIDBroadcastNR-Item ::= SEQUENCE struct cell_id_broadcast_nr_item_s { @@ -2954,7 +2814,7 @@ struct cell_id_broadcast_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l emergency_area_id_broadcast_eutra_item_ext_ies_container; +using emergency_area_id_broadcast_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // EmergencyAreaIDBroadcastEUTRA-Item ::= SEQUENCE struct emergency_area_id_broadcast_eutra_item_s { @@ -2971,7 +2831,7 @@ struct emergency_area_id_broadcast_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l emergency_area_id_broadcast_nr_item_ext_ies_container; +using emergency_area_id_broadcast_nr_item_ext_ies_container = protocol_ext_container_empty_l; // EmergencyAreaIDBroadcastNR-Item ::= SEQUENCE struct emergency_area_id_broadcast_nr_item_s { @@ -2988,7 +2848,7 @@ struct emergency_area_id_broadcast_nr_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l tai_broadcast_eutra_item_ext_ies_container; +using tai_broadcast_eutra_item_ext_ies_container = protocol_ext_container_empty_l; // TAIBroadcastEUTRA-Item ::= SEQUENCE struct tai_broadcast_eutra_item_s { @@ -3005,7 +2865,7 @@ struct tai_broadcast_eutra_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l tai_broadcast_nr_item_ext_ies_container; +using tai_broadcast_nr_item_ext_ies_container = protocol_ext_container_empty_l; // TAIBroadcastNR-Item ::= SEQUENCE struct tai_broadcast_nr_item_s { @@ -3023,7 +2883,7 @@ struct tai_broadcast_nr_item_s { }; // BroadcastCompletedAreaList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o broadcast_completed_area_list_ext_ies_o; +using broadcast_completed_area_list_ext_ies_o = ngap_protocol_ies_empty_o; // CellIDBroadcastEUTRA ::= SEQUENCE (SIZE (1..65535)) OF CellIDBroadcastEUTRA-Item using cell_id_broadcast_eutra_l = dyn_array; @@ -3057,7 +2917,7 @@ struct broadcast_completed_area_list_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3074,109 +2934,81 @@ struct broadcast_completed_area_list_c { // getters cell_id_broadcast_eutra_l& cell_id_broadcast_eutra() { - assert_choice_type("cellIDBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } tai_broadcast_eutra_l& tai_broadcast_eutra() { - assert_choice_type("tAIBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } emergency_area_id_broadcast_eutra_l& emergency_area_id_broadcast_eutra() { - assert_choice_type("emergencyAreaIDBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::emergency_area_id_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } cell_id_broadcast_nr_l& cell_id_broadcast_nr() { - assert_choice_type("cellIDBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } tai_broadcast_nr_l& tai_broadcast_nr() { - assert_choice_type("tAIBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } emergency_area_id_broadcast_nr_l& emergency_area_id_broadcast_nr() { - assert_choice_type("emergencyAreaIDBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::emergency_area_id_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::choice_exts, type_, "BroadcastCompletedAreaList"); return c.get >(); } const cell_id_broadcast_eutra_l& cell_id_broadcast_eutra() const { - assert_choice_type("cellIDBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } const tai_broadcast_eutra_l& tai_broadcast_eutra() const { - assert_choice_type("tAIBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } const emergency_area_id_broadcast_eutra_l& emergency_area_id_broadcast_eutra() const { - assert_choice_type("emergencyAreaIDBroadcastEUTRA", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::emergency_area_id_broadcast_eutra, type_, "BroadcastCompletedAreaList"); return c.get(); } const cell_id_broadcast_nr_l& cell_id_broadcast_nr() const { - assert_choice_type("cellIDBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } const tai_broadcast_nr_l& tai_broadcast_nr() const { - assert_choice_type("tAIBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } const emergency_area_id_broadcast_nr_l& emergency_area_id_broadcast_nr() const { - assert_choice_type("emergencyAreaIDBroadcastNR", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::emergency_area_id_broadcast_nr, type_, "BroadcastCompletedAreaList"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "BroadcastCompletedAreaList"); - return c.get >(); - } - cell_id_broadcast_eutra_l& set_cell_id_broadcast_eutra() - { - set(types::cell_id_broadcast_eutra); - return c.get(); - } - tai_broadcast_eutra_l& set_tai_broadcast_eutra() - { - set(types::tai_broadcast_eutra); - return c.get(); - } - emergency_area_id_broadcast_eutra_l& set_emergency_area_id_broadcast_eutra() - { - set(types::emergency_area_id_broadcast_eutra); - return c.get(); - } - cell_id_broadcast_nr_l& set_cell_id_broadcast_nr() - { - set(types::cell_id_broadcast_nr); - return c.get(); - } - tai_broadcast_nr_l& set_tai_broadcast_nr() - { - set(types::tai_broadcast_nr); - return c.get(); - } - emergency_area_id_broadcast_nr_l& set_emergency_area_id_broadcast_nr() - { - set(types::emergency_area_id_broadcast_nr); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "BroadcastCompletedAreaList"); return c.get >(); } + cell_id_broadcast_eutra_l& set_cell_id_broadcast_eutra(); + tai_broadcast_eutra_l& set_tai_broadcast_eutra(); + emergency_area_id_broadcast_eutra_l& set_emergency_area_id_broadcast_eutra(); + cell_id_broadcast_nr_l& set_cell_id_broadcast_nr(); + tai_broadcast_nr_l& set_tai_broadcast_nr(); + emergency_area_id_broadcast_nr_l& set_emergency_area_id_broadcast_nr(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -3193,9 +3025,9 @@ private: }; // BroadcastPLMNItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o broadcast_plmn_item_ext_ies_o; +using broadcast_plmn_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l broadcast_plmn_item_ext_ies_container; +using broadcast_plmn_item_ext_ies_container = protocol_ext_container_empty_l; // BroadcastPLMNItem ::= SEQUENCE struct broadcast_plmn_item_s { @@ -3216,9 +3048,9 @@ struct broadcast_plmn_item_s { using broadcast_plmn_list_l = dyn_array; // COUNTValueForPDCP-SN12-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o count_value_for_pdcp_sn12_ext_ies_o; +using count_value_for_pdcp_sn12_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l count_value_for_pdcp_sn12_ext_ies_container; +using count_value_for_pdcp_sn12_ext_ies_container = protocol_ext_container_empty_l; // COUNTValueForPDCP-SN12 ::= SEQUENCE struct count_value_for_pdcp_sn12_s { @@ -3236,9 +3068,9 @@ struct count_value_for_pdcp_sn12_s { }; // COUNTValueForPDCP-SN18-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o count_value_for_pdcp_sn18_ext_ies_o; +using count_value_for_pdcp_sn18_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l count_value_for_pdcp_sn18_ext_ies_container; +using count_value_for_pdcp_sn18_ext_ies_container = protocol_ext_container_empty_l; // COUNTValueForPDCP-SN18 ::= SEQUENCE struct count_value_for_pdcp_sn18_s { @@ -3256,7 +3088,7 @@ struct count_value_for_pdcp_sn18_s { }; // CellIDListForRestart-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o cell_id_list_for_restart_ext_ies_o; +using cell_id_list_for_restart_ext_ies_o = ngap_protocol_ies_empty_o; // EUTRA-CGIList ::= SEQUENCE (SIZE (1..256)) OF EUTRA-CGI using eutra_cgi_list_l = dyn_array; @@ -3269,7 +3101,7 @@ struct cell_id_list_for_restart_c { struct types_opts { enum options { eutra_cgi_listfor_restart, nr_cgi_listfor_restart, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3286,49 +3118,37 @@ struct cell_id_list_for_restart_c { // getters eutra_cgi_list_l& eutra_cgi_listfor_restart() { - assert_choice_type("eUTRA-CGIListforRestart", type_.to_string(), "CellIDListForRestart"); + assert_choice_type(types::eutra_cgi_listfor_restart, type_, "CellIDListForRestart"); return c.get(); } nr_cgi_list_l& nr_cgi_listfor_restart() { - assert_choice_type("nR-CGIListforRestart", type_.to_string(), "CellIDListForRestart"); + assert_choice_type(types::nr_cgi_listfor_restart, type_, "CellIDListForRestart"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "CellIDListForRestart"); + assert_choice_type(types::choice_exts, type_, "CellIDListForRestart"); return c.get >(); } const eutra_cgi_list_l& eutra_cgi_listfor_restart() const { - assert_choice_type("eUTRA-CGIListforRestart", type_.to_string(), "CellIDListForRestart"); + assert_choice_type(types::eutra_cgi_listfor_restart, type_, "CellIDListForRestart"); return c.get(); } const nr_cgi_list_l& nr_cgi_listfor_restart() const { - assert_choice_type("nR-CGIListforRestart", type_.to_string(), "CellIDListForRestart"); + assert_choice_type(types::nr_cgi_listfor_restart, type_, "CellIDListForRestart"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "CellIDListForRestart"); - return c.get >(); - } - eutra_cgi_list_l& set_eutra_cgi_listfor_restart() - { - set(types::eutra_cgi_listfor_restart); - return c.get(); - } - nr_cgi_list_l& set_nr_cgi_listfor_restart() - { - set(types::nr_cgi_listfor_restart); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "CellIDListForRestart"); return c.get >(); } + eutra_cgi_list_l& set_eutra_cgi_listfor_restart(); + nr_cgi_list_l& set_nr_cgi_listfor_restart(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -3352,7 +3172,7 @@ struct cell_traffic_trace_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3427,14 +3247,14 @@ struct cell_traffic_trace_s { struct cell_size_opts { enum options { verysmall, small, medium, large, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_size_e; // CellType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o cell_type_ext_ies_o; +using cell_type_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l cell_type_ext_ies_container; +using cell_type_ext_ies_container = protocol_ext_container_empty_l; // CellType ::= SEQUENCE struct cell_type_s { @@ -3451,12 +3271,12 @@ struct cell_type_s { }; // ExpectedUEMovingTrajectoryItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o expected_ue_moving_trajectory_item_ext_ies_o; +using expected_ue_moving_trajectory_item_ext_ies_o = ngap_protocol_ext_empty_o; // ExpectedUEActivityBehaviour-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o expected_ue_activity_behaviour_ext_ies_o; +using expected_ue_activity_behaviour_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l expected_ue_moving_trajectory_item_ext_ies_container; +using expected_ue_moving_trajectory_item_ext_ies_container = protocol_ext_container_empty_l; // ExpectedUEMovingTrajectoryItem ::= SEQUENCE struct expected_ue_moving_trajectory_item_s { @@ -3478,24 +3298,24 @@ struct expected_ue_moving_trajectory_item_s { struct source_of_ue_activity_behaviour_info_opts { enum options { subscription_info, statistics, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated source_of_ue_activity_behaviour_info_e; // TAIListForInactiveItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_list_for_inactive_item_ext_ies_o; +using tai_list_for_inactive_item_ext_ies_o = ngap_protocol_ext_empty_o; // ExpectedHOInterval ::= ENUMERATED struct expected_ho_interv_opts { enum options { sec15, sec30, sec60, sec90, sec120, sec180, long_time, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated expected_ho_interv_e; -typedef protocol_ext_container_empty_l expected_ue_activity_behaviour_ext_ies_container; +using expected_ue_activity_behaviour_ext_ies_container = protocol_ext_container_empty_l; // ExpectedUEActivityBehaviour ::= SEQUENCE struct expected_ue_activity_behaviour_s { @@ -3517,20 +3337,20 @@ struct expected_ue_activity_behaviour_s { }; // ExpectedUEBehaviour-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o expected_ue_behaviour_ext_ies_o; +using expected_ue_behaviour_ext_ies_o = ngap_protocol_ext_empty_o; // ExpectedUEMobility ::= ENUMERATED struct expected_ue_mob_opts { enum options { stationary, mobile, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated expected_ue_mob_e; // ExpectedUEMovingTrajectory ::= SEQUENCE (SIZE (1..16)) OF ExpectedUEMovingTrajectoryItem using expected_ue_moving_trajectory_l = dyn_array; -typedef protocol_ext_container_empty_l tai_list_for_inactive_item_ext_ies_container; +using tai_list_for_inactive_item_ext_ies_container = protocol_ext_container_empty_l; // TAIListForInactiveItem ::= SEQUENCE struct tai_list_for_inactive_item_s { @@ -3547,12 +3367,12 @@ struct tai_list_for_inactive_item_s { }; // UEIdentityIndexValue-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o ue_id_idx_value_ext_ies_o; +using ue_id_idx_value_ext_ies_o = ngap_protocol_ies_empty_o; // CoreNetworkAssistanceInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o core_network_assist_info_ext_ies_o; +using core_network_assist_info_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l expected_ue_behaviour_ext_ies_container; +using expected_ue_behaviour_ext_ies_container = protocol_ext_container_empty_l; // ExpectedUEBehaviour ::= SEQUENCE struct expected_ue_behaviour_s { @@ -3579,7 +3399,7 @@ struct expected_ue_behaviour_s { struct mico_mode_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mico_mode_ind_e; @@ -3588,7 +3408,7 @@ struct paging_drx_opts { enum options { v32, v64, v128, v256, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated paging_drx_e; @@ -3602,7 +3422,7 @@ struct ue_id_idx_value_c { enum options { idx_len10, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3620,34 +3440,26 @@ struct ue_id_idx_value_c { // getters fixed_bitstring<10, false, true>& idx_len10() { - assert_choice_type("indexLength10", type_.to_string(), "UEIdentityIndexValue"); + assert_choice_type(types::idx_len10, type_, "UEIdentityIndexValue"); return c.get >(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "UEIdentityIndexValue"); + assert_choice_type(types::choice_exts, type_, "UEIdentityIndexValue"); return c.get >(); } const fixed_bitstring<10, false, true>& idx_len10() const { - assert_choice_type("indexLength10", type_.to_string(), "UEIdentityIndexValue"); + assert_choice_type(types::idx_len10, type_, "UEIdentityIndexValue"); return c.get >(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "UEIdentityIndexValue"); - return c.get >(); - } - fixed_bitstring<10, false, true>& set_idx_len10() - { - set(types::idx_len10); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "UEIdentityIndexValue"); return c.get >(); } + fixed_bitstring<10, false, true>& set_idx_len10(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -3656,7 +3468,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l core_network_assist_info_ext_ies_container; +using core_network_assist_info_ext_ies_container = protocol_ext_container_empty_l; // CoreNetworkAssistanceInformation ::= SEQUENCE struct core_network_assist_info_s { @@ -3681,15 +3493,15 @@ struct core_network_assist_info_s { }; // DRBStatusDL12-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drb_status_dl12_ext_ies_o; +using drb_status_dl12_ext_ies_o = ngap_protocol_ext_empty_o; // DRBStatusDL18-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drb_status_dl18_ext_ies_o; +using drb_status_dl18_ext_ies_o = ngap_protocol_ext_empty_o; // DRBStatusDL-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o drb_status_dl_ext_ies_o; +using drb_status_dl_ext_ies_o = ngap_protocol_ies_empty_o; -typedef protocol_ext_container_empty_l drb_status_dl12_ext_ies_container; +using drb_status_dl12_ext_ies_container = protocol_ext_container_empty_l; // DRBStatusDL12 ::= SEQUENCE struct drb_status_dl12_s { @@ -3705,7 +3517,7 @@ struct drb_status_dl12_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l drb_status_dl18_ext_ies_container; +using drb_status_dl18_ext_ies_container = protocol_ext_container_empty_l; // DRBStatusDL18 ::= SEQUENCE struct drb_status_dl18_s { @@ -3727,7 +3539,7 @@ struct drb_status_dl_c { enum options { drb_status_dl12, drb_status_dl18, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3745,49 +3557,37 @@ struct drb_status_dl_c { // getters drb_status_dl12_s& drb_status_dl12() { - assert_choice_type("dRBStatusDL12", type_.to_string(), "DRBStatusDL"); + assert_choice_type(types::drb_status_dl12, type_, "DRBStatusDL"); return c.get(); } drb_status_dl18_s& drb_status_dl18() { - assert_choice_type("dRBStatusDL18", type_.to_string(), "DRBStatusDL"); + assert_choice_type(types::drb_status_dl18, type_, "DRBStatusDL"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "DRBStatusDL"); + assert_choice_type(types::choice_exts, type_, "DRBStatusDL"); return c.get >(); } const drb_status_dl12_s& drb_status_dl12() const { - assert_choice_type("dRBStatusDL12", type_.to_string(), "DRBStatusDL"); + assert_choice_type(types::drb_status_dl12, type_, "DRBStatusDL"); return c.get(); } const drb_status_dl18_s& drb_status_dl18() const { - assert_choice_type("dRBStatusDL18", type_.to_string(), "DRBStatusDL"); + assert_choice_type(types::drb_status_dl18, type_, "DRBStatusDL"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "DRBStatusDL"); - return c.get >(); - } - drb_status_dl12_s& set_drb_status_dl12() - { - set(types::drb_status_dl12); - return c.get(); - } - drb_status_dl18_s& set_drb_status_dl18() - { - set(types::drb_status_dl18); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "DRBStatusDL"); return c.get >(); } + drb_status_dl12_s& set_drb_status_dl12(); + drb_status_dl18_s& set_drb_status_dl18(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -3797,15 +3597,15 @@ private: }; // DRBStatusUL12-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drb_status_ul12_ext_ies_o; +using drb_status_ul12_ext_ies_o = ngap_protocol_ext_empty_o; // DRBStatusUL18-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drb_status_ul18_ext_ies_o; +using drb_status_ul18_ext_ies_o = ngap_protocol_ext_empty_o; // DRBStatusUL-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o drb_status_ul_ext_ies_o; +using drb_status_ul_ext_ies_o = ngap_protocol_ies_empty_o; -typedef protocol_ext_container_empty_l drb_status_ul12_ext_ies_container; +using drb_status_ul12_ext_ies_container = protocol_ext_container_empty_l; // DRBStatusUL12 ::= SEQUENCE struct drb_status_ul12_s { @@ -3823,7 +3623,7 @@ struct drb_status_ul12_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l drb_status_ul18_ext_ies_container; +using drb_status_ul18_ext_ies_container = protocol_ext_container_empty_l; // DRBStatusUL18 ::= SEQUENCE struct drb_status_ul18_s { @@ -3847,7 +3647,7 @@ struct drb_status_ul_c { enum options { drb_status_ul12, drb_status_ul18, choice_exts, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3865,49 +3665,37 @@ struct drb_status_ul_c { // getters drb_status_ul12_s& drb_status_ul12() { - assert_choice_type("dRBStatusUL12", type_.to_string(), "DRBStatusUL"); + assert_choice_type(types::drb_status_ul12, type_, "DRBStatusUL"); return c.get(); } drb_status_ul18_s& drb_status_ul18() { - assert_choice_type("dRBStatusUL18", type_.to_string(), "DRBStatusUL"); + assert_choice_type(types::drb_status_ul18, type_, "DRBStatusUL"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "DRBStatusUL"); + assert_choice_type(types::choice_exts, type_, "DRBStatusUL"); return c.get >(); } const drb_status_ul12_s& drb_status_ul12() const { - assert_choice_type("dRBStatusUL12", type_.to_string(), "DRBStatusUL"); + assert_choice_type(types::drb_status_ul12, type_, "DRBStatusUL"); return c.get(); } const drb_status_ul18_s& drb_status_ul18() const { - assert_choice_type("dRBStatusUL18", type_.to_string(), "DRBStatusUL"); + assert_choice_type(types::drb_status_ul18, type_, "DRBStatusUL"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "DRBStatusUL"); - return c.get >(); - } - drb_status_ul12_s& set_drb_status_ul12() - { - set(types::drb_status_ul12); - return c.get(); - } - drb_status_ul18_s& set_drb_status_ul18() - { - set(types::drb_status_ul18); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "DRBStatusUL"); return c.get >(); } + drb_status_ul12_s& set_drb_status_ul12(); + drb_status_ul18_s& set_drb_status_ul18(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -3917,9 +3705,9 @@ private: }; // DRBsSubjectToStatusTransferItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drbs_subject_to_status_transfer_item_ext_ies_o; +using drbs_subject_to_status_transfer_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l drbs_subject_to_status_transfer_item_ext_ies_container; +using drbs_subject_to_status_transfer_item_ext_ies_container = protocol_ext_container_empty_l; // DRBsSubjectToStatusTransferItem ::= SEQUENCE struct drbs_subject_to_status_transfer_item_s { @@ -3941,9 +3729,9 @@ struct drbs_subject_to_status_transfer_item_s { using drbs_subject_to_status_transfer_list_l = dyn_array; // DRBsToQosFlowsMappingItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o drbs_to_qos_flows_map_item_ext_ies_o; +using drbs_to_qos_flows_map_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l drbs_to_qos_flows_map_item_ext_ies_container; +using drbs_to_qos_flows_map_item_ext_ies_container = protocol_ext_container_empty_l; // DRBsToQosFlowsMappingItem ::= SEQUENCE struct drbs_to_qos_flows_map_item_s { @@ -3964,9 +3752,9 @@ struct drbs_to_qos_flows_map_item_s { using drbs_to_qos_flows_map_list_l = dyn_array; // DataForwardingResponseDRBItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o data_forwarding_resp_drb_item_ext_ies_o; +using data_forwarding_resp_drb_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l data_forwarding_resp_drb_item_ext_ies_container; +using data_forwarding_resp_drb_item_ext_ies_container = protocol_ext_container_empty_l; // DataForwardingResponseDRBItem ::= SEQUENCE struct data_forwarding_resp_drb_item_s { @@ -3996,7 +3784,7 @@ struct deactiv_trace_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, ngran_trace_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4062,7 +3850,7 @@ struct deactiv_trace_s { }; // ForbiddenAreaInformation-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o forbidden_area_info_item_ext_ies_o; +using forbidden_area_info_item_ext_ies_o = ngap_protocol_ext_empty_o; // ForbiddenTACs ::= SEQUENCE (SIZE (1..4096)) OF OCTET STRING (SIZE (3)) using forbidden_tacs_l = dyn_array >; @@ -4071,12 +3859,12 @@ using forbidden_tacs_l = dyn_array >; using not_allowed_tacs_l = bounded_array, 16>; // RATRestrictions-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o rat_restricts_item_ext_ies_o; +using rat_restricts_item_ext_ies_o = ngap_protocol_ext_empty_o; // ServiceAreaInformation-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o service_area_info_item_ext_ies_o; +using service_area_info_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l forbidden_area_info_item_ext_ies_container; +using forbidden_area_info_item_ext_ies_container = protocol_ext_container_empty_l; // ForbiddenAreaInformation-Item ::= SEQUENCE struct forbidden_area_info_item_s { @@ -4093,7 +3881,7 @@ struct forbidden_area_info_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l rat_restricts_item_ext_ies_container; +using rat_restricts_item_ext_ies_container = protocol_ext_container_empty_l; // RATRestrictions-Item ::= SEQUENCE struct rat_restricts_item_s { @@ -4110,7 +3898,7 @@ struct rat_restricts_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l service_area_info_item_ext_ies_container; +using service_area_info_item_ext_ies_container = protocol_ext_container_empty_l; // ServiceAreaInformation-Item ::= SEQUENCE struct service_area_info_item_s { @@ -4143,7 +3931,7 @@ struct mob_restrict_list_ext_ies_o { struct types_opts { enum options { last_eutran_plmn_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4175,7 +3963,7 @@ using rat_restricts_l = dyn_array; using service_area_info_l = dyn_array; // UEAggregateMaximumBitRate-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_aggregate_maximum_bit_rate_ext_ies_o; +using ue_aggregate_maximum_bit_rate_ext_ies_o = ngap_protocol_ext_empty_o; // MobilityRestrictionList ::= SEQUENCE struct mob_restrict_list_s { @@ -4199,7 +3987,7 @@ struct mob_restrict_list_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l ue_aggregate_maximum_bit_rate_ext_ies_container; +using ue_aggregate_maximum_bit_rate_ext_ies_container = protocol_ext_container_empty_l; // UEAggregateMaximumBitRate ::= SEQUENCE struct ue_aggregate_maximum_bit_rate_s { @@ -4234,7 +4022,7 @@ struct dl_nas_transport_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4335,7 +4123,7 @@ struct dl_non_ueassociated_nrp_pa_transport_ies_o { struct types_opts { enum options { routing_id, nrp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4398,12 +4186,12 @@ struct dl_non_ueassociated_nrp_pa_transport_s { }; // XnExtTLA-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o xn_ext_tla_item_ext_ies_o; +using xn_ext_tla_item_ext_ies_o = ngap_protocol_ext_empty_o; // XnGTP-TLAs ::= SEQUENCE (SIZE (1..16)) OF BIT STRING (SIZE (1..160,...)) using xn_gtp_tlas_l = bounded_array, 16>; -typedef protocol_ext_container_empty_l xn_ext_tla_item_ext_ies_container; +using xn_ext_tla_item_ext_ies_container = protocol_ext_container_empty_l; // XnExtTLA-Item ::= SEQUENCE struct xn_ext_tla_item_s { @@ -4429,12 +4217,12 @@ using xn_ext_tlas_l = dyn_array; using xn_tlas_l = bounded_array, 16>; // XnTNLConfigurationInfo-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o xn_tnl_cfg_info_ext_ies_o; +using xn_tnl_cfg_info_ext_ies_o = ngap_protocol_ext_empty_o; // SONInformationReply-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o son_info_reply_ext_ies_o; +using son_info_reply_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l xn_tnl_cfg_info_ext_ies_container; +using xn_tnl_cfg_info_ext_ies_container = protocol_ext_container_empty_l; // XnTNLConfigurationInfo ::= SEQUENCE struct xn_tnl_cfg_info_s { @@ -4453,9 +4241,9 @@ struct xn_tnl_cfg_info_s { }; // SONInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o son_info_ext_ies_o; +using son_info_ext_ies_o = ngap_protocol_ies_empty_o; -typedef protocol_ext_container_empty_l son_info_reply_ext_ies_container; +using son_info_reply_ext_ies_container = protocol_ext_container_empty_l; // SONInformationReply ::= SEQUENCE struct son_info_reply_s { @@ -4476,25 +4264,25 @@ struct son_info_reply_s { struct son_info_request_opts { enum options { xn_tnl_cfg_info, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated son_info_request_e; // SourceRANNodeID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o source_ran_node_id_ext_ies_o; +using source_ran_node_id_ext_ies_o = ngap_protocol_ext_empty_o; // TargetRANNodeID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o target_ran_node_id_ext_ies_o; +using target_ran_node_id_ext_ies_o = ngap_protocol_ext_empty_o; // SONConfigurationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o son_cfg_transfer_ext_ies_o; +using son_cfg_transfer_ext_ies_o = ngap_protocol_ext_empty_o; // SONInformation ::= CHOICE struct son_info_c { struct types_opts { enum options { son_info_request, son_info_reply, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4511,49 +4299,37 @@ struct son_info_c { // getters son_info_request_e& son_info_request() { - assert_choice_type("sONInformationRequest", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_request, type_, "SONInformation"); return c.get(); } son_info_reply_s& son_info_reply() { - assert_choice_type("sONInformationReply", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_reply, type_, "SONInformation"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "SONInformation"); + assert_choice_type(types::choice_exts, type_, "SONInformation"); return c.get >(); } const son_info_request_e& son_info_request() const { - assert_choice_type("sONInformationRequest", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_request, type_, "SONInformation"); return c.get(); } const son_info_reply_s& son_info_reply() const { - assert_choice_type("sONInformationReply", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_reply, type_, "SONInformation"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "SONInformation"); - return c.get >(); - } - son_info_request_e& set_son_info_request() - { - set(types::son_info_request); - return c.get(); - } - son_info_reply_s& set_son_info_reply() - { - set(types::son_info_reply); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "SONInformation"); return c.get >(); } + son_info_request_e& set_son_info_request(); + son_info_reply_s& set_son_info_reply(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -4562,7 +4338,7 @@ private: void destroy_(); }; -typedef protocol_ext_container_empty_l source_ran_node_id_ext_ies_container; +using source_ran_node_id_ext_ies_container = protocol_ext_container_empty_l; // SourceRANNodeID ::= SEQUENCE struct source_ran_node_id_s { @@ -4579,7 +4355,7 @@ struct source_ran_node_id_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l target_ran_node_id_ext_ies_container; +using target_ran_node_id_ext_ies_container = protocol_ext_container_empty_l; // TargetRANNodeID ::= SEQUENCE struct target_ran_node_id_s { @@ -4596,7 +4372,7 @@ struct target_ran_node_id_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l son_cfg_transfer_ext_ies_container; +using son_cfg_transfer_ext_ies_container = protocol_ext_container_empty_l; // SONConfigurationTransfer ::= SEQUENCE struct son_cfg_transfer_s { @@ -4623,7 +4399,7 @@ struct dl_ran_cfg_transfer_ies_o { struct types_opts { enum options { son_cfg_transfer_dl, endc_son_cfg_transfer_dl, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4688,9 +4464,9 @@ struct dl_ran_cfg_transfer_s { }; // RANStatusTransfer-TransparentContainer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ran_status_transfer_transparent_container_ext_ies_o; +using ran_status_transfer_transparent_container_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l ran_status_transfer_transparent_container_ext_ies_container; +using ran_status_transfer_transparent_container_ext_ies_container = protocol_ext_container_empty_l; // RANStatusTransfer-TransparentContainer ::= SEQUENCE struct ran_status_transfer_transparent_container_s { @@ -4713,7 +4489,7 @@ struct dl_ran_status_transfer_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, ran_status_transfer_transparent_container, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4785,7 +4561,7 @@ struct dl_ueassociated_nrp_pa_transport_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, routing_id, nrp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4854,20 +4630,20 @@ struct dl_ueassociated_nrp_pa_transport_s { }; // PacketErrorRate-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o packet_error_rate_ext_ies_o; +using packet_error_rate_ext_ies_o = ngap_protocol_ext_empty_o; // DelayCritical ::= ENUMERATED struct delay_crit_opts { enum options { delay_crit, non_delay_crit, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated delay_crit_e; // Dynamic5QIDescriptor-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o dynamic5_qi_descriptor_ext_ies_o; +using dynamic5_qi_descriptor_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l packet_error_rate_ext_ies_container; +using packet_error_rate_ext_ies_container = protocol_ext_container_empty_l; // PacketErrorRate ::= SEQUENCE struct packet_error_rate_s { @@ -4884,7 +4660,7 @@ struct packet_error_rate_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l dynamic5_qi_descriptor_ext_ies_container; +using dynamic5_qi_descriptor_ext_ies_container = protocol_ext_container_empty_l; // Dynamic5QIDescriptor ::= SEQUENCE struct dynamic5_qi_descriptor_s { @@ -4914,14 +4690,14 @@ struct dynamic5_qi_descriptor_s { struct dl_forwarding_opts { enum options { dl_forwarding_proposed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dl_forwarding_e; // E-RABInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o erab_info_item_ext_ies_o; +using erab_info_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l erab_info_item_ext_ies_container; +using erab_info_item_ext_ies_container = protocol_ext_container_empty_l; // E-RABInformationItem ::= SEQUENCE struct erab_info_item_s { @@ -4943,9 +4719,9 @@ struct erab_info_item_s { using erab_info_list_l = dyn_array; // EPS-TAI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o eps_tai_ext_ies_o; +using eps_tai_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l eps_tai_ext_ies_container; +using eps_tai_ext_ies_container = protocol_ext_container_empty_l; // EPS-TAI ::= SEQUENCE struct eps_tai_s { @@ -4972,13 +4748,13 @@ using emergency_area_id_list_l = dyn_array >; using emergency_area_id_list_for_restart_l = dyn_array >; // EmergencyFallbackIndicator-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o emergency_fallback_ind_ext_ies_o; +using emergency_fallback_ind_ext_ies_o = ngap_protocol_ext_empty_o; // EmergencyFallbackRequestIndicator ::= ENUMERATED struct emergency_fallback_request_ind_opts { enum options { emergency_fallback_requested, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated emergency_fallback_request_ind_e; @@ -4987,12 +4763,12 @@ struct emergency_service_target_cn_opts { enum options { five_gc, epc, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated emergency_service_target_cn_e; -typedef protocol_ext_container_empty_l emergency_fallback_ind_ext_ies_container; +using emergency_fallback_ind_ext_ies_container = protocol_ext_container_empty_l; // EmergencyFallbackIndicator ::= SEQUENCE struct emergency_fallback_ind_s { @@ -5017,7 +4793,7 @@ struct error_ind_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5090,9 +4866,9 @@ struct error_ind_s { }; // FiveG-S-TMSI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o five_g_s_tmsi_ext_ies_o; +using five_g_s_tmsi_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l five_g_s_tmsi_ext_ies_container; +using five_g_s_tmsi_ext_ies_container = protocol_ext_container_empty_l; // FiveG-S-TMSI ::= SEQUENCE struct five_g_s_tmsi_s { @@ -5111,17 +4887,17 @@ struct five_g_s_tmsi_s { }; // GBR-QosInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o gbr_qos_info_ext_ies_o; +using gbr_qos_info_ext_ies_o = ngap_protocol_ext_empty_o; // NotificationControl ::= ENUMERATED struct notif_ctrl_opts { enum options { notif_requested, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated notif_ctrl_e; -typedef protocol_ext_container_empty_l gbr_qos_info_ext_ies_container; +using gbr_qos_info_ext_ies_container = protocol_ext_container_empty_l; // GBR-QosInformation ::= SEQUENCE struct gbr_qos_info_s { @@ -5153,7 +4929,7 @@ struct ho_cancel_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5225,7 +5001,7 @@ struct ho_cancel_ack_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5291,18 +5067,21 @@ struct ho_cancel_ack_s { void to_json(json_writer& j) const; }; -// QosFlowPerTNLInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_per_tnl_info_ext_ies_o; +// PDUSessionResourceHandoverItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_ho_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l qos_flow_per_tnl_info_ext_ies_container; +// PDUSessionResourceToReleaseItemHOCmd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_to_release_item_ho_cmd_ext_ies_o = ngap_protocol_ext_empty_o; -// QosFlowPerTNLInformation ::= SEQUENCE -struct qos_flow_per_tnl_info_s { - bool ext = false; - bool ie_exts_present = false; - up_transport_layer_info_c uptransport_layer_info; - associated_qos_flow_list_l associated_qos_flow_list; - qos_flow_per_tnl_info_ext_ies_container ie_exts; +using pdu_session_res_ho_item_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceHandoverItem ::= SEQUENCE +struct pdu_session_res_ho_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring ho_cmd_transfer; + pdu_session_res_ho_item_ext_ies_container ie_exts; // ... // sequence methods @@ -5311,17 +5090,15 @@ struct qos_flow_per_tnl_info_s { void to_json(json_writer& j) const; }; -// QosFlowPerTNLInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_per_tnl_info_item_ext_ies_o; - -typedef protocol_ext_container_empty_l qos_flow_per_tnl_info_item_ext_ies_container; +using pdu_session_res_to_release_item_ho_cmd_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowPerTNLInformationItem ::= SEQUENCE -struct qos_flow_per_tnl_info_item_s { - bool ext = false; - bool ie_exts_present = false; - qos_flow_per_tnl_info_s qos_flow_per_tnl_info; - qos_flow_per_tnl_info_item_ext_ies_container ie_exts; +// PDUSessionResourceToReleaseItemHOCmd ::= SEQUENCE +struct pdu_session_res_to_release_item_ho_cmd_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring ho_prep_unsuccessful_transfer; + pdu_session_res_to_release_item_ho_cmd_ext_ies_container ie_exts; // ... // sequence methods @@ -5330,93 +5107,117 @@ struct qos_flow_per_tnl_info_item_s { void to_json(json_writer& j) const; }; -// QosFlowToBeForwardedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_to_be_forwarded_item_ext_ies_o; - -// QosFlowPerTNLInformationList ::= SEQUENCE (SIZE (1..3)) OF QosFlowPerTNLInformationItem -using qos_flow_per_tnl_info_list_l = dyn_array; +// HandoverType ::= ENUMERATED +struct handov_type_opts { + enum options { intra5gs, fivegs_to_eps, eps_to_minus5gs, /*...*/ nulltype } value; -typedef protocol_ext_container_empty_l qos_flow_to_be_forwarded_item_ext_ies_container; + const char* to_string() const; +}; +typedef enumerated handov_type_e; -// QosFlowToBeForwardedItem ::= SEQUENCE -struct qos_flow_to_be_forwarded_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_to_be_forwarded_item_ext_ies_container ie_exts; - // ... +// PDUSessionResourceHandoverList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceHandoverItem +using pdu_session_res_ho_list_l = dyn_array; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceToReleaseListHOCmd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToReleaseItemHOCmd +using pdu_session_res_to_release_list_ho_cmd_l = dyn_array; -// HandoverCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct ho_cmd_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { +// HandoverCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ho_cmd_ies_o { + // Value ::= OPEN TYPE + struct value_c { struct types_opts { - enum options { add_dl_forwarding_uptnl_info, nulltype } value; + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + handov_type, + nas_security_params_from_ngran, + pdu_session_res_ho_list, + pdu_session_res_to_release_list_ho_cmd, + target_to_source_transparent_container, + crit_diagnostics, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - types type() const { return types::add_dl_forwarding_uptnl_info; } + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - qos_flow_per_tnl_info_list_l& add_dl_forwarding_uptnl_info() { return c; } - const qos_flow_per_tnl_info_list_l& add_dl_forwarding_uptnl_info() const { return c; } - + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + handov_type_e& handov_type(); + unbounded_octstring& nas_security_params_from_ngran(); + pdu_session_res_ho_list_l& pdu_session_res_ho_list(); + pdu_session_res_to_release_list_ho_cmd_l& pdu_session_res_to_release_list_ho_cmd(); + unbounded_octstring& target_to_source_transparent_container(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const handov_type_e& handov_type() const; + const unbounded_octstring& nas_security_params_from_ngran() const; + const pdu_session_res_ho_list_l& pdu_session_res_ho_list() const; + const pdu_session_res_to_release_list_ho_cmd_l& pdu_session_res_to_release_list_ho_cmd() const; + const unbounded_octstring& target_to_source_transparent_container() const; + const crit_diagnostics_s& crit_diagnostics() const; + private: - qos_flow_per_tnl_info_list_l c; + types type_; + choice_buffer_t > + c; + + void destroy_(); }; // members lookup methods static uint32_t idx_to_id(uint32_t idx); static bool is_id_valid(const uint32_t& id); static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); + static value_c get_value(const uint32_t& id); static presence_e get_presence(const uint32_t& id); }; -// HandoverPreparationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ho_prep_unsuccessful_transfer_ext_ies_o; - -// QosFlowToBeForwardedList ::= SEQUENCE (SIZE (1..64)) OF QosFlowToBeForwardedItem -using qos_flow_to_be_forwarded_list_l = dyn_array; +struct ho_cmd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; -// HandoverCommandTransfer ::= SEQUENCE -struct ho_cmd_transfer_s { - bool ext = false; - bool dlforwarding_up_tnl_info_present = false; - bool qos_flow_to_be_forwarded_list_present = false; - bool data_forwarding_resp_drb_list_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c dlforwarding_up_tnl_info; - qos_flow_to_be_forwarded_list_l qos_flow_to_be_forwarded_list; - data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list; - protocol_ext_container_l ie_exts; - // ... + // member variables + bool nas_security_params_from_ngran_present = false; + bool pdu_session_res_to_release_list_ho_cmd_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s handov_type; + ie_field_s > nas_security_params_from_ngran; + ie_field_s > pdu_session_res_ho_list; + ie_field_s > + pdu_session_res_to_release_list_ho_cmd; + ie_field_s > target_to_source_transparent_container; + ie_field_s crit_diagnostics; // sequence methods + ho_cmd_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l ho_prep_unsuccessful_transfer_ext_ies_container; - -// HandoverPreparationUnsuccessfulTransfer ::= SEQUENCE -struct ho_prep_unsuccessful_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ho_prep_unsuccessful_transfer_ext_ies_container ie_exts; +// HandoverCommand ::= SEQUENCE +struct ho_cmd_s { + bool ext = false; + ho_cmd_ies_container protocol_ies; // ... // sequence methods @@ -5425,21 +5226,18 @@ struct ho_prep_unsuccessful_transfer_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceHandoverItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_ho_item_ext_ies_o; - -// PDUSessionResourceToReleaseItemHOCmd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_to_release_item_ho_cmd_ext_ies_o; +// QosFlowPerTNLInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_per_tnl_info_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l pdu_session_res_ho_item_ext_ies_container; +using qos_flow_per_tnl_info_ext_ies_container = protocol_ext_container_empty_l; -// PDUSessionResourceHandoverItem ::= SEQUENCE -struct pdu_session_res_ho_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_cmd_transfer; - pdu_session_res_ho_item_ext_ies_container ie_exts; +// QosFlowPerTNLInformation ::= SEQUENCE +struct qos_flow_per_tnl_info_s { + bool ext = false; + bool ie_exts_present = false; + up_transport_layer_info_c uptransport_layer_info; + associated_qos_flow_list_l associated_qos_flow_list; + qos_flow_per_tnl_info_ext_ies_container ie_exts; // ... // sequence methods @@ -5448,15 +5246,17 @@ struct pdu_session_res_ho_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l pdu_session_res_to_release_item_ho_cmd_ext_ies_container; +// QosFlowPerTNLInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_per_tnl_info_item_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceToReleaseItemHOCmd ::= SEQUENCE -struct pdu_session_res_to_release_item_ho_cmd_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_prep_unsuccessful_transfer; - pdu_session_res_to_release_item_ho_cmd_ext_ies_container ie_exts; +using qos_flow_per_tnl_info_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowPerTNLInformationItem ::= SEQUENCE +struct qos_flow_per_tnl_info_item_s { + bool ext = false; + bool ie_exts_present = false; + qos_flow_per_tnl_info_s qos_flow_per_tnl_info; + qos_flow_per_tnl_info_item_ext_ies_container ie_exts; // ... // sequence methods @@ -5465,117 +5265,74 @@ struct pdu_session_res_to_release_item_ho_cmd_s { void to_json(json_writer& j) const; }; -// HandoverType ::= ENUMERATED -struct handov_type_opts { - enum options { intra5gs, fivegs_to_eps, eps_to_minus5gs, /*...*/ nulltype } value; +// QosFlowToBeForwardedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_to_be_forwarded_item_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; -}; -typedef enumerated handov_type_e; +// QosFlowPerTNLInformationList ::= SEQUENCE (SIZE (1..3)) OF QosFlowPerTNLInformationItem +using qos_flow_per_tnl_info_list_l = dyn_array; -// PDUSessionResourceHandoverList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceHandoverItem -using pdu_session_res_ho_list_l = dyn_array; +using qos_flow_to_be_forwarded_item_ext_ies_container = protocol_ext_container_empty_l; -// PDUSessionResourceToReleaseListHOCmd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToReleaseItemHOCmd -using pdu_session_res_to_release_list_ho_cmd_l = dyn_array; +// QosFlowToBeForwardedItem ::= SEQUENCE +struct qos_flow_to_be_forwarded_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_to_be_forwarded_item_ext_ies_container ie_exts; + // ... -// HandoverCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ho_cmd_ies_o { - // Value ::= OPEN TYPE - struct value_c { + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct ho_cmd_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - handov_type, - nas_security_params_from_ngran, - pdu_session_res_ho_list, - pdu_session_res_to_release_list_ho_cmd, - target_to_source_transparent_container, - crit_diagnostics, - nulltype - } value; + enum options { add_dl_forwarding_uptnl_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::add_dl_forwarding_uptnl_info; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - handov_type_e& handov_type(); - unbounded_octstring& nas_security_params_from_ngran(); - pdu_session_res_ho_list_l& pdu_session_res_ho_list(); - pdu_session_res_to_release_list_ho_cmd_l& pdu_session_res_to_release_list_ho_cmd(); - unbounded_octstring& target_to_source_transparent_container(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const handov_type_e& handov_type() const; - const unbounded_octstring& nas_security_params_from_ngran() const; - const pdu_session_res_ho_list_l& pdu_session_res_ho_list() const; - const pdu_session_res_to_release_list_ho_cmd_l& pdu_session_res_to_release_list_ho_cmd() const; - const unbounded_octstring& target_to_source_transparent_container() const; - const crit_diagnostics_s& crit_diagnostics() const; + qos_flow_per_tnl_info_list_l& add_dl_forwarding_uptnl_info() { return c; } + const qos_flow_per_tnl_info_list_l& add_dl_forwarding_uptnl_info() const { return c; } private: - types type_; - choice_buffer_t > - c; - - void destroy_(); + qos_flow_per_tnl_info_list_l c; }; // members lookup methods static uint32_t idx_to_id(uint32_t idx); static bool is_id_valid(const uint32_t& id); static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); static presence_e get_presence(const uint32_t& id); }; -struct ho_cmd_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool nas_security_params_from_ngran_present = false; - bool pdu_session_res_to_release_list_ho_cmd_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s handov_type; - ie_field_s > nas_security_params_from_ngran; - ie_field_s > pdu_session_res_ho_list; - ie_field_s > - pdu_session_res_to_release_list_ho_cmd; - ie_field_s > target_to_source_transparent_container; - ie_field_s crit_diagnostics; - - // sequence methods - ho_cmd_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// QosFlowToBeForwardedList ::= SEQUENCE (SIZE (1..64)) OF QosFlowToBeForwardedItem +using qos_flow_to_be_forwarded_list_l = dyn_array; -// HandoverCommand ::= SEQUENCE -struct ho_cmd_s { - bool ext = false; - ho_cmd_ies_container protocol_ies; +// HandoverCommandTransfer ::= SEQUENCE +struct ho_cmd_transfer_s { + bool ext = false; + bool dlforwarding_up_tnl_info_present = false; + bool qos_flow_to_be_forwarded_list_present = false; + bool data_forwarding_resp_drb_list_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c dlforwarding_up_tnl_info; + qos_flow_to_be_forwarded_list_l qos_flow_to_be_forwarded_list; + data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list; + protocol_ext_container_l ie_exts; // ... // sequence methods @@ -5592,7 +5349,7 @@ struct ho_fail_ies_o { enum options { amf_ue_ngap_id, cause, crit_diagnostics, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5660,18 +5417,18 @@ struct ho_fail_s { }; // UserLocationInformationEUTRA-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o user_location_info_eutra_ext_ies_o; +using user_location_info_eutra_ext_ies_o = ngap_protocol_ext_empty_o; // UserLocationInformationN3IWF-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o user_location_info_n3_iwf_ext_ies_o; +using user_location_info_n3_iwf_ext_ies_o = ngap_protocol_ext_empty_o; // UserLocationInformationNR-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o user_location_info_nr_ext_ies_o; +using user_location_info_nr_ext_ies_o = ngap_protocol_ext_empty_o; // UserLocationInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o user_location_info_ext_ies_o; +using user_location_info_ext_ies_o = ngap_protocol_ies_empty_o; -typedef protocol_ext_container_empty_l user_location_info_eutra_ext_ies_container; +using user_location_info_eutra_ext_ies_container = protocol_ext_container_empty_l; // UserLocationInformationEUTRA ::= SEQUENCE struct user_location_info_eutra_s { @@ -5690,7 +5447,7 @@ struct user_location_info_eutra_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l user_location_info_n3_iwf_ext_ies_container; +using user_location_info_n3_iwf_ext_ies_container = protocol_ext_container_empty_l; // UserLocationInformationN3IWF ::= SEQUENCE struct user_location_info_n3_iwf_s { @@ -5707,7 +5464,7 @@ struct user_location_info_n3_iwf_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l user_location_info_nr_ext_ies_container; +using user_location_info_nr_ext_ies_container = protocol_ext_container_empty_l; // UserLocationInformationNR ::= SEQUENCE struct user_location_info_nr_s { @@ -5738,7 +5495,7 @@ struct user_location_info_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5756,64 +5513,48 @@ struct user_location_info_c { // getters user_location_info_eutra_s& user_location_info_eutra() { - assert_choice_type("userLocationInformationEUTRA", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_eutra, type_, "UserLocationInformation"); return c.get(); } user_location_info_nr_s& user_location_info_nr() { - assert_choice_type("userLocationInformationNR", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_nr, type_, "UserLocationInformation"); return c.get(); } user_location_info_n3_iwf_s& user_location_info_n3_iwf() { - assert_choice_type("userLocationInformationN3IWF", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_n3_iwf, type_, "UserLocationInformation"); return c.get(); } protocol_ie_single_container_s& choice_exts() { - assert_choice_type("choice-Extensions", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::choice_exts, type_, "UserLocationInformation"); return c.get >(); } const user_location_info_eutra_s& user_location_info_eutra() const { - assert_choice_type("userLocationInformationEUTRA", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_eutra, type_, "UserLocationInformation"); return c.get(); } const user_location_info_nr_s& user_location_info_nr() const { - assert_choice_type("userLocationInformationNR", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_nr, type_, "UserLocationInformation"); return c.get(); } const user_location_info_n3_iwf_s& user_location_info_n3_iwf() const { - assert_choice_type("userLocationInformationN3IWF", type_.to_string(), "UserLocationInformation"); + assert_choice_type(types::user_location_info_n3_iwf, type_, "UserLocationInformation"); return c.get(); } const protocol_ie_single_container_s& choice_exts() const { - assert_choice_type("choice-Extensions", type_.to_string(), "UserLocationInformation"); - return c.get >(); - } - user_location_info_eutra_s& set_user_location_info_eutra() - { - set(types::user_location_info_eutra); - return c.get(); - } - user_location_info_nr_s& set_user_location_info_nr() - { - set(types::user_location_info_nr); - return c.get(); - } - user_location_info_n3_iwf_s& set_user_location_info_n3_iwf() - { - set(types::user_location_info_n3_iwf); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); + assert_choice_type(types::choice_exts, type_, "UserLocationInformation"); return c.get >(); } + user_location_info_eutra_s& set_user_location_info_eutra(); + user_location_info_nr_s& set_user_location_info_nr(); + user_location_info_n3_iwf_s& set_user_location_info_n3_iwf(); + protocol_ie_single_container_s& set_choice_exts(); private: types type_; @@ -5833,7 +5574,7 @@ struct ho_notify_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, user_location_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5905,7 +5646,7 @@ struct ho_prep_fail_ies_o { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5974,154 +5715,113 @@ struct ho_prep_fail_s { void to_json(json_writer& j) const; }; -// NonDynamic5QIDescriptor-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o non_dynamic5_qi_descriptor_ext_ies_o; - -typedef protocol_ext_container_empty_l non_dynamic5_qi_descriptor_ext_ies_container; +// HandoverPreparationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ho_prep_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; -// NonDynamic5QIDescriptor ::= SEQUENCE -struct non_dynamic5_qi_descriptor_s { - bool ext = false; - bool prio_level_qos_present = false; - bool averaging_win_present = false; - bool maximum_data_burst_volume_present = false; - bool ie_exts_present = false; - uint16_t five_qi = 0; - uint8_t prio_level_qos = 1; - uint16_t averaging_win = 0; - uint16_t maximum_data_burst_volume = 0; - non_dynamic5_qi_descriptor_ext_ies_container ie_exts; - // ... +using ho_prep_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; - // sequence methods +// HandoverPreparationUnsuccessfulTransfer ::= SEQUENCE +struct ho_prep_unsuccessful_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + ho_prep_unsuccessful_transfer_ext_ies_container ie_exts; + // ... + + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// QosCharacteristics-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o qos_characteristics_ext_ies_o; +// PDUSessionResourceSetupItemHOReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_item_ho_req_ext_ies_o = ngap_protocol_ext_empty_o; -// AdditionalQosFlowInformation ::= ENUMERATED -struct add_qos_flow_info_opts { - enum options { more_likely, /*...*/ nulltype } value; +// EventType ::= ENUMERATED +struct event_type_opts { + enum options { + direct, + change_of_serve_cell, + ue_presence_in_area_of_interest, + stop_change_of_serve_cell, + stop_ue_presence_in_area_of_interest, + cancel_location_report_for_the_ue, + // ... + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; -typedef enumerated add_qos_flow_info_e; +typedef enumerated event_type_e; -// QosCharacteristics ::= CHOICE -struct qos_characteristics_c { - struct types_opts { - enum options { non_dynamic5_qi, dynamic5_qi, choice_exts, nulltype } value; +// LocationReportingRequestType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using location_report_request_type_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; - }; - typedef enumerated types; +using pdu_session_res_setup_item_ho_req_ext_ies_container = protocol_ext_container_empty_l; - // choice methods - qos_characteristics_c() = default; - qos_characteristics_c(const qos_characteristics_c& other); - qos_characteristics_c& operator=(const qos_characteristics_c& other); - ~qos_characteristics_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } +// PDUSessionResourceSetupItemHOReq ::= SEQUENCE +struct pdu_session_res_setup_item_ho_req_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + s_nssai_s s_nssai; + unbounded_octstring ho_request_transfer; + pdu_session_res_setup_item_ho_req_ext_ies_container ie_exts; + // ... + + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - // getters - non_dynamic5_qi_descriptor_s& non_dynamic5_qi() - { - assert_choice_type("nonDynamic5QI", type_.to_string(), "QosCharacteristics"); - return c.get(); - } - dynamic5_qi_descriptor_s& dynamic5_qi() - { - assert_choice_type("dynamic5QI", type_.to_string(), "QosCharacteristics"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "QosCharacteristics"); - return c.get >(); - } - const non_dynamic5_qi_descriptor_s& non_dynamic5_qi() const - { - assert_choice_type("nonDynamic5QI", type_.to_string(), "QosCharacteristics"); - return c.get(); - } - const dynamic5_qi_descriptor_s& dynamic5_qi() const - { - assert_choice_type("dynamic5QI", type_.to_string(), "QosCharacteristics"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "QosCharacteristics"); - return c.get >(); - } - non_dynamic5_qi_descriptor_s& set_non_dynamic5_qi() - { - set(types::non_dynamic5_qi); - return c.get(); - } - dynamic5_qi_descriptor_s& set_dynamic5_qi() - { - set(types::dynamic5_qi); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } +}; -private: - types type_; - choice_buffer_t > - c; +// ReportArea ::= ENUMERATED +struct report_area_opts { + enum options { cell, /*...*/ nulltype } value; - void destroy_(); + const char* to_string() const; }; +typedef enumerated report_area_e; -// QosFlowLevelQosParameters-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_level_qos_params_ext_ies_o; - -// ReflectiveQosAttribute ::= ENUMERATED -struct reflective_qos_attribute_opts { - enum options { subject_to, /*...*/ nulltype } value; +// SecurityContext-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using security_context_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; -}; -typedef enumerated reflective_qos_attribute_e; +// TraceActivation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using trace_activation_ext_ies_o = ngap_protocol_ext_empty_o; -// MaximumIntegrityProtectedDataRate ::= ENUMERATED -struct maximum_integrity_protected_data_rate_opts { - enum options { bitrate64kbs, maximum_ue_rate, /*...*/ nulltype } value; - typedef uint8_t number_type; +// TraceDepth ::= ENUMERATED +struct trace_depth_opts { + enum options { + minimum, + medium, + maximum, + minimum_without_vendor_specific_ext, + medium_without_vendor_specific_ext, + maximum_without_vendor_specific_ext, + // ... + nulltype + } value; - std::string to_string() const; - uint8_t to_number() const; + const char* to_string() const; }; -typedef enumerated maximum_integrity_protected_data_rate_e; +typedef enumerated trace_depth_e; + +// UESecurityCapabilities-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ue_security_cap_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l qos_flow_level_qos_params_ext_ies_container; +using location_report_request_type_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowLevelQosParameters ::= SEQUENCE -struct qos_flow_level_qos_params_s { - bool ext = false; - bool gbr_qos_info_present = false; - bool reflective_qos_attribute_present = false; - bool add_qos_flow_info_present = false; - bool ie_exts_present = false; - qos_characteristics_c qos_characteristics; - alloc_and_retention_prio_s alloc_and_retention_prio; - gbr_qos_info_s gbr_qos_info; - reflective_qos_attribute_e reflective_qos_attribute; - add_qos_flow_info_e add_qos_flow_info; - qos_flow_level_qos_params_ext_ies_container ie_exts; +// LocationReportingRequestType ::= SEQUENCE +struct location_report_request_type_s { + bool ext = false; + bool area_of_interest_list_present = false; + bool location_report_ref_id_to_be_cancelled_present = false; + bool ie_exts_present = false; + event_type_e event_type; + report_area_e report_area; + area_of_interest_list_l area_of_interest_list; + uint8_t location_report_ref_id_to_be_cancelled = 1; + location_report_request_type_ext_ies_container ie_exts; // ... // sequence methods @@ -6130,42 +5830,47 @@ struct qos_flow_level_qos_params_s { void to_json(json_writer& j) const; }; -// QosFlowSetupRequestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_setup_request_item_ext_ies_o; +// NewSecurityContextInd ::= ENUMERATED +struct new_security_context_ind_opts { + enum options { true_value, /*...*/ nulltype } value; -// UPTransportLayerInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o up_transport_layer_info_item_ext_ies_o; + const char* to_string() const; +}; +typedef enumerated new_security_context_ind_e; -// ConfidentialityProtectionIndication ::= ENUMERATED -struct confidentiality_protection_ind_opts { - enum options { required, preferred, not_needed, /*...*/ nulltype } value; +// PDUSessionResourceSetupListHOReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemHOReq +using pdu_session_res_setup_list_ho_req_l = dyn_array; + +// RRCInactiveTransitionReportRequest ::= ENUMERATED +struct rrc_inactive_transition_report_request_opts { + enum options { + subsequent_state_transition_report, + single_rrc_connected_state_report, + cancel_report, + /*...*/ nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; -typedef enumerated confidentiality_protection_ind_e; +typedef enumerated rrc_inactive_transition_report_request_e; -// IntegrityProtectionIndication ::= ENUMERATED -struct integrity_protection_ind_opts { - enum options { required, preferred, not_needed, /*...*/ nulltype } value; +// RedirectionVoiceFallback ::= ENUMERATED +struct redirection_voice_fallback_opts { + enum options { possible, not_possible, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; -typedef enumerated integrity_protection_ind_e; - -// PDUSessionAggregateMaximumBitRate-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_aggregate_maximum_bit_rate_ext_ies_o; +typedef enumerated redirection_voice_fallback_e; -typedef protocol_ext_container_empty_l qos_flow_setup_request_item_ext_ies_container; +using security_context_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowSetupRequestItem ::= SEQUENCE -struct qos_flow_setup_request_item_s { - bool ext = false; - bool erab_id_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_level_qos_params_s qos_flow_level_qos_params; - uint8_t erab_id = 0; - qos_flow_setup_request_item_ext_ies_container ie_exts; +// SecurityContext ::= SEQUENCE +struct security_context_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t next_hop_chaining_count = 0; + fixed_bitstring<256, false, true> next_hop_nh; + security_context_ext_ies_container ie_exts; // ... // sequence methods @@ -6174,46 +5879,17 @@ struct qos_flow_setup_request_item_s { void to_json(json_writer& j) const; }; -// SecurityIndication-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct security_ind_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { maximum_integrity_protected_data_rate_dl, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - types type() const { return types::maximum_integrity_protected_data_rate_dl; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - maximum_integrity_protected_data_rate_e& maximum_integrity_protected_data_rate_dl() { return c; } - const maximum_integrity_protected_data_rate_e& maximum_integrity_protected_data_rate_dl() const { return c; } - - private: - maximum_integrity_protected_data_rate_e c; - }; - - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; - -typedef protocol_ext_container_empty_l up_transport_layer_info_item_ext_ies_container; +using trace_activation_ext_ies_container = protocol_ext_container_empty_l; -// UPTransportLayerInformationItem ::= SEQUENCE -struct up_transport_layer_info_item_s { - bool ext = false; - bool ie_exts_present = false; - up_transport_layer_info_c ngu_up_tnl_info; - up_transport_layer_info_item_ext_ies_container ie_exts; +// TraceActivation ::= SEQUENCE +struct trace_activation_s { + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<8, true> ngran_trace_id; + fixed_bitstring<8, false, true> interfaces_to_trace; + trace_depth_e trace_depth; + bounded_bitstring<1, 160, true, true> trace_collection_entity_ip_address; + trace_activation_ext_ies_container ie_exts; // ... // sequence methods @@ -6222,51 +5898,17 @@ struct up_transport_layer_info_item_s { void to_json(json_writer& j) const; }; -// DataForwardingNotPossible ::= ENUMERATED -struct data_forwarding_not_possible_opts { - enum options { data_forwarding_not_possible, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated data_forwarding_not_possible_e; +using ue_security_cap_ext_ies_container = protocol_ext_container_empty_l; -typedef protocol_ext_container_empty_l pdu_session_aggregate_maximum_bit_rate_ext_ies_container; - -// PDUSessionAggregateMaximumBitRate ::= SEQUENCE -struct pdu_session_aggregate_maximum_bit_rate_s { - bool ext = false; - bool ie_exts_present = false; - uint64_t pdu_session_aggregate_maximum_bit_rate_dl = 0; - uint64_t pdu_session_aggregate_maximum_bit_rate_ul = 0; - pdu_session_aggregate_maximum_bit_rate_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionType ::= ENUMERATED -struct pdu_session_type_opts { - enum options { ipv4, ipv6, ipv4v6, ethernet, unstructured, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated pdu_session_type_e; - -// QosFlowSetupRequestList ::= SEQUENCE (SIZE (1..64)) OF QosFlowSetupRequestItem -using qos_flow_setup_request_list_l = dyn_array; - -// SecurityIndication ::= SEQUENCE -struct security_ind_s { - bool ext = false; - bool maximum_integrity_protected_data_rate_ul_present = false; - bool ie_exts_present = false; - integrity_protection_ind_e integrity_protection_ind; - confidentiality_protection_ind_e confidentiality_protection_ind; - maximum_integrity_protected_data_rate_e maximum_integrity_protected_data_rate_ul; - protocol_ext_container_l ie_exts; +// UESecurityCapabilities ::= SEQUENCE +struct ue_security_cap_s { + bool ext = false; + bool ie_exts_present = false; + fixed_bitstring<16, true, true> nrencryption_algorithms; + fixed_bitstring<16, true, true> nrintegrity_protection_algorithms; + fixed_bitstring<16, true, true> eutr_aencryption_algorithms; + fixed_bitstring<16, true, true> eutr_aintegrity_protection_algorithms; + ue_security_cap_ext_ies_container ie_exts; // ... // sequence methods @@ -6275,28 +5917,36 @@ struct security_ind_s { void to_json(json_writer& j) const; }; -// UPTransportLayerInformationList ::= SEQUENCE (SIZE (1..3)) OF UPTransportLayerInformationItem -using up_transport_layer_info_list_l = dyn_array; - -// PDUSessionResourceSetupRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_setup_request_transfer_ies_o { +// HandoverRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ho_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { - pdu_session_aggregate_maximum_bit_rate, - ul_ngu_up_tnl_info, - add_ul_ngu_up_tnl_info, - data_forwarding_not_possible, - pdu_session_type, - security_ind, - network_instance, - qos_flow_setup_request_list, + amf_ue_ngap_id, + handov_type, + cause, + ue_aggregate_maximum_bit_rate, + core_network_assist_info, + ue_security_cap, + security_context, + new_security_context_ind, + nasc, + pdu_session_res_setup_list_ho_req, + allowed_nssai, + trace_activation, + masked_imeisv, + source_to_target_transparent_container, + mob_restrict_list, + location_report_request_type, + rrc_inactive_transition_report_request, + guami, + redirection_voice_fallback, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -6312,30 +5962,60 @@ struct pdu_session_res_setup_request_transfer_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate(); - up_transport_layer_info_c& ul_ngu_up_tnl_info(); - up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info(); - data_forwarding_not_possible_e& data_forwarding_not_possible(); - pdu_session_type_e& pdu_session_type(); - security_ind_s& security_ind(); - uint16_t& network_instance(); - qos_flow_setup_request_list_l& qos_flow_setup_request_list(); - const pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() const; - const up_transport_layer_info_c& ul_ngu_up_tnl_info() const; - const up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() const; - const data_forwarding_not_possible_e& data_forwarding_not_possible() const; - const pdu_session_type_e& pdu_session_type() const; - const security_ind_s& security_ind() const; - const uint16_t& network_instance() const; - const qos_flow_setup_request_list_l& qos_flow_setup_request_list() const; + uint64_t& amf_ue_ngap_id(); + handov_type_e& handov_type(); + cause_c& cause(); + ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); + core_network_assist_info_s& core_network_assist_info(); + ue_security_cap_s& ue_security_cap(); + security_context_s& security_context(); + new_security_context_ind_e& new_security_context_ind(); + unbounded_octstring& nasc(); + pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req(); + allowed_nssai_l& allowed_nssai(); + trace_activation_s& trace_activation(); + fixed_bitstring<64, false, true>& masked_imeisv(); + unbounded_octstring& source_to_target_transparent_container(); + mob_restrict_list_s& mob_restrict_list(); + location_report_request_type_s& location_report_request_type(); + rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); + guami_s& guami(); + redirection_voice_fallback_e& redirection_voice_fallback(); + const uint64_t& amf_ue_ngap_id() const; + const handov_type_e& handov_type() const; + const cause_c& cause() const; + const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; + const core_network_assist_info_s& core_network_assist_info() const; + const ue_security_cap_s& ue_security_cap() const; + const security_context_s& security_context() const; + const new_security_context_ind_e& new_security_context_ind() const; + const unbounded_octstring& nasc() const; + const pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req() const; + const allowed_nssai_l& allowed_nssai() const; + const trace_activation_s& trace_activation() const; + const fixed_bitstring<64, false, true>& masked_imeisv() const; + const unbounded_octstring& source_to_target_transparent_container() const; + const mob_restrict_list_s& mob_restrict_list() const; + const location_report_request_type_s& location_report_request_type() const; + const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; + const guami_s& guami() const; + const redirection_voice_fallback_e& redirection_voice_fallback() const; private: types type_; - choice_buffer_t + choice_buffer_t, + guami_s, + location_report_request_type_s, + mob_restrict_list_s, + pdu_session_res_setup_list_ho_req_l, + security_context_s, + trace_activation_s, + ue_aggregate_maximum_bit_rate_s, + ue_security_cap_s, + unbounded_octstring > c; void destroy_(); @@ -6349,39 +6029,51 @@ struct pdu_session_res_setup_request_transfer_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceSetupItemHOReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_ho_req_ext_ies_o; - -struct pdu_session_res_setup_request_transfer_ies_container { +struct ho_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_aggregate_maximum_bit_rate_present = false; - bool add_ul_ngu_up_tnl_info_present = false; - bool data_forwarding_not_possible_present = false; - bool security_ind_present = false; - bool network_instance_present = false; - ie_field_s pdu_session_aggregate_maximum_bit_rate; - ie_field_s ul_ngu_up_tnl_info; - ie_field_s > add_ul_ngu_up_tnl_info; - ie_field_s data_forwarding_not_possible; - ie_field_s pdu_session_type; - ie_field_s security_ind; - ie_field_s > network_instance; - ie_field_s > qos_flow_setup_request_list; + bool core_network_assist_info_present = false; + bool new_security_context_ind_present = false; + bool nasc_present = false; + bool trace_activation_present = false; + bool masked_imeisv_present = false; + bool mob_restrict_list_present = false; + bool location_report_request_type_present = false; + bool rrc_inactive_transition_report_request_present = false; + bool redirection_voice_fallback_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s handov_type; + ie_field_s cause; + ie_field_s ue_aggregate_maximum_bit_rate; + ie_field_s core_network_assist_info; + ie_field_s ue_security_cap; + ie_field_s security_context; + ie_field_s new_security_context_ind; + ie_field_s > nasc; + ie_field_s > pdu_session_res_setup_list_ho_req; + ie_field_s > allowed_nssai; + ie_field_s trace_activation; + ie_field_s > masked_imeisv; + ie_field_s > source_to_target_transparent_container; + ie_field_s mob_restrict_list; + ie_field_s location_report_request_type; + ie_field_s rrc_inactive_transition_report_request; + ie_field_s guami; + ie_field_s redirection_voice_fallback; // sequence methods - pdu_session_res_setup_request_transfer_ies_container(); + ho_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE -struct pdu_session_res_setup_request_transfer_s { - bool ext = false; - pdu_session_res_setup_request_transfer_ies_container protocol_ies; +// HandoverRequest ::= SEQUENCE +struct ho_request_s { + bool ext = false; + ho_request_ies_container protocol_ies; // ... // sequence methods @@ -6390,36 +6082,21 @@ struct pdu_session_res_setup_request_transfer_s { void to_json(json_writer& j) const; }; -// EventType ::= ENUMERATED -struct event_type_opts { - enum options { - direct, - change_of_serve_cell, - ue_presence_in_area_of_interest, - stop_change_of_serve_cell, - stop_ue_presence_in_area_of_interest, - cancel_location_report_for_the_ue, - // ... - nulltype - } value; - - std::string to_string() const; -}; -typedef enumerated event_type_e; +// PDUSessionResourceAdmittedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_admitted_item_ext_ies_o = ngap_protocol_ext_empty_o; -// LocationReportingRequestType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o location_report_request_type_ext_ies_o; +// PDUSessionResourceFailedToSetupItemHOAck-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l pdu_session_res_setup_item_ho_req_ext_ies_container; +using pdu_session_res_admitted_item_ext_ies_container = protocol_ext_container_empty_l; -// PDUSessionResourceSetupItemHOReq ::= SEQUENCE -struct pdu_session_res_setup_item_ho_req_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - s_nssai_s s_nssai; - unbounded_octstring ho_request_transfer; - pdu_session_res_setup_item_ho_req_ext_ies_container ie_exts; +// PDUSessionResourceAdmittedItem ::= SEQUENCE +struct pdu_session_res_admitted_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring ho_request_ack_transfer; + pdu_session_res_admitted_item_ext_ies_container ie_exts; // ... // sequence methods @@ -6428,53 +6105,117 @@ struct pdu_session_res_setup_item_ho_req_s { void to_json(json_writer& j) const; }; -// ReportArea ::= ENUMERATED -struct report_area_opts { - enum options { cell, /*...*/ nulltype } value; +using pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceFailedToSetupItemHOAck ::= SEQUENCE +struct pdu_session_res_failed_to_setup_item_ho_ack_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring ho_res_alloc_unsuccessful_transfer; + pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_container ie_exts; + // ... - std::string to_string() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -typedef enumerated report_area_e; -// SecurityContext-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o security_context_ext_ies_o; +// PDUSessionResourceAdmittedList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceAdmittedItem +using pdu_session_res_admitted_list_l = dyn_array; -// TraceActivation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o trace_activation_ext_ies_o; +// PDUSessionResourceFailedToSetupListHOAck ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemHOAck +using pdu_session_res_failed_to_setup_list_ho_ack_l = dyn_array; -// TraceDepth ::= ENUMERATED -struct trace_depth_opts { - enum options { - minimum, - medium, - maximum, - minimum_without_vendor_specific_ext, - medium_without_vendor_specific_ext, - maximum_without_vendor_specific_ext, - // ... - nulltype - } value; +// HandoverRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ho_request_ack_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_admitted_list, + pdu_session_res_failed_to_setup_list_ho_ack, + target_to_source_transparent_container, + crit_diagnostics, + nulltype + } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_admitted_list_l& pdu_session_res_admitted_list(); + pdu_session_res_failed_to_setup_list_ho_ack_l& pdu_session_res_failed_to_setup_list_ho_ack(); + unbounded_octstring& target_to_source_transparent_container(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_admitted_list_l& pdu_session_res_admitted_list() const; + const pdu_session_res_failed_to_setup_list_ho_ack_l& pdu_session_res_failed_to_setup_list_ho_ack() const; + const unbounded_octstring& target_to_source_transparent_container() const; + const crit_diagnostics_s& crit_diagnostics() const; + + private: + types type_; + choice_buffer_t > + c; - std::string to_string() const; + void destroy_(); + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef enumerated trace_depth_e; -// UESecurityCapabilities-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_security_cap_ext_ies_o; +struct ho_request_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; -typedef protocol_ext_container_empty_l location_report_request_type_ext_ies_container; + // member variables + bool pdu_session_res_failed_to_setup_list_ho_ack_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_admitted_list; + ie_field_s > + pdu_session_res_failed_to_setup_list_ho_ack; + ie_field_s > target_to_source_transparent_container; + ie_field_s crit_diagnostics; -// LocationReportingRequestType ::= SEQUENCE -struct location_report_request_type_s { - bool ext = false; - bool area_of_interest_list_present = false; - bool location_report_ref_id_to_be_cancelled_present = false; - bool ie_exts_present = false; - event_type_e event_type; - report_area_e report_area; - area_of_interest_list_l area_of_interest_list; - uint8_t location_report_ref_id_to_be_cancelled = 1; - location_report_request_type_ext_ies_container ie_exts; + // sequence methods + ho_request_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverRequestAcknowledge ::= SEQUENCE +struct ho_request_ack_s { + bool ext = false; + ho_request_ack_ies_container protocol_ies; // ... // sequence methods @@ -6483,47 +6224,89 @@ struct location_report_request_type_s { void to_json(json_writer& j) const; }; -// NewSecurityContextInd ::= ENUMERATED -struct new_security_context_ind_opts { - enum options { true_value, /*...*/ nulltype } value; +// QosFlowWithCauseItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_with_cause_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// ConfidentialityProtectionResult ::= ENUMERATED +struct confidentiality_protection_result_opts { + enum options { performed, not_performed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; -typedef enumerated new_security_context_ind_e; +typedef enumerated confidentiality_protection_result_e; -// PDUSessionResourceSetupListHOReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemHOReq -using pdu_session_res_setup_list_ho_req_l = dyn_array; +// IntegrityProtectionResult ::= ENUMERATED +struct integrity_protection_result_opts { + enum options { performed, not_performed, /*...*/ nulltype } value; -// RRCInactiveTransitionReportRequest ::= ENUMERATED -struct rrc_inactive_transition_report_request_opts { - enum options { - subsequent_state_transition_report, - single_rrc_connected_state_report, - cancel_report, - /*...*/ nulltype - } value; + const char* to_string() const; +}; +typedef enumerated integrity_protection_result_e; + +using qos_flow_with_cause_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowWithCauseItem ::= SEQUENCE +struct qos_flow_with_cause_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + cause_c cause; + qos_flow_with_cause_item_ext_ies_container ie_exts; + // ... - std::string to_string() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -typedef enumerated rrc_inactive_transition_report_request_e; -// RedirectionVoiceFallback ::= ENUMERATED -struct redirection_voice_fallback_opts { - enum options { possible, not_possible, /*...*/ nulltype } value; +// SecurityResult-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using security_result_ext_ies_o = ngap_protocol_ext_empty_o; + +// HandoverRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct ho_request_ack_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { add_dluptnl_info_for_ho_list, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + types type() const { return types::add_dluptnl_info_for_ho_list; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + add_dluptnl_info_for_ho_list_l& add_dluptnl_info_for_ho_list() { return c; } + const add_dluptnl_info_for_ho_list_l& add_dluptnl_info_for_ho_list() const { return c; } + + private: + add_dluptnl_info_for_ho_list_l c; + }; - std::string to_string() const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef enumerated redirection_voice_fallback_e; -typedef protocol_ext_container_empty_l security_context_ext_ies_container; +// QosFlowListWithCause ::= SEQUENCE (SIZE (1..64)) OF QosFlowWithCauseItem +using qos_flow_list_with_cause_l = dyn_array; -// SecurityContext ::= SEQUENCE -struct security_context_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t next_hop_chaining_count = 0; - fixed_bitstring<256, false, true> next_hop_nh; - security_context_ext_ies_container ie_exts; +using security_result_ext_ies_container = protocol_ext_container_empty_l; + +// SecurityResult ::= SEQUENCE +struct security_result_s { + bool ext = false; + bool ie_exts_present = false; + integrity_protection_result_e integrity_protection_result; + confidentiality_protection_result_e confidentiality_protection_result; + security_result_ext_ies_container ie_exts; // ... // sequence methods @@ -6532,17 +6315,21 @@ struct security_context_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l trace_activation_ext_ies_container; - -// TraceActivation ::= SEQUENCE -struct trace_activation_s { - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<8, true> ngran_trace_id; - fixed_bitstring<8, false, true> interfaces_to_trace; - trace_depth_e trace_depth; - bounded_bitstring<1, 160, true, true> trace_collection_entity_ip_address; - trace_activation_ext_ies_container ie_exts; +// HandoverRequestAcknowledgeTransfer ::= SEQUENCE +struct ho_request_ack_transfer_s { + bool ext = false; + bool dlforwarding_up_tnl_info_present = false; + bool security_result_present = false; + bool qos_flow_failed_to_setup_list_present = false; + bool data_forwarding_resp_drb_list_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c dl_ngu_up_tnl_info; + up_transport_layer_info_c dlforwarding_up_tnl_info; + security_result_s security_result; + qos_flow_list_with_data_forwarding_l qos_flow_setup_resp_list; + qos_flow_list_with_cause_l qos_flow_failed_to_setup_list; + data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list; + protocol_ext_container_l ie_exts; // ... // sequence methods @@ -6551,17 +6338,21 @@ struct trace_activation_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l ue_security_cap_ext_ies_container; +// PDUSessionResourceItemHORqd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_item_ho_rqd_ext_ies_o = ngap_protocol_ext_empty_o; -// UESecurityCapabilities ::= SEQUENCE -struct ue_security_cap_s { - bool ext = false; - bool ie_exts_present = false; - fixed_bitstring<16, true, true> nrencryption_algorithms; - fixed_bitstring<16, true, true> nrintegrity_protection_algorithms; - fixed_bitstring<16, true, true> eutr_aencryption_algorithms; - fixed_bitstring<16, true, true> eutr_aintegrity_protection_algorithms; - ue_security_cap_ext_ies_container ie_exts; +// TargeteNB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using targetenb_id_ext_ies_o = ngap_protocol_ext_empty_o; + +using pdu_session_res_item_ho_rqd_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceItemHORqd ::= SEQUENCE +struct pdu_session_res_item_ho_rqd_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring ho_required_transfer; + pdu_session_res_item_ho_rqd_ext_ies_container ie_exts; // ... // sequence methods @@ -6570,37 +6361,116 @@ struct ue_security_cap_s { void to_json(json_writer& j) const; }; -// HandoverRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ho_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { - amf_ue_ngap_id, - handov_type, - cause, - ue_aggregate_maximum_bit_rate, - core_network_assist_info, - ue_security_cap, - security_context, - new_security_context_ind, - nasc, - pdu_session_res_setup_list_ho_req, - allowed_nssai, - trace_activation, - masked_imeisv, +// TargetID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using target_id_ext_ies_o = ngap_protocol_ies_empty_o; + +using targetenb_id_ext_ies_container = protocol_ext_container_empty_l; + +// TargeteNB-ID ::= SEQUENCE +struct targetenb_id_s { + bool ext = false; + bool ie_exts_present = false; + global_ng_enb_id_s global_enb_id; + eps_tai_s sel_eps_tai; + targetenb_id_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// DirectForwardingPathAvailability ::= ENUMERATED +struct direct_forwarding_path_availability_opts { + enum options { direct_path_available, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated direct_forwarding_path_availability_e; + +// PDUSessionResourceListHORqd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemHORqd +using pdu_session_res_list_ho_rqd_l = dyn_array; + +// TargetID ::= CHOICE +struct target_id_c { + struct types_opts { + enum options { target_ran_node_id, targetenb_id, choice_exts, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + target_id_c() = default; + target_id_c(const target_id_c& other); + target_id_c& operator=(const target_id_c& other); + ~target_id_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + target_ran_node_id_s& target_ran_node_id() + { + assert_choice_type(types::target_ran_node_id, type_, "TargetID"); + return c.get(); + } + targetenb_id_s& targetenb_id() + { + assert_choice_type(types::targetenb_id, type_, "TargetID"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "TargetID"); + return c.get >(); + } + const target_ran_node_id_s& target_ran_node_id() const + { + assert_choice_type(types::target_ran_node_id, type_, "TargetID"); + return c.get(); + } + const targetenb_id_s& targetenb_id() const + { + assert_choice_type(types::targetenb_id, type_, "TargetID"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "TargetID"); + return c.get >(); + } + target_ran_node_id_s& set_target_ran_node_id(); + targetenb_id_s& set_targetenb_id(); + protocol_ie_single_container_s& set_choice_exts(); + +private: + types type_; + choice_buffer_t, target_ran_node_id_s, targetenb_id_s> c; + + void destroy_(); +}; + +// HandoverRequiredIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ho_required_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + handov_type, + cause, + target_id, + direct_forwarding_path_availability, + pdu_session_res_list_ho_rqd, source_to_target_transparent_container, - mob_restrict_list, - location_report_request_type, - rrc_inactive_transition_report_request, - guami, - redirection_voice_fallback, nulltype } value; - typedef uint8_t number_type; - std::string to_string() const; - uint8_t to_number() const; + const char* to_string() const; }; typedef enumerated types; @@ -6615,61 +6485,26 @@ struct ho_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - handov_type_e& handov_type(); - cause_c& cause(); - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); - core_network_assist_info_s& core_network_assist_info(); - ue_security_cap_s& ue_security_cap(); - security_context_s& security_context(); - new_security_context_ind_e& new_security_context_ind(); - unbounded_octstring& nasc(); - pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req(); - allowed_nssai_l& allowed_nssai(); - trace_activation_s& trace_activation(); - fixed_bitstring<64, false, true>& masked_imeisv(); - unbounded_octstring& source_to_target_transparent_container(); - mob_restrict_list_s& mob_restrict_list(); - location_report_request_type_s& location_report_request_type(); - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); - guami_s& guami(); - redirection_voice_fallback_e& redirection_voice_fallback(); - const uint64_t& amf_ue_ngap_id() const; - const handov_type_e& handov_type() const; - const cause_c& cause() const; - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; - const core_network_assist_info_s& core_network_assist_info() const; - const ue_security_cap_s& ue_security_cap() const; - const security_context_s& security_context() const; - const new_security_context_ind_e& new_security_context_ind() const; - const unbounded_octstring& nasc() const; - const pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req() const; - const allowed_nssai_l& allowed_nssai() const; - const trace_activation_s& trace_activation() const; - const fixed_bitstring<64, false, true>& masked_imeisv() const; - const unbounded_octstring& source_to_target_transparent_container() const; - const mob_restrict_list_s& mob_restrict_list() const; - const location_report_request_type_s& location_report_request_type() const; - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; - const guami_s& guami() const; - const redirection_voice_fallback_e& redirection_voice_fallback() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + handov_type_e& handov_type(); + cause_c& cause(); + target_id_c& target_id(); + direct_forwarding_path_availability_e& direct_forwarding_path_availability(); + pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd(); + unbounded_octstring& source_to_target_transparent_container(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const handov_type_e& handov_type() const; + const cause_c& cause() const; + const target_id_c& target_id() const; + const direct_forwarding_path_availability_e& direct_forwarding_path_availability() const; + const pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd() const; + const unbounded_octstring& source_to_target_transparent_container() const; private: - types type_; - choice_buffer_t, - guami_s, - location_report_request_type_s, - mob_restrict_list_s, - pdu_session_res_setup_list_ho_req_l, - security_context_s, - trace_activation_s, - ue_aggregate_maximum_bit_rate_s, - ue_security_cap_s, - unbounded_octstring > - c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -6682,51 +6517,32 @@ struct ho_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -struct ho_request_ies_container { +struct ho_required_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool core_network_assist_info_present = false; - bool new_security_context_ind_present = false; - bool nasc_present = false; - bool trace_activation_present = false; - bool masked_imeisv_present = false; - bool mob_restrict_list_present = false; - bool location_report_request_type_present = false; - bool rrc_inactive_transition_report_request_present = false; - bool redirection_voice_fallback_present = false; + bool direct_forwarding_path_availability_present = false; ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; ie_field_s handov_type; ie_field_s cause; - ie_field_s ue_aggregate_maximum_bit_rate; - ie_field_s core_network_assist_info; - ie_field_s ue_security_cap; - ie_field_s security_context; - ie_field_s new_security_context_ind; - ie_field_s > nasc; - ie_field_s > pdu_session_res_setup_list_ho_req; - ie_field_s > allowed_nssai; - ie_field_s trace_activation; - ie_field_s > masked_imeisv; - ie_field_s > source_to_target_transparent_container; - ie_field_s mob_restrict_list; - ie_field_s location_report_request_type; - ie_field_s rrc_inactive_transition_report_request; - ie_field_s guami; - ie_field_s redirection_voice_fallback; + ie_field_s target_id; + ie_field_s direct_forwarding_path_availability; + ie_field_s > pdu_session_res_list_ho_rqd; + ie_field_s > source_to_target_transparent_container; // sequence methods - ho_request_ies_container(); + ho_required_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// HandoverRequest ::= SEQUENCE -struct ho_request_s { - bool ext = false; - ho_request_ies_container protocol_ies; +// HandoverRequired ::= SEQUENCE +struct ho_required_s { + bool ext = false; + ho_required_ies_container protocol_ies; // ... // sequence methods @@ -6735,34 +6551,18 @@ struct ho_request_s { void to_json(json_writer& j) const; }; -// QosFlowWithCauseItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_with_cause_item_ext_ies_o; - -// ConfidentialityProtectionResult ::= ENUMERATED -struct confidentiality_protection_result_opts { - enum options { performed, not_performed, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated confidentiality_protection_result_e; - -// IntegrityProtectionResult ::= ENUMERATED -struct integrity_protection_result_opts { - enum options { performed, not_performed, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated integrity_protection_result_e; +// HandoverRequiredTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ho_required_transfer_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l qos_flow_with_cause_item_ext_ies_container; +using ho_required_transfer_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowWithCauseItem ::= SEQUENCE -struct qos_flow_with_cause_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - cause_c cause; - qos_flow_with_cause_item_ext_ies_container ie_exts; +// HandoverRequiredTransfer ::= SEQUENCE +struct ho_required_transfer_s { + bool ext = false; + bool direct_forwarding_path_availability_present = false; + bool ie_exts_present = false; + direct_forwarding_path_availability_e direct_forwarding_path_availability; + ho_required_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -6771,56 +6571,19 @@ struct qos_flow_with_cause_item_s { void to_json(json_writer& j) const; }; -// SecurityResult-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o security_result_ext_ies_o; +// HandoverResourceAllocationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ho_res_alloc_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; -// HandoverRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct ho_request_ack_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { add_dluptnl_info_for_ho_list, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - types type() const { return types::add_dluptnl_info_for_ho_list; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - add_dluptnl_info_for_ho_list_l& add_dluptnl_info_for_ho_list() { return c; } - const add_dluptnl_info_for_ho_list_l& add_dluptnl_info_for_ho_list() const { return c; } - - private: - add_dluptnl_info_for_ho_list_l c; - }; - - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; - -// HandoverResourceAllocationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ho_res_alloc_unsuccessful_transfer_ext_ies_o; - -// QosFlowListWithCause ::= SEQUENCE (SIZE (1..64)) OF QosFlowWithCauseItem -using qos_flow_list_with_cause_l = dyn_array; - -typedef protocol_ext_container_empty_l security_result_ext_ies_container; +using ho_res_alloc_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; -// SecurityResult ::= SEQUENCE -struct security_result_s { - bool ext = false; - bool ie_exts_present = false; - integrity_protection_result_e integrity_protection_result; - confidentiality_protection_result_e confidentiality_protection_result; - security_result_ext_ies_container ie_exts; +// HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE +struct ho_res_alloc_unsuccessful_transfer_s { + bool ext = false; + bool crit_diagnostics_present = false; + bool ie_exts_present = false; + cause_c cause; + crit_diagnostics_s crit_diagnostics; + ho_res_alloc_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -6829,21 +6592,17 @@ struct security_result_s { void to_json(json_writer& j) const; }; -// HandoverRequestAcknowledgeTransfer ::= SEQUENCE -struct ho_request_ack_transfer_s { - bool ext = false; - bool dlforwarding_up_tnl_info_present = false; - bool security_result_present = false; - bool qos_flow_failed_to_setup_list_present = false; - bool data_forwarding_resp_drb_list_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c dl_ngu_up_tnl_info; - up_transport_layer_info_c dlforwarding_up_tnl_info; - security_result_s security_result; - qos_flow_list_with_data_forwarding_l qos_flow_setup_resp_list; - qos_flow_list_with_cause_l qos_flow_failed_to_setup_list; - data_forwarding_resp_drb_list_l data_forwarding_resp_drb_list; - protocol_ext_container_l ie_exts; +// RecommendedRANNodeItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using recommended_ran_node_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using recommended_ran_node_item_ext_ies_container = protocol_ext_container_empty_l; + +// RecommendedRANNodeItem ::= SEQUENCE +struct recommended_ran_node_item_s { + bool ext = false; + bool ie_exts_present = false; + amf_paging_target_c amf_paging_target; + recommended_ran_node_item_ext_ies_container ie_exts; // ... // sequence methods @@ -6852,16 +6611,23 @@ struct ho_request_ack_transfer_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l ho_res_alloc_unsuccessful_transfer_ext_ies_container; +// RecommendedRANNodeList ::= SEQUENCE (SIZE (1..16)) OF RecommendedRANNodeItem +using recommended_ran_node_list_l = dyn_array; -// HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE -struct ho_res_alloc_unsuccessful_transfer_s { - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - ho_res_alloc_unsuccessful_transfer_ext_ies_container ie_exts; +// RecommendedRANNodesForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using recommended_ran_nodes_for_paging_ext_ies_o = ngap_protocol_ext_empty_o; + +// InfoOnRecommendedCellsAndRANNodesForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_o = ngap_protocol_ext_empty_o; + +using recommended_ran_nodes_for_paging_ext_ies_container = protocol_ext_container_empty_l; + +// RecommendedRANNodesForPaging ::= SEQUENCE +struct recommended_ran_nodes_for_paging_s { + bool ext = false; + bool ie_exts_present = false; + recommended_ran_node_list_l recommended_ran_node_list; + recommended_ran_nodes_for_paging_ext_ies_container ie_exts; // ... // sequence methods @@ -6870,21 +6636,15 @@ struct ho_res_alloc_unsuccessful_transfer_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceAdmittedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_admitted_item_ext_ies_o; - -// PDUSessionResourceFailedToSetupItemHOAck-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_o; - -typedef protocol_ext_container_empty_l pdu_session_res_admitted_item_ext_ies_container; +using info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_container = protocol_ext_container_empty_l; -// PDUSessionResourceAdmittedItem ::= SEQUENCE -struct pdu_session_res_admitted_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_request_ack_transfer; - pdu_session_res_admitted_item_ext_ies_container ie_exts; +// InfoOnRecommendedCellsAndRANNodesForPaging ::= SEQUENCE +struct info_on_recommended_cells_and_ran_nodes_for_paging_s { + bool ext = false; + bool ie_exts_present = false; + recommended_cells_for_paging_s recommended_cells_for_paging; + recommended_ran_nodes_for_paging_s recommend_ran_nodes_for_paging; + info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_container ie_exts; // ... // sequence methods @@ -6893,15 +6653,18 @@ struct pdu_session_res_admitted_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_container; +// PDUSessionResourceFailedToSetupItemCxtFail-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceFailedToSetupItemHOAck ::= SEQUENCE -struct pdu_session_res_failed_to_setup_item_ho_ack_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_res_alloc_unsuccessful_transfer; - pdu_session_res_failed_to_setup_item_ho_ack_ext_ies_container ie_exts; +using pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceFailedToSetupItemCxtFail ::= SEQUENCE +struct pdu_session_res_failed_to_setup_item_cxt_fail_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; + pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_container ie_exts; // ... // sequence methods @@ -6910,28 +6673,24 @@ struct pdu_session_res_failed_to_setup_item_ho_ack_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceAdmittedList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceAdmittedItem -using pdu_session_res_admitted_list_l = dyn_array; - -// PDUSessionResourceFailedToSetupListHOAck ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemHOAck -using pdu_session_res_failed_to_setup_list_ho_ack_l = dyn_array; +// PDUSessionResourceFailedToSetupListCxtFail ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemCxtFail +using pdu_session_res_failed_to_setup_list_cxt_fail_l = dyn_array; -// HandoverRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ho_request_ack_ies_o { +// InitialContextSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct init_context_setup_fail_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, - pdu_session_res_admitted_list, - pdu_session_res_failed_to_setup_list_ho_ack, - target_to_source_transparent_container, + pdu_session_res_failed_to_setup_list_cxt_fail, + cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6946,26 +6705,20 @@ struct ho_request_ack_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_admitted_list_l& pdu_session_res_admitted_list(); - pdu_session_res_failed_to_setup_list_ho_ack_l& pdu_session_res_failed_to_setup_list_ho_ack(); - unbounded_octstring& target_to_source_transparent_container(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_admitted_list_l& pdu_session_res_admitted_list() const; - const pdu_session_res_failed_to_setup_list_ho_ack_l& pdu_session_res_failed_to_setup_list_ho_ack() const; - const unbounded_octstring& target_to_source_transparent_container() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_failed_to_setup_list_cxt_fail_l& pdu_session_res_failed_to_setup_list_cxt_fail(); + cause_c& cause(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_failed_to_setup_list_cxt_fail_l& pdu_session_res_failed_to_setup_list_cxt_fail() const; + const cause_c& cause() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t > - c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -6978,32 +6731,31 @@ struct ho_request_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -struct ho_request_ack_ies_container { +struct init_context_setup_fail_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_failed_to_setup_list_ho_ack_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_admitted_list; - ie_field_s > - pdu_session_res_failed_to_setup_list_ho_ack; - ie_field_s > target_to_source_transparent_container; - ie_field_s crit_diagnostics; + bool pdu_session_res_failed_to_setup_list_cxt_fail_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > + pdu_session_res_failed_to_setup_list_cxt_fail; + ie_field_s cause; + ie_field_s crit_diagnostics; // sequence methods - ho_request_ack_ies_container(); + init_context_setup_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// HandoverRequestAcknowledge ::= SEQUENCE -struct ho_request_ack_s { - bool ext = false; - ho_request_ack_ies_container protocol_ies; +// InitialContextSetupFailure ::= SEQUENCE +struct init_context_setup_fail_s { + bool ext = false; + init_context_setup_fail_ies_container protocol_ies; // ... // sequence methods @@ -7012,26 +6764,21 @@ struct ho_request_ack_s { void to_json(json_writer& j) const; }; -// DirectForwardingPathAvailability ::= ENUMERATED -struct direct_forwarding_path_availability_opts { - enum options { direct_path_available, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated direct_forwarding_path_availability_e; - -// HandoverRequiredTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ho_required_transfer_ext_ies_o; +// PDUSessionResourceSetupItemCxtReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_item_cxt_req_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l ho_required_transfer_ext_ies_container; +using pdu_session_res_setup_item_cxt_req_ext_ies_container = protocol_ext_container_empty_l; -// HandoverRequiredTransfer ::= SEQUENCE -struct ho_required_transfer_s { - bool ext = false; - bool direct_forwarding_path_availability_present = false; - bool ie_exts_present = false; - direct_forwarding_path_availability_e direct_forwarding_path_availability; - ho_required_transfer_ext_ies_container ie_exts; +// PDUSessionResourceSetupItemCxtReq ::= SEQUENCE +struct pdu_session_res_setup_item_cxt_req_s { + bool ext = false; + bool nas_pdu_present = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring nas_pdu; + s_nssai_s s_nssai; + unbounded_octstring pdu_session_res_setup_request_transfer; + pdu_session_res_setup_item_cxt_req_ext_ies_container ie_exts; // ... // sequence methods @@ -7040,21 +6787,23 @@ struct ho_required_transfer_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceItemHORqd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_item_ho_rqd_ext_ies_o; +// UERadioCapabilityForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ue_radio_cap_for_paging_ext_ies_o = ngap_protocol_ext_empty_o; -// TargeteNB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o targetenb_id_ext_ies_o; +// PDUSessionResourceSetupListCxtReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemCxtReq +using pdu_session_res_setup_list_cxt_req_l = dyn_array; -typedef protocol_ext_container_empty_l pdu_session_res_item_ho_rqd_ext_ies_container; +using ue_radio_cap_for_paging_ext_ies_container = protocol_ext_container_empty_l; -// PDUSessionResourceItemHORqd ::= SEQUENCE -struct pdu_session_res_item_ho_rqd_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_required_transfer; - pdu_session_res_item_ho_rqd_ext_ies_container ie_exts; +// UERadioCapabilityForPaging ::= SEQUENCE +struct ue_radio_cap_for_paging_s { + bool ext = false; + bool ueradio_cap_for_paging_of_nr_present = false; + bool ueradio_cap_for_paging_of_eutra_present = false; + bool ie_exts_present = false; + unbounded_octstring ueradio_cap_for_paging_of_nr; + unbounded_octstring ueradio_cap_for_paging_of_eutra; + ue_radio_cap_for_paging_ext_ies_container ie_exts; // ... // sequence methods @@ -7063,120 +6812,36 @@ struct pdu_session_res_item_ho_rqd_s { void to_json(json_writer& j) const; }; -// TargetID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o target_id_ext_ies_o; - -typedef protocol_ext_container_empty_l targetenb_id_ext_ies_container; - -// TargeteNB-ID ::= SEQUENCE -struct targetenb_id_s { - bool ext = false; - bool ie_exts_present = false; - global_ng_enb_id_s global_enb_id; - eps_tai_s sel_eps_tai; - targetenb_id_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceListHORqd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemHORqd -using pdu_session_res_list_ho_rqd_l = dyn_array; - -// TargetID ::= CHOICE -struct target_id_c { - struct types_opts { - enum options { target_ran_node_id, targetenb_id, choice_exts, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - target_id_c() = default; - target_id_c(const target_id_c& other); - target_id_c& operator=(const target_id_c& other); - ~target_id_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - target_ran_node_id_s& target_ran_node_id() - { - assert_choice_type("targetRANNodeID", type_.to_string(), "TargetID"); - return c.get(); - } - targetenb_id_s& targetenb_id() - { - assert_choice_type("targeteNB-ID", type_.to_string(), "TargetID"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "TargetID"); - return c.get >(); - } - const target_ran_node_id_s& target_ran_node_id() const - { - assert_choice_type("targetRANNodeID", type_.to_string(), "TargetID"); - return c.get(); - } - const targetenb_id_s& targetenb_id() const - { - assert_choice_type("targeteNB-ID", type_.to_string(), "TargetID"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "TargetID"); - return c.get >(); - } - target_ran_node_id_s& set_target_ran_node_id() - { - set(types::target_ran_node_id); - return c.get(); - } - targetenb_id_s& set_targetenb_id() - { - set(types::targetenb_id); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t, target_ran_node_id_s, targetenb_id_s> c; - - void destroy_(); -}; - -// HandoverRequiredIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ho_required_ies_o { +// InitialContextSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct init_context_setup_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, - handov_type, - cause, - target_id, - direct_forwarding_path_availability, - pdu_session_res_list_ho_rqd, - source_to_target_transparent_container, + old_amf, + ue_aggregate_maximum_bit_rate, + core_network_assist_info, + guami, + pdu_session_res_setup_list_cxt_req, + allowed_nssai, + ue_security_cap, + security_key, + trace_activation, + mob_restrict_list, + ue_radio_cap, + idx_to_rfsp, + masked_imeisv, + nas_pdu, + emergency_fallback_ind, + rrc_inactive_transition_report_request, + ue_radio_cap_for_paging, + redirection_voice_fallback, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7191,26 +6856,63 @@ struct ho_required_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - handov_type_e& handov_type(); - cause_c& cause(); - target_id_c& target_id(); - direct_forwarding_path_availability_e& direct_forwarding_path_availability(); - pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd(); - unbounded_octstring& source_to_target_transparent_container(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const handov_type_e& handov_type() const; - const cause_c& cause() const; - const target_id_c& target_id() const; - const direct_forwarding_path_availability_e& direct_forwarding_path_availability() const; - const pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd() const; - const unbounded_octstring& source_to_target_transparent_container() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + printable_string<1, 150, true, true>& old_amf(); + ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); + core_network_assist_info_s& core_network_assist_info(); + guami_s& guami(); + pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req(); + allowed_nssai_l& allowed_nssai(); + ue_security_cap_s& ue_security_cap(); + fixed_bitstring<256, false, true>& security_key(); + trace_activation_s& trace_activation(); + mob_restrict_list_s& mob_restrict_list(); + unbounded_octstring& ue_radio_cap(); + uint16_t& idx_to_rfsp(); + fixed_bitstring<64, false, true>& masked_imeisv(); + unbounded_octstring& nas_pdu(); + emergency_fallback_ind_s& emergency_fallback_ind(); + rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); + ue_radio_cap_for_paging_s& ue_radio_cap_for_paging(); + redirection_voice_fallback_e& redirection_voice_fallback(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const printable_string<1, 150, true, true>& old_amf() const; + const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; + const core_network_assist_info_s& core_network_assist_info() const; + const guami_s& guami() const; + const pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req() const; + const allowed_nssai_l& allowed_nssai() const; + const ue_security_cap_s& ue_security_cap() const; + const fixed_bitstring<256, false, true>& security_key() const; + const trace_activation_s& trace_activation() const; + const mob_restrict_list_s& mob_restrict_list() const; + const unbounded_octstring& ue_radio_cap() const; + const uint16_t& idx_to_rfsp() const; + const fixed_bitstring<64, false, true>& masked_imeisv() const; + const unbounded_octstring& nas_pdu() const; + const emergency_fallback_ind_s& emergency_fallback_ind() const; + const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; + const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const; + const redirection_voice_fallback_e& redirection_voice_fallback() const; private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t, + guami_s, + mob_restrict_list_s, + pdu_session_res_setup_list_cxt_req_l, + printable_string<1, 150, true, true>, + trace_activation_s, + ue_aggregate_maximum_bit_rate_s, + ue_radio_cap_for_paging_s, + ue_security_cap_s, + unbounded_octstring > + c; void destroy_(); }; @@ -7223,32 +6925,57 @@ struct ho_required_ies_o { static presence_e get_presence(const uint32_t& id); }; -struct ho_required_ies_container { +struct init_context_setup_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool direct_forwarding_path_availability_present = false; + bool old_amf_present = false; + bool ue_aggregate_maximum_bit_rate_present = false; + bool core_network_assist_info_present = false; + bool pdu_session_res_setup_list_cxt_req_present = false; + bool trace_activation_present = false; + bool mob_restrict_list_present = false; + bool ue_radio_cap_present = false; + bool idx_to_rfsp_present = false; + bool masked_imeisv_present = false; + bool nas_pdu_present = false; + bool emergency_fallback_ind_present = false; + bool rrc_inactive_transition_report_request_present = false; + bool ue_radio_cap_for_paging_present = false; + bool redirection_voice_fallback_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s handov_type; - ie_field_s cause; - ie_field_s target_id; - ie_field_s direct_forwarding_path_availability; - ie_field_s > pdu_session_res_list_ho_rqd; - ie_field_s > source_to_target_transparent_container; + ie_field_s > old_amf; + ie_field_s ue_aggregate_maximum_bit_rate; + ie_field_s core_network_assist_info; + ie_field_s guami; + ie_field_s > pdu_session_res_setup_list_cxt_req; + ie_field_s > allowed_nssai; + ie_field_s ue_security_cap; + ie_field_s > security_key; + ie_field_s trace_activation; + ie_field_s mob_restrict_list; + ie_field_s > ue_radio_cap; + ie_field_s > idx_to_rfsp; + ie_field_s > masked_imeisv; + ie_field_s > nas_pdu; + ie_field_s emergency_fallback_ind; + ie_field_s rrc_inactive_transition_report_request; + ie_field_s ue_radio_cap_for_paging; + ie_field_s redirection_voice_fallback; // sequence methods - ho_required_ies_container(); + init_context_setup_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// HandoverRequired ::= SEQUENCE -struct ho_required_s { - bool ext = false; - ho_required_ies_container protocol_ies; +// InitialContextSetupRequest ::= SEQUENCE +struct init_context_setup_request_s { + bool ext = false; + init_context_setup_request_ies_container protocol_ies; // ... // sequence methods @@ -7257,17 +6984,21 @@ struct ho_required_s { void to_json(json_writer& j) const; }; -// RecommendedRANNodeItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o recommended_ran_node_item_ext_ies_o; +// PDUSessionResourceFailedToSetupItemCxtRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l recommended_ran_node_item_ext_ies_container; +// PDUSessionResourceSetupItemCxtRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_item_cxt_res_ext_ies_o = ngap_protocol_ext_empty_o; -// RecommendedRANNodeItem ::= SEQUENCE -struct recommended_ran_node_item_s { - bool ext = false; - bool ie_exts_present = false; - amf_paging_target_c amf_paging_target; - recommended_ran_node_item_ext_ies_container ie_exts; +using pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceFailedToSetupItemCxtRes ::= SEQUENCE +struct pdu_session_res_failed_to_setup_item_cxt_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; + pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_container ie_exts; // ... // sequence methods @@ -7276,65 +7007,16 @@ struct recommended_ran_node_item_s { void to_json(json_writer& j) const; }; -// RecommendedRANNodeList ::= SEQUENCE (SIZE (1..16)) OF RecommendedRANNodeItem -using recommended_ran_node_list_l = dyn_array; +using pdu_session_res_setup_item_cxt_res_ext_ies_container = protocol_ext_container_empty_l; -// RecommendedRANNodesForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o recommended_ran_nodes_for_paging_ext_ies_o; - -// InfoOnRecommendedCellsAndRANNodesForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_o; - -typedef protocol_ext_container_empty_l recommended_ran_nodes_for_paging_ext_ies_container; - -// RecommendedRANNodesForPaging ::= SEQUENCE -struct recommended_ran_nodes_for_paging_s { - bool ext = false; - bool ie_exts_present = false; - recommended_ran_node_list_l recommended_ran_node_list; - recommended_ran_nodes_for_paging_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -typedef protocol_ext_container_empty_l info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_container; - -// InfoOnRecommendedCellsAndRANNodesForPaging ::= SEQUENCE -struct info_on_recommended_cells_and_ran_nodes_for_paging_s { - bool ext = false; - bool ie_exts_present = false; - recommended_cells_for_paging_s recommended_cells_for_paging; - recommended_ran_nodes_for_paging_s recommend_ran_nodes_for_paging; - info_on_recommended_cells_and_ran_nodes_for_paging_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceSetupUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_unsuccessful_transfer_ext_ies_o; - -// PDUSessionResourceFailedToSetupItemCxtFail-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_o; - -typedef protocol_ext_container_empty_l pdu_session_res_setup_unsuccessful_transfer_ext_ies_container; - -// PDUSessionResourceSetupUnsuccessfulTransfer ::= SEQUENCE -struct pdu_session_res_setup_unsuccessful_transfer_s { - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - pdu_session_res_setup_unsuccessful_transfer_ext_ies_container ie_exts; - // ... +// PDUSessionResourceSetupItemCxtRes ::= SEQUENCE +struct pdu_session_res_setup_item_cxt_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_setup_resp_transfer; + pdu_session_res_setup_item_cxt_res_ext_ies_container ie_exts; + // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -7342,41 +7024,27 @@ struct pdu_session_res_setup_unsuccessful_transfer_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_container; - -// PDUSessionResourceFailedToSetupItemCxtFail ::= SEQUENCE -struct pdu_session_res_failed_to_setup_item_cxt_fail_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - pdu_session_res_failed_to_setup_item_cxt_fail_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceFailedToSetupListCxtRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemCxtRes +using pdu_session_res_failed_to_setup_list_cxt_res_l = dyn_array; -// PDUSessionResourceFailedToSetupListCxtFail ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemCxtFail -using pdu_session_res_failed_to_setup_list_cxt_fail_l = dyn_array; +// PDUSessionResourceSetupListCxtRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemCxtRes +using pdu_session_res_setup_list_cxt_res_l = dyn_array; -// InitialContextSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct init_context_setup_fail_ies_o { +// InitialContextSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct init_context_setup_resp_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, - pdu_session_res_failed_to_setup_list_cxt_fail, - cause, + pdu_session_res_setup_list_cxt_res, + pdu_session_res_failed_to_setup_list_cxt_res, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7391,20 +7059,23 @@ struct init_context_setup_fail_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_failed_to_setup_list_cxt_fail_l& pdu_session_res_failed_to_setup_list_cxt_fail(); - cause_c& cause(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_failed_to_setup_list_cxt_fail_l& pdu_session_res_failed_to_setup_list_cxt_fail() const; - const cause_c& cause() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_setup_list_cxt_res_l& pdu_session_res_setup_list_cxt_res(); + pdu_session_res_failed_to_setup_list_cxt_res_l& pdu_session_res_failed_to_setup_list_cxt_res(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_setup_list_cxt_res_l& pdu_session_res_setup_list_cxt_res() const; + const pdu_session_res_failed_to_setup_list_cxt_res_l& pdu_session_res_failed_to_setup_list_cxt_res() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t + c; void destroy_(); }; @@ -7417,31 +7088,32 @@ struct init_context_setup_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -struct init_context_setup_fail_ies_container { +struct init_context_setup_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_failed_to_setup_list_cxt_fail_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > - pdu_session_res_failed_to_setup_list_cxt_fail; - ie_field_s cause; + bool pdu_session_res_setup_list_cxt_res_present = false; + bool pdu_session_res_failed_to_setup_list_cxt_res_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_setup_list_cxt_res; + ie_field_s > + pdu_session_res_failed_to_setup_list_cxt_res; ie_field_s crit_diagnostics; // sequence methods - init_context_setup_fail_ies_container(); + init_context_setup_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// InitialContextSetupFailure ::= SEQUENCE -struct init_context_setup_fail_s { +// InitialContextSetupResponse ::= SEQUENCE +struct init_context_setup_resp_s { bool ext = false; - init_context_setup_fail_ies_container protocol_ies; + init_context_setup_resp_ies_container protocol_ies; // ... // sequence methods @@ -7450,84 +7122,56 @@ struct init_context_setup_fail_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupItemCxtReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_cxt_req_ext_ies_o; - -typedef protocol_ext_container_empty_l pdu_session_res_setup_item_cxt_req_ext_ies_container; - -// PDUSessionResourceSetupItemCxtReq ::= SEQUENCE -struct pdu_session_res_setup_item_cxt_req_s { - bool ext = false; - bool nas_pdu_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring nas_pdu; - s_nssai_s s_nssai; - unbounded_octstring pdu_session_res_setup_request_transfer; - pdu_session_res_setup_item_cxt_req_ext_ies_container ie_exts; - // ... +// RRCEstablishmentCause ::= ENUMERATED +struct rrcestablishment_cause_opts { + enum options { + emergency, + high_prio_access, + mt_access, + mo_sig, + mo_data, + mo_voice_call, + mo_video_call, + mo_sms, + mps_prio_access, + mcs_prio_access, + // ... + not_available, + nulltype + } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated rrcestablishment_cause_e; -// UERadioCapabilityForPaging-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_radio_cap_for_paging_ext_ies_o; - -// PDUSessionResourceSetupListCxtReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemCxtReq -using pdu_session_res_setup_list_cxt_req_l = dyn_array; - -typedef protocol_ext_container_empty_l ue_radio_cap_for_paging_ext_ies_container; - -// UERadioCapabilityForPaging ::= SEQUENCE -struct ue_radio_cap_for_paging_s { - bool ext = false; - bool ueradio_cap_for_paging_of_nr_present = false; - bool ueradio_cap_for_paging_of_eutra_present = false; - bool ie_exts_present = false; - unbounded_octstring ueradio_cap_for_paging_of_nr; - unbounded_octstring ueradio_cap_for_paging_of_eutra; - ue_radio_cap_for_paging_ext_ies_container ie_exts; - // ... +// UEContextRequest ::= ENUMERATED +struct ue_context_request_opts { + enum options { requested, /*...*/ nulltype } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated ue_context_request_e; -// InitialContextSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct init_context_setup_request_ies_o { +// InitialUEMessage-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct init_ue_msg_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { - amf_ue_ngap_id, ran_ue_ngap_id, - old_amf, - ue_aggregate_maximum_bit_rate, - core_network_assist_info, - guami, - pdu_session_res_setup_list_cxt_req, - allowed_nssai, - ue_security_cap, - security_key, - trace_activation, - mob_restrict_list, - ue_radio_cap, - idx_to_rfsp, - masked_imeisv, nas_pdu, - emergency_fallback_ind, - rrc_inactive_transition_report_request, - ue_radio_cap_for_paging, - redirection_voice_fallback, + user_location_info, + rrcestablishment_cause, + five_g_s_tmsi, + amf_set_id, + ue_context_request, + allowed_nssai, nulltype } value; + typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; + uint8_t to_number() const; }; typedef enumerated types; @@ -7542,62 +7186,30 @@ struct init_context_setup_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - printable_string<1, 150, true, true>& old_amf(); - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); - core_network_assist_info_s& core_network_assist_info(); - guami_s& guami(); - pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req(); - allowed_nssai_l& allowed_nssai(); - ue_security_cap_s& ue_security_cap(); - fixed_bitstring<256, false, true>& security_key(); - trace_activation_s& trace_activation(); - mob_restrict_list_s& mob_restrict_list(); - unbounded_octstring& ue_radio_cap(); - uint16_t& idx_to_rfsp(); - fixed_bitstring<64, false, true>& masked_imeisv(); - unbounded_octstring& nas_pdu(); - emergency_fallback_ind_s& emergency_fallback_ind(); - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); - ue_radio_cap_for_paging_s& ue_radio_cap_for_paging(); - redirection_voice_fallback_e& redirection_voice_fallback(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const printable_string<1, 150, true, true>& old_amf() const; - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; - const core_network_assist_info_s& core_network_assist_info() const; - const guami_s& guami() const; - const pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req() const; - const allowed_nssai_l& allowed_nssai() const; - const ue_security_cap_s& ue_security_cap() const; - const fixed_bitstring<256, false, true>& security_key() const; - const trace_activation_s& trace_activation() const; - const mob_restrict_list_s& mob_restrict_list() const; - const unbounded_octstring& ue_radio_cap() const; - const uint16_t& idx_to_rfsp() const; - const fixed_bitstring<64, false, true>& masked_imeisv() const; - const unbounded_octstring& nas_pdu() const; - const emergency_fallback_ind_s& emergency_fallback_ind() const; - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; - const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const; - const redirection_voice_fallback_e& redirection_voice_fallback() const; + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& nas_pdu(); + user_location_info_c& user_location_info(); + rrcestablishment_cause_e& rrcestablishment_cause(); + five_g_s_tmsi_s& five_g_s_tmsi(); + fixed_bitstring<10, false, true>& amf_set_id(); + ue_context_request_e& ue_context_request(); + allowed_nssai_l& allowed_nssai(); + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& nas_pdu() const; + const user_location_info_c& user_location_info() const; + const rrcestablishment_cause_e& rrcestablishment_cause() const; + const five_g_s_tmsi_s& five_g_s_tmsi() const; + const fixed_bitstring<10, false, true>& amf_set_id() const; + const ue_context_request_e& ue_context_request() const; + const allowed_nssai_l& allowed_nssai() const; private: types type_; choice_buffer_t, - guami_s, - mob_restrict_list_s, - pdu_session_res_setup_list_cxt_req_l, - printable_string<1, 150, true, true>, - trace_activation_s, - ue_aggregate_maximum_bit_rate_s, - ue_radio_cap_for_paging_s, - ue_security_cap_s, - unbounded_octstring > + five_g_s_tmsi_s, + fixed_bitstring<10, false, true>, + unbounded_octstring, + user_location_info_c> c; void destroy_(); @@ -7611,57 +7223,35 @@ struct init_context_setup_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -struct init_context_setup_request_ies_container { +struct init_ue_msg_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool old_amf_present = false; - bool ue_aggregate_maximum_bit_rate_present = false; - bool core_network_assist_info_present = false; - bool pdu_session_res_setup_list_cxt_req_present = false; - bool trace_activation_present = false; - bool mob_restrict_list_present = false; - bool ue_radio_cap_present = false; - bool idx_to_rfsp_present = false; - bool masked_imeisv_present = false; - bool nas_pdu_present = false; - bool emergency_fallback_ind_present = false; - bool rrc_inactive_transition_report_request_present = false; - bool ue_radio_cap_for_paging_present = false; - bool redirection_voice_fallback_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > old_amf; - ie_field_s ue_aggregate_maximum_bit_rate; - ie_field_s core_network_assist_info; - ie_field_s guami; - ie_field_s > pdu_session_res_setup_list_cxt_req; - ie_field_s > allowed_nssai; - ie_field_s ue_security_cap; - ie_field_s > security_key; - ie_field_s trace_activation; - ie_field_s mob_restrict_list; - ie_field_s > ue_radio_cap; - ie_field_s > idx_to_rfsp; - ie_field_s > masked_imeisv; - ie_field_s > nas_pdu; - ie_field_s emergency_fallback_ind; - ie_field_s rrc_inactive_transition_report_request; - ie_field_s ue_radio_cap_for_paging; - ie_field_s redirection_voice_fallback; + bool five_g_s_tmsi_present = false; + bool amf_set_id_present = false; + bool ue_context_request_present = false; + bool allowed_nssai_present = false; + ie_field_s > ran_ue_ngap_id; + ie_field_s > nas_pdu; + ie_field_s user_location_info; + ie_field_s rrcestablishment_cause; + ie_field_s five_g_s_tmsi; + ie_field_s > amf_set_id; + ie_field_s ue_context_request; + ie_field_s > allowed_nssai; // sequence methods - init_context_setup_request_ies_container(); + init_ue_msg_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// InitialContextSetupRequest ::= SEQUENCE -struct init_context_setup_request_s { - bool ext = false; - init_context_setup_request_ies_container protocol_ies; +// InitialUEMessage ::= SEQUENCE +struct init_ue_msg_s { + bool ext = false; + init_ue_msg_ies_container protocol_ies; // ... // sequence methods @@ -7670,29 +7260,35 @@ struct init_context_setup_request_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_resp_transfer_ext_ies_o; +// SliceOverloadItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using slice_overload_item_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceFailedToSetupItemCxtRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_o; +// OverloadAction ::= ENUMERATED +struct overload_action_opts { + enum options { + reject_non_emergency_mo_dt, + reject_rrc_cr_sig, + permit_emergency_sessions_and_mobile_terminated_services_only, + permit_high_prio_sessions_and_mobile_terminated_services_only, + // ... + nulltype + } value; -// PDUSessionResourceSetupItemCxtRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_cxt_res_ext_ies_o; + const char* to_string() const; +}; +typedef enumerated overload_action_e; -typedef protocol_ext_container_empty_l pdu_session_res_setup_resp_transfer_ext_ies_container; +// OverloadResponse-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using overload_resp_ext_ies_o = ngap_protocol_ies_empty_o; -// PDUSessionResourceSetupResponseTransfer ::= SEQUENCE -struct pdu_session_res_setup_resp_transfer_s { - bool ext = false; - bool add_dl_qos_flow_per_tnl_info_present = false; - bool security_result_present = false; - bool qos_flow_failed_to_setup_list_present = false; - bool ie_exts_present = false; - qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; - qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; - security_result_s security_result; - qos_flow_list_with_cause_l qos_flow_failed_to_setup_list; - pdu_session_res_setup_resp_transfer_ext_ies_container ie_exts; +using slice_overload_item_ext_ies_container = protocol_ext_container_empty_l; + +// SliceOverloadItem ::= SEQUENCE +struct slice_overload_item_s { + bool ext = false; + bool ie_exts_present = false; + s_nssai_s s_nssai; + slice_overload_item_ext_ies_container ie_exts; // ... // sequence methods @@ -7701,325 +7297,241 @@ struct pdu_session_res_setup_resp_transfer_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_container; +// UE-associatedLogicalNG-connectionItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ue_associated_lc_ng_conn_item_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceFailedToSetupItemCxtRes ::= SEQUENCE -struct pdu_session_res_failed_to_setup_item_cxt_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - pdu_session_res_failed_to_setup_item_cxt_res_ext_ies_container ie_exts; - // ... +// OverloadResponse ::= CHOICE +struct overload_resp_c { + struct types_opts { + enum options { overload_action, choice_exts, nulltype } value; - // sequence methods + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + overload_resp_c() = default; + overload_resp_c(const overload_resp_c& other); + overload_resp_c& operator=(const overload_resp_c& other); + ~overload_resp_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; + // getters + overload_action_e& overload_action() + { + assert_choice_type(types::overload_action, type_, "OverloadResponse"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "OverloadResponse"); + return c.get >(); + } + const overload_action_e& overload_action() const + { + assert_choice_type(types::overload_action, type_, "OverloadResponse"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "OverloadResponse"); + return c.get >(); + } + overload_action_e& set_overload_action(); + protocol_ie_single_container_s& set_choice_exts(); + +private: + types type_; + choice_buffer_t > c; + + void destroy_(); }; -typedef protocol_ext_container_empty_l pdu_session_res_setup_item_cxt_res_ext_ies_container; +// OverloadStartNSSAIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using overload_start_nssai_item_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceSetupItemCxtRes ::= SEQUENCE -struct pdu_session_res_setup_item_cxt_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_resp_transfer; - pdu_session_res_setup_item_cxt_res_ext_ies_container ie_exts; - // ... +// PDUSessionResourceFailedToModifyItemModCfm-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceFailedToModifyItemModRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_modify_item_mod_res_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceFailedToSetupListCxtRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemCxtRes -using pdu_session_res_failed_to_setup_list_cxt_res_l = dyn_array; +// PDUSessionResourceFailedToSetupItemPSReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_setup_item_ps_req_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceSetupListCxtRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemCxtRes -using pdu_session_res_setup_list_cxt_res_l = dyn_array; +// PDUSessionResourceFailedToSetupItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_failed_to_setup_item_su_res_ext_ies_o = ngap_protocol_ext_empty_o; -// InitialContextSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct init_context_setup_resp_ies_o { - // Value ::= OPEN TYPE - struct value_c { +// PDUSessionResourceItemCxtRelCpl-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_item_cxt_rel_cpl_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_setup_list_cxt_res, - pdu_session_res_failed_to_setup_list_cxt_res, - crit_diagnostics, - nulltype - } value; + enum options { pdu_session_res_release_resp_transfer, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::pdu_session_res_release_resp_transfer; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_setup_list_cxt_res_l& pdu_session_res_setup_list_cxt_res(); - pdu_session_res_failed_to_setup_list_cxt_res_l& pdu_session_res_failed_to_setup_list_cxt_res(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_setup_list_cxt_res_l& pdu_session_res_setup_list_cxt_res() const; - const pdu_session_res_failed_to_setup_list_cxt_res_l& pdu_session_res_failed_to_setup_list_cxt_res() const; - const crit_diagnostics_s& crit_diagnostics() const; + unbounded_octstring& pdu_session_res_release_resp_transfer() { return c; } + const unbounded_octstring& pdu_session_res_release_resp_transfer() const { return c; } private: - types type_; - choice_buffer_t - c; - - void destroy_(); + unbounded_octstring c; }; // members lookup methods static uint32_t idx_to_id(uint32_t idx); static bool is_id_valid(const uint32_t& id); static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); static presence_e get_presence(const uint32_t& id); }; -struct init_context_setup_resp_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// PDUSessionResourceItemCxtRelReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_item_cxt_rel_req_ext_ies_o = ngap_protocol_ext_empty_o; - // member variables - bool pdu_session_res_setup_list_cxt_res_present = false; - bool pdu_session_res_failed_to_setup_list_cxt_res_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_setup_list_cxt_res; - ie_field_s > - pdu_session_res_failed_to_setup_list_cxt_res; - ie_field_s crit_diagnostics; - - // sequence methods - init_context_setup_resp_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// InitialContextSetupResponse ::= SEQUENCE -struct init_context_setup_resp_s { - bool ext = false; - init_context_setup_resp_ies_container protocol_ies; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// RRCEstablishmentCause ::= ENUMERATED -struct rrcestablishment_cause_opts { - enum options { - emergency, - high_prio_access, - mt_access, - mo_sig, - mo_data, - mo_voice_call, - mo_video_call, - mo_sms, - mps_prio_access, - mcs_prio_access, - // ... - not_available, - nulltype - } value; - - std::string to_string() const; -}; -typedef enumerated rrcestablishment_cause_e; - -// UEContextRequest ::= ENUMERATED -struct ue_context_request_opts { - enum options { requested, /*...*/ nulltype } value; +// PDUSessionResourceModifyItemModCfm-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_item_mod_cfm_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; -}; -typedef enumerated ue_context_request_e; +// PDUSessionResourceModifyItemModInd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_item_mod_ind_ext_ies_o = ngap_protocol_ext_empty_o; -// InitialUEMessage-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct init_ue_msg_ies_o { - // Value ::= OPEN TYPE - struct value_c { +// PDUSessionResourceModifyItemModReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_modify_item_mod_req_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { struct types_opts { - enum options { - ran_ue_ngap_id, - nas_pdu, - user_location_info, - rrcestablishment_cause, - five_g_s_tmsi, - amf_set_id, - ue_context_request, - allowed_nssai, - nulltype - } value; - typedef uint8_t number_type; + enum options { s_nssai, nulltype } value; - std::string to_string() const; - uint8_t to_number() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::s_nssai; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& nas_pdu(); - user_location_info_c& user_location_info(); - rrcestablishment_cause_e& rrcestablishment_cause(); - five_g_s_tmsi_s& five_g_s_tmsi(); - fixed_bitstring<10, false, true>& amf_set_id(); - ue_context_request_e& ue_context_request(); - allowed_nssai_l& allowed_nssai(); - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& nas_pdu() const; - const user_location_info_c& user_location_info() const; - const rrcestablishment_cause_e& rrcestablishment_cause() const; - const five_g_s_tmsi_s& five_g_s_tmsi() const; - const fixed_bitstring<10, false, true>& amf_set_id() const; - const ue_context_request_e& ue_context_request() const; - const allowed_nssai_l& allowed_nssai() const; + s_nssai_s& s_nssai() { return c; } + const s_nssai_s& s_nssai() const { return c; } private: - types type_; - choice_buffer_t, - unbounded_octstring, - user_location_info_c> - c; - - void destroy_(); + s_nssai_s c; }; // members lookup methods static uint32_t idx_to_id(uint32_t idx); static bool is_id_valid(const uint32_t& id); static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); static presence_e get_presence(const uint32_t& id); }; -struct init_ue_msg_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// PDUSessionResourceModifyItemModRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_item_mod_res_ext_ies_o = ngap_protocol_ext_empty_o; - // member variables - bool five_g_s_tmsi_present = false; - bool amf_set_id_present = false; - bool ue_context_request_present = false; - bool allowed_nssai_present = false; - ie_field_s > ran_ue_ngap_id; - ie_field_s > nas_pdu; - ie_field_s user_location_info; - ie_field_s rrcestablishment_cause; - ie_field_s five_g_s_tmsi; - ie_field_s > amf_set_id; - ie_field_s ue_context_request; - ie_field_s > allowed_nssai; +// PDUSessionResourceNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_notify_item_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods - init_ue_msg_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceReleasedItemNot-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_released_item_not_ext_ies_o = ngap_protocol_ext_empty_o; -// InitialUEMessage ::= SEQUENCE -struct init_ue_msg_s { - bool ext = false; - init_ue_msg_ies_container protocol_ies; - // ... +// PDUSessionResourceReleasedItemPSAck-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_released_item_ps_ack_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceReleasedItemPSFail-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_released_item_ps_fail_ext_ies_o = ngap_protocol_ext_empty_o; -// VolumeTimedReport-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o volume_timed_report_item_ext_ies_o; +// PDUSessionResourceReleasedItemRelRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_released_item_rel_res_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l volume_timed_report_item_ext_ies_container; +// PDUSessionResourceSecondaryRATUsageItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_secondary_ratusage_item_ext_ies_o = ngap_protocol_ext_empty_o; -// VolumeTimedReport-Item ::= SEQUENCE -struct volume_timed_report_item_s { - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<4, true> start_time_stamp; - fixed_octstring<4, true> end_time_stamp; - uint64_t usage_count_ul = 0; - uint64_t usage_count_dl = 0; - volume_timed_report_item_ext_ies_container ie_exts; - // ... +// PDUSessionResourceSetupItemSUReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_item_su_req_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods +// PDUSessionResourceSetupItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_item_su_res_ext_ies_o = ngap_protocol_ext_empty_o; + +// PDUSessionResourceSwitchedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_switched_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// PDUSessionResourceToBeSwitchedDLItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_to_be_switched_dl_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// PDUSessionResourceToReleaseItemRelCmd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_to_release_item_rel_cmd_ext_ies_o = ngap_protocol_ext_empty_o; + +// PrivateIE-ID ::= CHOICE +struct private_ie_id_c { + struct types_opts { + enum options { local, global, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + private_ie_id_c() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; -}; + // getters + uint32_t& local() + { + assert_choice_type(types::local, type_, "PrivateIE-ID"); + return c; + } + const uint32_t& local() const + { + assert_choice_type(types::local, type_, "PrivateIE-ID"); + return c; + } + uint32_t& set_local(); + void set_global(); -// QoSFlowsUsageReport-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qo_sflows_usage_report_item_ext_ies_o; +private: + types type_; + uint32_t c; +}; -// VolumeTimedReportList ::= SEQUENCE (SIZE (1..2)) OF VolumeTimedReport-Item -using volume_timed_report_list_l = dyn_array; +// SliceOverloadList ::= SEQUENCE (SIZE (1..1024)) OF SliceOverloadItem +using slice_overload_list_l = dyn_array; -// PDUSessionUsageReport-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_usage_report_ext_ies_o; +// SupportedTAItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using supported_ta_item_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l qo_sflows_usage_report_item_ext_ies_container; +// TAIListForPagingItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using tai_list_for_paging_item_ext_ies_o = ngap_protocol_ext_empty_o; -// QoSFlowsUsageReport-Item ::= SEQUENCE -struct qo_sflows_usage_report_item_s { - struct rat_type_opts { - enum options { nr, eutra, /*...*/ nulltype } value; +// UE-NGAP-ID-pair-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ue_ngap_id_pair_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; - }; - typedef enumerated rat_type_e_; +using ue_associated_lc_ng_conn_item_ext_ies_container = protocol_ext_container_empty_l; - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - rat_type_e_ rat_type; - volume_timed_report_list_l qo_sflows_timed_report_list; - qo_sflows_usage_report_item_ext_ies_container ie_exts; +// UE-associatedLogicalNG-connectionItem ::= SEQUENCE +struct ue_associated_lc_ng_conn_item_s { + bool ext = false; + bool amf_ue_ngap_id_present = false; + bool ran_ue_ngap_id_present = false; + bool ie_exts_present = false; + uint64_t amf_ue_ngap_id = 0; + uint64_t ran_ue_ngap_id = 0; + ue_associated_lc_ng_conn_item_ext_ies_container ie_exts; // ... // sequence methods @@ -8028,23 +7540,32 @@ struct qo_sflows_usage_report_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l pdu_session_usage_report_ext_ies_container; +// UEPresence ::= ENUMERATED +struct ue_presence_opts { + enum options { in, out, unknown, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated ue_presence_e; + +// UEPresenceInAreaOfInterestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ue_presence_in_area_of_interest_item_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionUsageReport ::= SEQUENCE -struct pdu_session_usage_report_s { - struct rat_type_opts { - enum options { nr, eutra, /*...*/ nulltype } value; +// NR-CGIListForWarning ::= SEQUENCE (SIZE (1..65535)) OF NR-CGI +using nr_cgi_list_for_warning_l = dyn_array; - std::string to_string() const; - }; - typedef enumerated rat_type_e_; +using overload_start_nssai_item_ext_ies_container = protocol_ext_container_empty_l; - // member variables - bool ext = false; - bool ie_exts_present = false; - rat_type_e_ rat_type; - volume_timed_report_list_l pdu_session_timed_report_list; - pdu_session_usage_report_ext_ies_container ie_exts; +// OverloadStartNSSAIItem ::= SEQUENCE +struct overload_start_nssai_item_s { + bool ext = false; + bool slice_overload_resp_present = false; + bool slice_traffic_load_reduction_ind_present = false; + bool ie_exts_present = false; + slice_overload_list_l slice_overload_list; + overload_resp_c slice_overload_resp; + uint8_t slice_traffic_load_reduction_ind = 1; + overload_start_nssai_item_ext_ies_container ie_exts; // ... // sequence methods @@ -8053,44 +7574,49 @@ struct pdu_session_usage_report_s { void to_json(json_writer& j) const; }; -// QoSFlowsUsageReportList ::= SEQUENCE (SIZE (1..64)) OF QoSFlowsUsageReport-Item -using qo_sflows_usage_report_list_l = dyn_array; +using pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowAddOrModifyRequestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_add_or_modify_request_item_ext_ies_o; - -// SecondaryRATUsageInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o secondary_ratusage_info_ext_ies_o; +// PDUSessionResourceFailedToModifyItemModCfm ::= SEQUENCE +struct pdu_session_res_failed_to_modify_item_mod_cfm_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_modify_ind_unsuccessful_transfer; + pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_container ie_exts; + // ... -// UL-NGU-UP-TNLModifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ul_ngu_up_tnl_modify_item_ext_ies_o; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; -// UPTransportLayerInformationPairItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o up_transport_layer_info_pair_item_ext_ies_o; +using pdu_session_res_failed_to_modify_item_mod_res_ext_ies_container = protocol_ext_container_empty_l; -// NotificationCause ::= ENUMERATED -struct notif_cause_opts { - enum options { fulfilled, not_fulfilled, /*...*/ nulltype } value; +// PDUSessionResourceFailedToModifyItemModRes ::= SEQUENCE +struct pdu_session_res_failed_to_modify_item_mod_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_modify_unsuccessful_transfer; + pdu_session_res_failed_to_modify_item_mod_res_ext_ies_container ie_exts; + // ... - std::string to_string() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -typedef enumerated notif_cause_e; - -// QosFlowAcceptedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_accepted_item_ext_ies_o; -typedef protocol_ext_container_empty_l qos_flow_add_or_modify_request_item_ext_ies_container; +using pdu_session_res_failed_to_setup_item_ps_req_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowAddOrModifyRequestItem ::= SEQUENCE -struct qos_flow_add_or_modify_request_item_s { - bool ext = false; - bool qos_flow_level_qos_params_present = false; - bool erab_id_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_level_qos_params_s qos_flow_level_qos_params; - uint8_t erab_id = 0; - qos_flow_add_or_modify_request_item_ext_ies_container ie_exts; +// PDUSessionResourceFailedToSetupItemPSReq ::= SEQUENCE +struct pdu_session_res_failed_to_setup_item_ps_req_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring path_switch_request_setup_failed_transfer; + pdu_session_res_failed_to_setup_item_ps_req_ext_ies_container ie_exts; // ... // sequence methods @@ -8099,26 +7625,29 @@ struct qos_flow_add_or_modify_request_item_s { void to_json(json_writer& j) const; }; -// QosFlowAddOrModifyResponseItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_add_or_modify_resp_item_ext_ies_o; - -// QosFlowModifyConfirmItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_modify_confirm_item_ext_ies_o; +using pdu_session_res_failed_to_setup_item_su_res_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_notify_item_ext_ies_o; +// PDUSessionResourceFailedToSetupItemSURes ::= SEQUENCE +struct pdu_session_res_failed_to_setup_item_su_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; + pdu_session_res_failed_to_setup_item_su_res_ext_ies_container ie_exts; + // ... -typedef protocol_ext_container_empty_l secondary_ratusage_info_ext_ies_container; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; -// SecondaryRATUsageInformation ::= SEQUENCE -struct secondary_ratusage_info_s { - bool ext = false; - bool pdu_session_usage_report_present = false; - bool qos_flows_usage_report_list_present = false; - bool ie_ext_present = false; - pdu_session_usage_report_s pdu_session_usage_report; - qo_sflows_usage_report_list_l qos_flows_usage_report_list; - secondary_ratusage_info_ext_ies_container ie_ext; +// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE +struct pdu_session_res_item_cxt_rel_cpl_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + protocol_ext_container_l ie_exts; // ... // sequence methods @@ -8127,15 +7656,14 @@ struct secondary_ratusage_info_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l ul_ngu_up_tnl_modify_item_ext_ies_container; +using pdu_session_res_item_cxt_rel_req_ext_ies_container = protocol_ext_container_empty_l; -// UL-NGU-UP-TNLModifyItem ::= SEQUENCE -struct ul_ngu_up_tnl_modify_item_s { - bool ext = false; - bool ie_exts_present = false; - up_transport_layer_info_c ul_ngu_up_tnl_info; - up_transport_layer_info_c dl_ngu_up_tnl_info; - ul_ngu_up_tnl_modify_item_ext_ies_container ie_exts; +// PDUSessionResourceItemCxtRelReq ::= SEQUENCE +struct pdu_session_res_item_cxt_rel_req_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + pdu_session_res_item_cxt_rel_req_ext_ies_container ie_exts; // ... // sequence methods @@ -8144,15 +7672,15 @@ struct ul_ngu_up_tnl_modify_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l up_transport_layer_info_pair_item_ext_ies_container; +using pdu_session_res_modify_item_mod_cfm_ext_ies_container = protocol_ext_container_empty_l; -// UPTransportLayerInformationPairItem ::= SEQUENCE -struct up_transport_layer_info_pair_item_s { - bool ext = false; - bool ie_exts_present = false; - up_transport_layer_info_c ul_ngu_up_tnl_info; - up_transport_layer_info_c dl_ngu_up_tnl_info; - up_transport_layer_info_pair_item_ext_ies_container ie_exts; +// PDUSessionResourceModifyItemModCfm ::= SEQUENCE +struct pdu_session_res_modify_item_mod_cfm_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_modify_confirm_transfer; + pdu_session_res_modify_item_mod_cfm_ext_ies_container ie_exts; // ... // sequence methods @@ -8161,46 +7689,49 @@ struct up_transport_layer_info_pair_item_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_release_resp_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { secondary_ratusage_info, nulltype } value; +using pdu_session_res_modify_item_mod_ind_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; - }; - typedef enumerated types; +// PDUSessionResourceModifyItemModInd ::= SEQUENCE +struct pdu_session_res_modify_item_mod_ind_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_modify_ind_transfer; + pdu_session_res_modify_item_mod_ind_ext_ies_container ie_exts; + // ... - // choice methods - types type() const { return types::secondary_ratusage_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - secondary_ratusage_info_s& secondary_ratusage_info() { return c; } - const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - secondary_ratusage_info_s c; - }; +// PDUSessionResourceModifyItemModReq ::= SEQUENCE +struct pdu_session_res_modify_item_mod_req_s { + bool ext = false; + bool nas_pdu_present = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring nas_pdu; + unbounded_octstring pdu_session_res_modify_request_transfer; + protocol_ext_container_l ie_exts; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l qos_flow_accepted_item_ext_ies_container; +using pdu_session_res_modify_item_mod_res_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowAcceptedItem ::= SEQUENCE -struct qos_flow_accepted_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_accepted_item_ext_ies_container ie_exts; +// PDUSessionResourceModifyItemModRes ::= SEQUENCE +struct pdu_session_res_modify_item_mod_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_modify_resp_transfer; + pdu_session_res_modify_item_mod_res_ext_ies_container ie_exts; // ... // sequence methods @@ -8209,17 +7740,15 @@ struct qos_flow_accepted_item_s { void to_json(json_writer& j) const; }; -// QosFlowAddOrModifyRequestList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAddOrModifyRequestItem -using qos_flow_add_or_modify_request_list_l = dyn_array; +using pdu_session_res_notify_item_ext_ies_container = protocol_ext_container_empty_l; -typedef protocol_ext_container_empty_l qos_flow_add_or_modify_resp_item_ext_ies_container; - -// QosFlowAddOrModifyResponseItem ::= SEQUENCE -struct qos_flow_add_or_modify_resp_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_add_or_modify_resp_item_ext_ies_container ie_exts; +// PDUSessionResourceNotifyItem ::= SEQUENCE +struct pdu_session_res_notify_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_notify_transfer; + pdu_session_res_notify_item_ext_ies_container ie_exts; // ... // sequence methods @@ -8228,14 +7757,15 @@ struct qos_flow_add_or_modify_resp_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l qos_flow_modify_confirm_item_ext_ies_container; +using pdu_session_res_released_item_not_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowModifyConfirmItem ::= SEQUENCE -struct qos_flow_modify_confirm_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_modify_confirm_item_ext_ies_container ie_exts; +// PDUSessionResourceReleasedItemNot ::= SEQUENCE +struct pdu_session_res_released_item_not_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_notify_released_transfer; + pdu_session_res_released_item_not_ext_ies_container ie_exts; // ... // sequence methods @@ -8244,15 +7774,15 @@ struct qos_flow_modify_confirm_item_s { void to_json(json_writer& j) const; }; -typedef protocol_ext_container_empty_l qos_flow_notify_item_ext_ies_container; +using pdu_session_res_released_item_ps_ack_ext_ies_container = protocol_ext_container_empty_l; -// QosFlowNotifyItem ::= SEQUENCE -struct qos_flow_notify_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - notif_cause_e notif_cause; - qos_flow_notify_item_ext_ies_container ie_exts; +// PDUSessionResourceReleasedItemPSAck ::= SEQUENCE +struct pdu_session_res_released_item_ps_ack_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring path_switch_request_unsuccessful_transfer; + pdu_session_res_released_item_ps_ack_ext_ies_container ie_exts; // ... // sequence methods @@ -8261,264 +7791,230 @@ struct qos_flow_notify_item_s { void to_json(json_writer& j) const; }; -// SliceOverloadItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o slice_overload_item_ext_ies_o; +using pdu_session_res_released_item_ps_fail_ext_ies_container = protocol_ext_container_empty_l; -// UL-NGU-UP-TNLModifyList ::= SEQUENCE (SIZE (1..4)) OF UL-NGU-UP-TNLModifyItem -using ul_ngu_up_tnl_modify_list_l = dyn_array; +// PDUSessionResourceReleasedItemPSFail ::= SEQUENCE +struct pdu_session_res_released_item_ps_fail_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring path_switch_request_unsuccessful_transfer; + pdu_session_res_released_item_ps_fail_ext_ies_container ie_exts; + // ... -// UPTransportLayerInformationPairList ::= SEQUENCE (SIZE (1..3)) OF UPTransportLayerInformationPairItem -using up_transport_layer_info_pair_list_l = dyn_array; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; -// UserPlaneSecurityInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o user_plane_security_info_ext_ies_o; +using pdu_session_res_released_item_rel_res_ext_ies_container = protocol_ext_container_empty_l; -// DL-NGU-TNLInformationReused ::= ENUMERATED -struct dl_ngu_tnl_info_reused_opts { - enum options { true_value, /*...*/ nulltype } value; +// PDUSessionResourceReleasedItemRelRes ::= SEQUENCE +struct pdu_session_res_released_item_rel_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_release_resp_transfer; + pdu_session_res_released_item_rel_res_ext_ies_container ie_exts; + // ... - std::string to_string() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -typedef enumerated dl_ngu_tnl_info_reused_e; -// OverloadAction ::= ENUMERATED -struct overload_action_opts { - enum options { - reject_non_emergency_mo_dt, - reject_rrc_cr_sig, - permit_emergency_sessions_and_mobile_terminated_services_only, - permit_high_prio_sessions_and_mobile_terminated_services_only, - // ... - nulltype - } value; +using pdu_session_res_secondary_ratusage_item_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; -}; -typedef enumerated overload_action_e; - -// OverloadResponse-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o overload_resp_ext_ies_o; +// PDUSessionResourceSecondaryRATUsageItem ::= SEQUENCE +struct pdu_session_res_secondary_ratusage_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring secondary_rat_data_usage_report_transfer; + pdu_session_res_secondary_ratusage_item_ext_ies_container ie_exts; + // ... -// PDUSessionResourceModifyConfirmTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_confirm_transfer_ext_ies_o; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; -// PDUSessionResourceModifyIndicationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_modify_ind_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { secondary_ratusage_info, security_result, nulltype } value; +using pdu_session_res_setup_item_su_req_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; - }; - typedef enumerated types; +// PDUSessionResourceSetupItemSUReq ::= SEQUENCE +struct pdu_session_res_setup_item_su_req_s { + bool ext = false; + bool pdu_session_nas_pdu_present = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_nas_pdu; + s_nssai_s s_nssai; + unbounded_octstring pdu_session_res_setup_request_transfer; + pdu_session_res_setup_item_su_req_ext_ies_container ie_exts; + // ... - // choice methods - ext_c() = default; - ext_c(const ext_c& other); - ext_c& operator=(const ext_c& other); - ~ext_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - secondary_ratusage_info_s& secondary_ratusage_info(); - security_result_s& security_result(); - const secondary_ratusage_info_s& secondary_ratusage_info() const; - const security_result_s& security_result() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - types type_; - choice_buffer_t c; +using pdu_session_res_setup_item_su_res_ext_ies_container = protocol_ext_container_empty_l; - void destroy_(); - }; +// PDUSessionResourceSetupItemSURes ::= SEQUENCE +struct pdu_session_res_setup_item_su_res_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_setup_resp_transfer; + pdu_session_res_setup_item_su_res_ext_ies_container ie_exts; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyIndicationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_o; - -// PDUSessionResourceModifyRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_modify_request_transfer_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { - pdu_session_aggregate_maximum_bit_rate, - ul_ngu_up_tnl_modify_list, - network_instance, - qos_flow_add_or_modify_request_list, - qos_flow_to_release_list, - add_ul_ngu_up_tnl_info, - nulltype - } value; - typedef uint8_t number_type; +using pdu_session_res_switched_item_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated types; +// PDUSessionResourceSwitchedItem ::= SEQUENCE +struct pdu_session_res_switched_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring path_switch_request_ack_transfer; + pdu_session_res_switched_item_ext_ies_container ie_exts; + // ... - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate(); - ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list(); - uint16_t& network_instance(); - qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list(); - qos_flow_list_with_cause_l& qos_flow_to_release_list(); - up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info(); - const pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() const; - const ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list() const; - const uint16_t& network_instance() const; - const qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list() const; - const qos_flow_list_with_cause_l& qos_flow_to_release_list() const; - const up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() const; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - types type_; - choice_buffer_t - c; +using pdu_session_res_to_be_switched_dl_item_ext_ies_container = protocol_ext_container_empty_l; - void destroy_(); - }; +// PDUSessionResourceToBeSwitchedDLItem ::= SEQUENCE +struct pdu_session_res_to_be_switched_dl_item_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring path_switch_request_transfer; + pdu_session_res_to_be_switched_dl_item_ext_ies_container ie_exts; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_modify_resp_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { add_ngu_up_tnl_info, nulltype } value; +using pdu_session_res_to_release_item_rel_cmd_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; - }; - typedef enumerated types; +// PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE +struct pdu_session_res_to_release_item_rel_cmd_s { + bool ext = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + unbounded_octstring pdu_session_res_release_cmd_transfer; + pdu_session_res_to_release_item_rel_cmd_ext_ies_container ie_exts; + // ... - // choice methods - types type() const { return types::add_ngu_up_tnl_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() { return c; } - const up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() const { return c; } + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - up_transport_layer_info_pair_list_l c; - }; +// PWSFailedCellIDList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using pws_failed_cell_id_list_ext_ies_o = ngap_protocol_ies_empty_o; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); +// ResetAll ::= ENUMERATED +struct reset_all_opts { + enum options { reset_all, /*...*/ nulltype } value; + + const char* to_string() const; }; +typedef enumerated reset_all_e; -// PDUSessionResourceModifyUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_unsuccessful_transfer_ext_ies_o; +// ResetType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using reset_type_ext_ies_o = ngap_protocol_ies_empty_o; -// PDUSessionResourceNotifyReleasedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_notify_released_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { secondary_ratusage_info, nulltype } value; +using supported_ta_item_ext_ies_container = protocol_ext_container_empty_l; - std::string to_string() const; - }; - typedef enumerated types; +// SupportedTAItem ::= SEQUENCE +struct supported_ta_item_s { + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> tac; + broadcast_plmn_list_l broadcast_plmn_list; + supported_ta_item_ext_ies_container ie_exts; + // ... - // choice methods - types type() const { return types::secondary_ratusage_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - secondary_ratusage_info_s& secondary_ratusage_info() { return c; } - const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - secondary_ratusage_info_s c; - }; +using tai_list_for_paging_item_ext_ies_container = protocol_ext_container_empty_l; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; +// TAIListForPagingItem ::= SEQUENCE +struct tai_list_for_paging_item_s { + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + tai_list_for_paging_item_ext_ies_container ie_exts; + // ... -// PDUSessionResourceNotifyTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_notify_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { secondary_ratusage_info, nulltype } value; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - std::string to_string() const; - }; - typedef enumerated types; +// TAIListForWarning ::= SEQUENCE (SIZE (1..65535)) OF TAI +using tai_list_for_warning_l = dyn_array; - // choice methods - types type() const { return types::secondary_ratusage_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - secondary_ratusage_info_s& secondary_ratusage_info() { return c; } - const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } +using ue_ngap_id_pair_ext_ies_container = protocol_ext_container_empty_l; - private: - secondary_ratusage_info_s c; - }; +// UE-NGAP-ID-pair ::= SEQUENCE +struct ue_ngap_id_pair_s { + bool ext = false; + bool ie_exts_present = false; + uint64_t amf_ue_ngap_id = 0; + uint64_t ran_ue_ngap_id = 0; + ue_ngap_id_pair_ext_ies_container ie_exts; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_release_cmd_transfer_ext_ies_o; +// UE-NGAP-IDs-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using ue_ngap_ids_ext_ies_o = ngap_protocol_ies_empty_o; -// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE -struct pdu_session_res_release_resp_transfer_s { - bool ext = false; - bool ie_exts_present = false; - protocol_ext_container_l ie_exts; +// UE-associatedLogicalNG-connectionList ::= SEQUENCE (SIZE (1..65536)) OF UE-associatedLogicalNG-connectionItem +using ue_associated_lc_ng_conn_list_l = dyn_array; + +// UEPagingIdentity-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using ue_paging_id_ext_ies_o = ngap_protocol_ies_empty_o; + +using ue_presence_in_area_of_interest_item_ext_ies_container = protocol_ext_container_empty_l; + +// UEPresenceInAreaOfInterestItem ::= SEQUENCE +struct ue_presence_in_area_of_interest_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t location_report_ref_id = 1; + ue_presence_e uepresence; + ue_presence_in_area_of_interest_item_ext_ies_container ie_exts; // ... // sequence methods @@ -8527,1729 +8023,1549 @@ struct pdu_session_res_release_resp_transfer_s { void to_json(json_writer& j) const; }; -// PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct path_switch_request_ack_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { add_ngu_up_tnl_info, nulltype } value; +// WarningAreaList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using warning_area_list_ext_ies_o = ngap_protocol_ies_empty_o; - std::string to_string() const; - }; - typedef enumerated types; +// CancelAllWarningMessages ::= ENUMERATED +struct cancel_all_warning_msgs_opts { + enum options { true_value, /*...*/ nulltype } value; - // choice methods - types type() const { return types::add_ngu_up_tnl_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() { return c; } - const up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() const { return c; } + const char* to_string() const; +}; +typedef enumerated cancel_all_warning_msgs_e; - private: - up_transport_layer_info_pair_list_l c; - }; +// ConcurrentWarningMessageInd ::= ENUMERATED +struct concurrent_warning_msg_ind_opts { + enum options { true_value, /*...*/ nulltype } value; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + const char* to_string() const; }; +typedef enumerated concurrent_warning_msg_ind_e; -// PathSwitchRequestSetupFailedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o path_switch_request_setup_failed_transfer_ext_ies_o; +// HandoverFlag ::= ENUMERATED +struct ho_flag_opts { + enum options { ho_prep, /*...*/ nulltype } value; -// PathSwitchRequestTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct path_switch_request_transfer_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { add_dl_qos_flow_per_tnl_info, nulltype } value; + const char* to_string() const; +}; +typedef enumerated ho_flag_e; - std::string to_string() const; - }; - typedef enumerated types; +// IMSVoiceSupportIndicator ::= ENUMERATED +struct ims_voice_support_ind_opts { + enum options { supported, not_supported, /*...*/ nulltype } value; - // choice methods - types type() const { return types::add_dl_qos_flow_per_tnl_info; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - qos_flow_per_tnl_info_list_l& add_dl_qos_flow_per_tnl_info() { return c; } - const qos_flow_per_tnl_info_list_l& add_dl_qos_flow_per_tnl_info() const { return c; } + const char* to_string() const; +}; +typedef enumerated ims_voice_support_ind_e; - private: - qos_flow_per_tnl_info_list_l c; - }; +// OverloadStartNSSAIList ::= SEQUENCE (SIZE (1..1024)) OF OverloadStartNSSAIItem +using overload_start_nssai_list_l = dyn_array; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; +// PDUSessionResourceFailedToModifyListModCfm ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToModifyItemModCfm +using pdu_session_res_failed_to_modify_list_mod_cfm_l = dyn_array; -// PathSwitchRequestUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o path_switch_request_unsuccessful_transfer_ext_ies_o; +// PDUSessionResourceFailedToModifyListModRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToModifyItemModRes +using pdu_session_res_failed_to_modify_list_mod_res_l = dyn_array; -// QosFlowAcceptedList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAcceptedItem -using qos_flow_accepted_list_l = dyn_array; +// PDUSessionResourceFailedToSetupListPSReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemPSReq +using pdu_session_res_failed_to_setup_list_ps_req_l = dyn_array; -// QosFlowAddOrModifyResponseList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAddOrModifyResponseItem -using qos_flow_add_or_modify_resp_list_l = dyn_array; +// PDUSessionResourceFailedToSetupListSURes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemSURes +using pdu_session_res_failed_to_setup_list_su_res_l = dyn_array; -// QosFlowModifyConfirmList ::= SEQUENCE (SIZE (1..64)) OF QosFlowModifyConfirmItem -using qos_flow_modify_confirm_list_l = dyn_array; +// PDUSessionResourceListCxtRelCpl ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemCxtRelCpl +using pdu_session_res_list_cxt_rel_cpl_l = dyn_array; -// QosFlowNotifyList ::= SEQUENCE (SIZE (1..64)) OF QosFlowNotifyItem -using qos_flow_notify_list_l = dyn_array; +// PDUSessionResourceListCxtRelReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemCxtRelReq +using pdu_session_res_list_cxt_rel_req_l = dyn_array; -// SecondaryRATDataUsageReportTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o secondary_rat_data_usage_report_transfer_ext_ies_o; +// PDUSessionResourceModifyListModCfm ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModCfm +using pdu_session_res_modify_list_mod_cfm_l = dyn_array; -typedef protocol_ext_container_empty_l slice_overload_item_ext_ies_container; +// PDUSessionResourceModifyListModInd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModInd +using pdu_session_res_modify_list_mod_ind_l = dyn_array; -// SliceOverloadItem ::= SEQUENCE -struct slice_overload_item_s { - bool ext = false; - bool ie_exts_present = false; - s_nssai_s s_nssai; - slice_overload_item_ext_ies_container ie_exts; - // ... +// PDUSessionResourceModifyListModReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModReq +using pdu_session_res_modify_list_mod_req_l = dyn_array; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceModifyListModRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModRes +using pdu_session_res_modify_list_mod_res_l = dyn_array; -// UE-associatedLogicalNG-connectionItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_associated_lc_ng_conn_item_ext_ies_o; +// PDUSessionResourceNotifyList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceNotifyItem +using pdu_session_res_notify_list_l = dyn_array; + +// PDUSessionResourceReleasedListNot ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemNot +using pdu_session_res_released_list_not_l = dyn_array; -typedef protocol_ext_container_empty_l user_plane_security_info_ext_ies_container; +// PDUSessionResourceReleasedListPSAck ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemPSAck +using pdu_session_res_released_list_ps_ack_l = dyn_array; -// UserPlaneSecurityInformation ::= SEQUENCE -struct user_plane_security_info_s { - bool ext = false; - bool ie_exts_present = false; - security_result_s security_result; - security_ind_s security_ind; - user_plane_security_info_ext_ies_container ie_exts; - // ... +// PDUSessionResourceReleasedListPSFail ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemPSFail +using pdu_session_res_released_list_ps_fail_l = dyn_array; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// PDUSessionResourceReleasedListRelRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemRelRes +using pdu_session_res_released_list_rel_res_l = dyn_array; -// OverloadResponse ::= CHOICE -struct overload_resp_c { +// PDUSessionResourceSecondaryRATUsageList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSecondaryRATUsageItem +using pdu_session_res_secondary_ratusage_list_l = dyn_array; + +// PDUSessionResourceSetupListSUReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemSUReq +using pdu_session_res_setup_list_su_req_l = dyn_array; + +// PDUSessionResourceSetupListSURes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemSURes +using pdu_session_res_setup_list_su_res_l = dyn_array; + +// PDUSessionResourceSwitchedList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSwitchedItem +using pdu_session_res_switched_list_l = dyn_array; + +// PDUSessionResourceToBeSwitchedDLList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToBeSwitchedDLItem +using pdu_session_res_to_be_switched_dl_list_l = dyn_array; + +// PDUSessionResourceToReleaseListRelCmd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToReleaseItemRelCmd +using pdu_session_res_to_release_list_rel_cmd_l = dyn_array; + +// PWSFailedCellIDList ::= CHOICE +struct pws_failed_cell_id_list_c { struct types_opts { - enum options { overload_action, choice_exts, nulltype } value; + enum options { eutra_cgi_pws_failed_list, nr_cgi_pws_failed_list, choice_exts, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - overload_resp_c() = default; - overload_resp_c(const overload_resp_c& other); - overload_resp_c& operator=(const overload_resp_c& other); - ~overload_resp_c() { destroy_(); } + pws_failed_cell_id_list_c() = default; + pws_failed_cell_id_list_c(const pws_failed_cell_id_list_c& other); + pws_failed_cell_id_list_c& operator=(const pws_failed_cell_id_list_c& other); + ~pws_failed_cell_id_list_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - overload_action_e& overload_action() + eutra_cgi_list_l& eutra_cgi_pws_failed_list() { - assert_choice_type("overloadAction", type_.to_string(), "OverloadResponse"); - return c.get(); + assert_choice_type(types::eutra_cgi_pws_failed_list, type_, "PWSFailedCellIDList"); + return c.get(); } - protocol_ie_single_container_s& choice_exts() + nr_cgi_list_l& nr_cgi_pws_failed_list() { - assert_choice_type("choice-Extensions", type_.to_string(), "OverloadResponse"); - return c.get >(); + assert_choice_type(types::nr_cgi_pws_failed_list, type_, "PWSFailedCellIDList"); + return c.get(); } - const overload_action_e& overload_action() const + protocol_ie_single_container_s& choice_exts() { - assert_choice_type("overloadAction", type_.to_string(), "OverloadResponse"); - return c.get(); + assert_choice_type(types::choice_exts, type_, "PWSFailedCellIDList"); + return c.get >(); } - const protocol_ie_single_container_s& choice_exts() const + const eutra_cgi_list_l& eutra_cgi_pws_failed_list() const { - assert_choice_type("choice-Extensions", type_.to_string(), "OverloadResponse"); - return c.get >(); + assert_choice_type(types::eutra_cgi_pws_failed_list, type_, "PWSFailedCellIDList"); + return c.get(); } - overload_action_e& set_overload_action() + const nr_cgi_list_l& nr_cgi_pws_failed_list() const { - set(types::overload_action); - return c.get(); + assert_choice_type(types::nr_cgi_pws_failed_list, type_, "PWSFailedCellIDList"); + return c.get(); } - protocol_ie_single_container_s& set_choice_exts() + const protocol_ie_single_container_s& choice_exts() const { - set(types::choice_exts); - return c.get >(); + assert_choice_type(types::choice_exts, type_, "PWSFailedCellIDList"); + return c.get >(); } + eutra_cgi_list_l& set_eutra_cgi_pws_failed_list(); + nr_cgi_list_l& set_nr_cgi_pws_failed_list(); + protocol_ie_single_container_s& set_choice_exts(); private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t > + c; void destroy_(); }; -// OverloadStartNSSAIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o overload_start_nssai_item_ext_ies_o; - -// PDUSessionResourceFailedToModifyItemModCfm-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_o; - -// PDUSessionResourceFailedToModifyItemModRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_modify_item_mod_res_ext_ies_o; - -// PDUSessionResourceFailedToSetupItemPSReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_ps_req_ext_ies_o; - -// PDUSessionResourceFailedToSetupItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_su_res_ext_ies_o; - -// PDUSessionResourceItemCxtRelCpl-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_item_cxt_rel_cpl_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { pdu_session_res_release_resp_transfer, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - types type() const { return types::pdu_session_res_release_resp_transfer; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - unbounded_octstring& pdu_session_res_release_resp_transfer() { return c; } - const unbounded_octstring& pdu_session_res_release_resp_transfer() const { return c; } - - private: - unbounded_octstring c; - }; +// PagingOrigin ::= ENUMERATED +struct paging_origin_opts { + enum options { non_minus3gpp, /*...*/ nulltype } value; + typedef int8_t number_type; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + const char* to_string() const; + int8_t to_number() const; }; +typedef enumerated paging_origin_e; -// PDUSessionResourceItemCxtRelReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_item_cxt_rel_req_ext_ies_o; - -typedef protocol_ext_container_empty_l pdu_session_res_modify_confirm_transfer_ext_ies_container; - -// PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE -struct pdu_session_res_modify_confirm_transfer_s { - bool ext = false; - bool add_ng_uuptnl_info_present = false; - bool qos_flow_failed_to_modify_list_present = false; - bool ie_exts_present = false; - qos_flow_modify_confirm_list_l qos_flow_modify_confirm_list; - up_transport_layer_info_c ulngu_up_tnl_info; - up_transport_layer_info_pair_list_l add_ng_uuptnl_info; - qos_flow_list_with_cause_l qos_flow_failed_to_modify_list; - pdu_session_res_modify_confirm_transfer_ext_ies_container ie_exts; - // ... +// PagingPriority ::= ENUMERATED +struct paging_prio_opts { + enum options { + priolevel1, + priolevel2, + priolevel3, + priolevel4, + priolevel5, + priolevel6, + priolevel7, + priolevel8, + // ... + nulltype + } value; + typedef uint8_t number_type; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; + uint8_t to_number() const; }; +typedef enumerated paging_prio_e; -struct pdu_session_res_modify_ind_transfer_ext_ies_container { - template - using ie_field_s = protocol_ext_container_item_s; - - // member variables - bool secondary_ratusage_info_present = false; - bool security_result_present = false; - ie_field_s secondary_ratusage_info; - ie_field_s security_result; +// PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} +template +struct private_ie_field_s { + private_ie_id_c id; + crit_e crit; + typename ies_set_paramT_::value_c value; - // sequence methods - pdu_session_res_modify_ind_transfer_ext_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE -struct pdu_session_res_modify_ind_transfer_s { - bool ext = false; - bool add_dl_qos_flow_per_tnl_info_present = false; - bool ie_exts_present = false; - qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; - qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; - pdu_session_res_modify_ind_transfer_ext_ies_container ie_exts; - // ... +// RRCState ::= ENUMERATED +struct rrc_state_opts { + enum options { inactive, connected, /*...*/ nulltype } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated rrc_state_e; -typedef protocol_ext_container_empty_l pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_container; +// ResetType ::= CHOICE +struct reset_type_c { + struct types_opts { + enum options { ng_interface, part_of_ng_interface, choice_exts, nulltype } value; -// PDUSessionResourceModifyIndicationUnsuccessfulTransfer ::= SEQUENCE -struct pdu_session_res_modify_ind_unsuccessful_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods + // choice methods + reset_type_c() = default; + reset_type_c(const reset_type_c& other); + reset_type_c& operator=(const reset_type_c& other); + ~reset_type_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; -}; - -// PDUSessionResourceModifyItemModCfm-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_item_mod_cfm_ext_ies_o; - -// PDUSessionResourceModifyItemModInd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_item_mod_ind_ext_ies_o; - -// PDUSessionResourceModifyItemModReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -struct pdu_session_res_modify_item_mod_req_ext_ies_o { - // Extension ::= OPEN TYPE - struct ext_c { - struct types_opts { - enum options { s_nssai, nulltype } value; + // getters + reset_all_e& ng_interface() + { + assert_choice_type(types::ng_interface, type_, "ResetType"); + return c.get(); + } + ue_associated_lc_ng_conn_list_l& part_of_ng_interface() + { + assert_choice_type(types::part_of_ng_interface, type_, "ResetType"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "ResetType"); + return c.get >(); + } + const reset_all_e& ng_interface() const + { + assert_choice_type(types::ng_interface, type_, "ResetType"); + return c.get(); + } + const ue_associated_lc_ng_conn_list_l& part_of_ng_interface() const + { + assert_choice_type(types::part_of_ng_interface, type_, "ResetType"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "ResetType"); + return c.get >(); + } + reset_all_e& set_ng_interface(); + ue_associated_lc_ng_conn_list_l& set_part_of_ng_interface(); + protocol_ie_single_container_s& set_choice_exts(); - std::string to_string() const; - }; - typedef enumerated types; +private: + types type_; + choice_buffer_t, ue_associated_lc_ng_conn_list_l> c; - // choice methods - types type() const { return types::s_nssai; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - s_nssai_s& s_nssai() { return c; } - const s_nssai_s& s_nssai() const { return c; } + void destroy_(); +}; - private: - s_nssai_s c; - }; +// SupportedTAList ::= SEQUENCE (SIZE (1..256)) OF SupportedTAItem +using supported_ta_list_l = dyn_array; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static ext_c get_ext(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; +// TAIListForPaging ::= SEQUENCE (SIZE (1..16)) OF TAIListForPagingItem +using tai_list_for_paging_l = dyn_array; -// PDUSessionResourceModifyItemModRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_modify_item_mod_res_ext_ies_o; +// TAIListForRestart ::= SEQUENCE (SIZE (1..2048)) OF TAI +using tai_list_for_restart_l = dyn_array; -struct pdu_session_res_modify_request_transfer_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// UE-NGAP-IDs ::= CHOICE +struct ue_ngap_ids_c { + struct types_opts { + enum options { ue_ngap_id_pair, amf_ue_ngap_id, choice_exts, nulltype } value; - // member variables - bool pdu_session_aggregate_maximum_bit_rate_present = false; - bool ul_ngu_up_tnl_modify_list_present = false; - bool network_instance_present = false; - bool qos_flow_add_or_modify_request_list_present = false; - bool qos_flow_to_release_list_present = false; - bool add_ul_ngu_up_tnl_info_present = false; - ie_field_s pdu_session_aggregate_maximum_bit_rate; - ie_field_s > ul_ngu_up_tnl_modify_list; - ie_field_s > network_instance; - ie_field_s > qos_flow_add_or_modify_request_list; - ie_field_s > qos_flow_to_release_list; - ie_field_s > add_ul_ngu_up_tnl_info; + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - pdu_session_res_modify_request_transfer_ies_container(); + // choice methods + ue_ngap_ids_c() = default; + ue_ngap_ids_c(const ue_ngap_ids_c& other); + ue_ngap_ids_c& operator=(const ue_ngap_ids_c& other); + ~ue_ngap_ids_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; -}; - -// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE -struct pdu_session_res_modify_request_transfer_s { - bool ext = false; - pdu_session_res_modify_request_transfer_ies_container protocol_ies; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE -struct pdu_session_res_modify_resp_transfer_s { - bool ext = false; - bool dl_ngu_up_tnl_info_present = false; - bool ul_ngu_up_tnl_info_present = false; - bool qos_flow_add_or_modify_resp_list_present = false; - bool add_dl_qos_flow_per_tnl_info_present = false; - bool qos_flow_failed_to_add_or_modify_list_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c dl_ngu_up_tnl_info; - up_transport_layer_info_c ul_ngu_up_tnl_info; - qos_flow_add_or_modify_resp_list_l qos_flow_add_or_modify_resp_list; - qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; - qos_flow_list_with_cause_l qos_flow_failed_to_add_or_modify_list; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -typedef protocol_ext_container_empty_l pdu_session_res_modify_unsuccessful_transfer_ext_ies_container; - -// PDUSessionResourceModifyUnsuccessfulTransfer ::= SEQUENCE -struct pdu_session_res_modify_unsuccessful_transfer_s { - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - pdu_session_res_modify_unsuccessful_transfer_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_notify_item_ext_ies_o; - -// PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE -struct pdu_session_res_notify_released_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceNotifyTransfer ::= SEQUENCE -struct pdu_session_res_notify_transfer_s { - bool ext = false; - bool qos_flow_notify_list_present = false; - bool qos_flow_released_list_present = false; - bool ie_exts_present = false; - qos_flow_notify_list_l qos_flow_notify_list; - qos_flow_list_with_cause_l qos_flow_released_list; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -typedef protocol_ext_container_empty_l pdu_session_res_release_cmd_transfer_ext_ies_container; - -// PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE -struct pdu_session_res_release_cmd_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - pdu_session_res_release_cmd_transfer_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceReleasedItemNot-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_released_item_not_ext_ies_o; - -// PDUSessionResourceReleasedItemPSAck-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_released_item_ps_ack_ext_ies_o; - -// PDUSessionResourceReleasedItemPSFail-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_released_item_ps_fail_ext_ies_o; - -// PDUSessionResourceReleasedItemRelRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_released_item_rel_res_ext_ies_o; - -// PDUSessionResourceSecondaryRATUsageItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_secondary_ratusage_item_ext_ies_o; - -// PDUSessionResourceSetupItemSUReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_su_req_ext_ies_o; - -// PDUSessionResourceSetupItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_su_res_ext_ies_o; - -// PDUSessionResourceSwitchedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_switched_item_ext_ies_o; - -// PDUSessionResourceToBeSwitchedDLItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_to_be_switched_dl_item_ext_ies_o; - -// PDUSessionResourceToReleaseItemRelCmd-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_to_release_item_rel_cmd_ext_ies_o; - -// PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE -struct path_switch_request_ack_transfer_s { - bool ext = false; - bool ul_ngu_up_tnl_info_present = false; - bool security_ind_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c ul_ngu_up_tnl_info; - security_ind_s security_ind; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -typedef protocol_ext_container_empty_l path_switch_request_setup_failed_transfer_ext_ies_container; - -// PathSwitchRequestSetupFailedTransfer ::= SEQUENCE -struct path_switch_request_setup_failed_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - path_switch_request_setup_failed_transfer_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PathSwitchRequestTransfer ::= SEQUENCE -struct path_switch_request_transfer_s { - bool ext = false; - bool dl_ngu_tnl_info_reused_present = false; - bool user_plane_security_info_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c dl_ngu_up_tnl_info; - dl_ngu_tnl_info_reused_e dl_ngu_tnl_info_reused; - user_plane_security_info_s user_plane_security_info; - qos_flow_accepted_list_l qos_flow_accepted_list; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -typedef protocol_ext_container_empty_l path_switch_request_unsuccessful_transfer_ext_ies_container; + // getters + ue_ngap_id_pair_s& ue_ngap_id_pair() + { + assert_choice_type(types::ue_ngap_id_pair, type_, "UE-NGAP-IDs"); + return c.get(); + } + uint64_t& amf_ue_ngap_id() + { + assert_choice_type(types::amf_ue_ngap_id, type_, "UE-NGAP-IDs"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "UE-NGAP-IDs"); + return c.get >(); + } + const ue_ngap_id_pair_s& ue_ngap_id_pair() const + { + assert_choice_type(types::ue_ngap_id_pair, type_, "UE-NGAP-IDs"); + return c.get(); + } + const uint64_t& amf_ue_ngap_id() const + { + assert_choice_type(types::amf_ue_ngap_id, type_, "UE-NGAP-IDs"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "UE-NGAP-IDs"); + return c.get >(); + } + ue_ngap_id_pair_s& set_ue_ngap_id_pair(); + uint64_t& set_amf_ue_ngap_id(); + protocol_ie_single_container_s& set_choice_exts(); -// PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE -struct path_switch_request_unsuccessful_transfer_s { - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - path_switch_request_unsuccessful_transfer_ext_ies_container ie_exts; - // ... +private: + types type_; + choice_buffer_t, ue_ngap_id_pair_s> c; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + void destroy_(); }; -// PrivateIE-ID ::= CHOICE -struct private_ie_id_c { +// UEPagingIdentity ::= CHOICE +struct ue_paging_id_c { struct types_opts { - enum options { local, global, nulltype } value; + enum options { five_g_s_tmsi, choice_exts, nulltype } value; + typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; + uint8_t to_number() const; }; typedef enumerated types; // choice methods - private_ie_id_c() = default; - private_ie_id_c(const private_ie_id_c& other); - private_ie_id_c& operator=(const private_ie_id_c& other); - ~private_ie_id_c() { destroy_(); } + ue_paging_id_c() = default; + ue_paging_id_c(const ue_paging_id_c& other); + ue_paging_id_c& operator=(const ue_paging_id_c& other); + ~ue_paging_id_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint32_t& local() + five_g_s_tmsi_s& five_g_s_tmsi() + { + assert_choice_type(types::five_g_s_tmsi, type_, "UEPagingIdentity"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() { - assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); - return c.get(); + assert_choice_type(types::choice_exts, type_, "UEPagingIdentity"); + return c.get >(); } - const uint32_t& local() const + const five_g_s_tmsi_s& five_g_s_tmsi() const { - assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); - return c.get(); + assert_choice_type(types::five_g_s_tmsi, type_, "UEPagingIdentity"); + return c.get(); } - uint32_t& set_local() + const protocol_ie_single_container_s& choice_exts() const { - set(types::local); - return c.get(); + assert_choice_type(types::choice_exts, type_, "UEPagingIdentity"); + return c.get >(); } + five_g_s_tmsi_s& set_five_g_s_tmsi(); + protocol_ie_single_container_s& set_choice_exts(); private: - types type_; - pod_choice_buffer_t c; + types type_; + choice_buffer_t > c; void destroy_(); }; -typedef protocol_ext_container_empty_l secondary_rat_data_usage_report_transfer_ext_ies_container; +// UEPresenceInAreaOfInterestList ::= SEQUENCE (SIZE (1..64)) OF UEPresenceInAreaOfInterestItem +using ue_presence_in_area_of_interest_list_l = dyn_array; -// SecondaryRATDataUsageReportTransfer ::= SEQUENCE -struct secondary_rat_data_usage_report_transfer_s { - bool ext = false; - bool secondary_ratusage_info_present = false; - bool ie_exts_present = false; - secondary_ratusage_info_s secondary_ratusage_info; - secondary_rat_data_usage_report_transfer_ext_ies_container ie_exts; - // ... +// UERetentionInformation ::= ENUMERATED +struct ue_retention_info_opts { + enum options { ues_retained, /*...*/ nulltype } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated ue_retention_info_e; -// SliceOverloadList ::= SEQUENCE (SIZE (1..1024)) OF SliceOverloadItem -using slice_overload_list_l = dyn_array; - -// SupportedTAItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o supported_ta_item_ext_ies_o; - -// TAIListForPagingItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o tai_list_for_paging_item_ext_ies_o; - -// UE-NGAP-ID-pair-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_ngap_id_pair_ext_ies_o; - -typedef protocol_ext_container_empty_l ue_associated_lc_ng_conn_item_ext_ies_container; +// WarningAreaList ::= CHOICE +struct warning_area_list_c { + struct types_opts { + enum options { + eutra_cgi_list_for_warning, + nr_cgi_list_for_warning, + tai_list_for_warning, + emergency_area_id_list, + choice_exts, + nulltype + } value; -// UE-associatedLogicalNG-connectionItem ::= SEQUENCE -struct ue_associated_lc_ng_conn_item_s { - bool ext = false; - bool amf_ue_ngap_id_present = false; - bool ran_ue_ngap_id_present = false; - bool ie_exts_present = false; - uint64_t amf_ue_ngap_id = 0; - uint64_t ran_ue_ngap_id = 0; - ue_associated_lc_ng_conn_item_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods + // choice methods + warning_area_list_c() = default; + warning_area_list_c(const warning_area_list_c& other); + warning_area_list_c& operator=(const warning_area_list_c& other); + ~warning_area_list_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; -}; + // getters + eutra_cgi_list_for_warning_l& eutra_cgi_list_for_warning() + { + assert_choice_type(types::eutra_cgi_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + nr_cgi_list_for_warning_l& nr_cgi_list_for_warning() + { + assert_choice_type(types::nr_cgi_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + tai_list_for_warning_l& tai_list_for_warning() + { + assert_choice_type(types::tai_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + emergency_area_id_list_l& emergency_area_id_list() + { + assert_choice_type(types::emergency_area_id_list, type_, "WarningAreaList"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "WarningAreaList"); + return c.get >(); + } + const eutra_cgi_list_for_warning_l& eutra_cgi_list_for_warning() const + { + assert_choice_type(types::eutra_cgi_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + const nr_cgi_list_for_warning_l& nr_cgi_list_for_warning() const + { + assert_choice_type(types::nr_cgi_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + const tai_list_for_warning_l& tai_list_for_warning() const + { + assert_choice_type(types::tai_list_for_warning, type_, "WarningAreaList"); + return c.get(); + } + const emergency_area_id_list_l& emergency_area_id_list() const + { + assert_choice_type(types::emergency_area_id_list, type_, "WarningAreaList"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "WarningAreaList"); + return c.get >(); + } + eutra_cgi_list_for_warning_l& set_eutra_cgi_list_for_warning(); + nr_cgi_list_for_warning_l& set_nr_cgi_list_for_warning(); + tai_list_for_warning_l& set_tai_list_for_warning(); + emergency_area_id_list_l& set_emergency_area_id_list(); + protocol_ie_single_container_s& set_choice_exts(); -// UEPresence ::= ENUMERATED -struct ue_presence_opts { - enum options { in, out, unknown, /*...*/ nulltype } value; +private: + types type_; + choice_buffer_t, + tai_list_for_warning_l> + c; - std::string to_string() const; + void destroy_(); }; -typedef enumerated ue_presence_e; - -// UEPresenceInAreaOfInterestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o ue_presence_in_area_of_interest_item_ext_ies_o; - -// NR-CGIListForWarning ::= SEQUENCE (SIZE (1..65535)) OF NR-CGI -using nr_cgi_list_for_warning_l = dyn_array; -typedef protocol_ext_container_empty_l overload_start_nssai_item_ext_ies_container; +// LocationReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct location_report_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + user_location_info, + ue_presence_in_area_of_interest_list, + location_report_request_type, + ps_cell_info, + nulltype + } value; -// OverloadStartNSSAIItem ::= SEQUENCE -struct overload_start_nssai_item_s { - bool ext = false; - bool slice_overload_resp_present = false; - bool slice_traffic_load_reduction_ind_present = false; - bool ie_exts_present = false; - slice_overload_list_l slice_overload_list; - overload_resp_c slice_overload_resp; - uint8_t slice_traffic_load_reduction_ind = 1; - overload_start_nssai_item_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + user_location_info_c& user_location_info(); + ue_presence_in_area_of_interest_list_l& ue_presence_in_area_of_interest_list(); + location_report_request_type_s& location_report_request_type(); + ngran_cgi_c& ps_cell_info(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const user_location_info_c& user_location_info() const; + const ue_presence_in_area_of_interest_list_l& ue_presence_in_area_of_interest_list() const; + const location_report_request_type_s& location_report_request_type() const; + const ngran_cgi_c& ps_cell_info() const; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_container; + private: + types type_; + choice_buffer_t + c; -// PDUSessionResourceFailedToModifyItemModCfm ::= SEQUENCE -struct pdu_session_res_failed_to_modify_item_mod_cfm_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_ind_unsuccessful_transfer; - pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_modify_item_mod_res_ext_ies_container; +// LocationReportingControlIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct location_report_ctrl_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { amf_ue_ngap_id, ran_ue_ngap_id, location_report_request_type, nulltype } value; -// PDUSessionResourceFailedToModifyItemModRes ::= SEQUENCE -struct pdu_session_res_failed_to_modify_item_mod_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_unsuccessful_transfer; - pdu_session_res_failed_to_modify_item_mod_res_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + location_report_request_type_s& location_report_request_type(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const location_report_request_type_s& location_report_request_type() const; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_ps_req_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceFailedToSetupItemPSReq ::= SEQUENCE -struct pdu_session_res_failed_to_setup_item_ps_req_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_setup_failed_transfer; - pdu_session_res_failed_to_setup_item_ps_req_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_su_res_ext_ies_container; +// LocationReportingFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct location_report_fail_ind_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, nulltype } value; -// PDUSessionResourceFailedToSetupItemSURes ::= SEQUENCE -struct pdu_session_res_failed_to_setup_item_su_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - pdu_session_res_failed_to_setup_item_su_res_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE -struct pdu_session_res_item_cxt_rel_cpl_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - protocol_ext_container_l ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + cause_c& cause(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const cause_c& cause() const; -typedef protocol_ext_container_empty_l pdu_session_res_item_cxt_rel_req_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceItemCxtRelReq ::= SEQUENCE -struct pdu_session_res_item_cxt_rel_req_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - pdu_session_res_item_cxt_rel_req_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_modify_item_mod_cfm_ext_ies_container; - -// PDUSessionResourceModifyItemModCfm ::= SEQUENCE -struct pdu_session_res_modify_item_mod_cfm_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_confirm_transfer; - pdu_session_res_modify_item_mod_cfm_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// NASNonDeliveryIndication-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct nas_non_delivery_ind_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { amf_ue_ngap_id, ran_ue_ngap_id, nas_pdu, cause, nulltype } value; -typedef protocol_ext_container_empty_l pdu_session_res_modify_item_mod_ind_ext_ies_container; + const char* to_string() const; + }; + typedef enumerated types; -// PDUSessionResourceModifyItemModInd ::= SEQUENCE -struct pdu_session_res_modify_item_mod_ind_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_ind_transfer; - pdu_session_res_modify_item_mod_ind_ext_ies_container ie_exts; - // ... + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& nas_pdu(); + cause_c& cause(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& nas_pdu() const; + const cause_c& cause() const; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + private: + types type_; + choice_buffer_t > c; -// PDUSessionResourceModifyItemModReq ::= SEQUENCE -struct pdu_session_res_modify_item_mod_req_s { - bool ext = false; - bool nas_pdu_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring nas_pdu; - unbounded_octstring pdu_session_res_modify_request_transfer; - protocol_ext_container_l ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_modify_item_mod_res_ext_ies_container; +// NGResetAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ng_reset_ack_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { ue_associated_lc_ng_conn_list, crit_diagnostics, nulltype } value; -// PDUSessionResourceModifyItemModRes ::= SEQUENCE -struct pdu_session_res_modify_item_mod_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_resp_transfer; - pdu_session_res_modify_item_mod_res_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list(); + crit_diagnostics_s& crit_diagnostics(); + const ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list() const; + const crit_diagnostics_s& crit_diagnostics() const; -typedef protocol_ext_container_empty_l pdu_session_res_notify_item_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceNotifyItem ::= SEQUENCE -struct pdu_session_res_notify_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_notify_transfer; - pdu_session_res_notify_item_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_released_item_not_ext_ies_container; +// NGResetIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ng_reset_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { cause, reset_type, nulltype } value; -// PDUSessionResourceReleasedItemNot ::= SEQUENCE -struct pdu_session_res_released_item_not_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_notify_released_transfer; - pdu_session_res_released_item_not_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + cause_c& cause(); + reset_type_c& reset_type(); + const cause_c& cause() const; + const reset_type_c& reset_type() const; -typedef protocol_ext_container_empty_l pdu_session_res_released_item_ps_ack_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceReleasedItemPSAck ::= SEQUENCE -struct pdu_session_res_released_item_ps_ack_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_unsuccessful_transfer; - pdu_session_res_released_item_ps_ack_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_released_item_ps_fail_ext_ies_container; +// NGSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ng_setup_fail_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; -// PDUSessionResourceReleasedItemPSFail ::= SEQUENCE -struct pdu_session_res_released_item_ps_fail_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_unsuccessful_transfer; - pdu_session_res_released_item_ps_fail_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + cause_c& cause(); + time_to_wait_e& time_to_wait(); + crit_diagnostics_s& crit_diagnostics(); + const cause_c& cause() const; + const time_to_wait_e& time_to_wait() const; + const crit_diagnostics_s& crit_diagnostics() const; -typedef protocol_ext_container_empty_l pdu_session_res_released_item_rel_res_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceReleasedItemRelRes ::= SEQUENCE -struct pdu_session_res_released_item_rel_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_release_resp_transfer; - pdu_session_res_released_item_rel_res_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_secondary_ratusage_item_ext_ies_container; +// NGSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ng_setup_request_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + global_ran_node_id, + ran_node_name, + supported_ta_list, + default_paging_drx, + ue_retention_info, + nulltype + } value; -// PDUSessionResourceSecondaryRATUsageItem ::= SEQUENCE -struct pdu_session_res_secondary_ratusage_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring secondary_rat_data_usage_report_transfer; - pdu_session_res_secondary_ratusage_item_ext_ies_container ie_exts; - // ... + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + global_ran_node_id_c& global_ran_node_id(); + printable_string<1, 150, true, true>& ran_node_name(); + supported_ta_list_l& supported_ta_list(); + paging_drx_e& default_paging_drx(); + ue_retention_info_e& ue_retention_info(); + const global_ran_node_id_c& global_ran_node_id() const; + const printable_string<1, 150, true, true>& ran_node_name() const; + const supported_ta_list_l& supported_ta_list() const; + const paging_drx_e& default_paging_drx() const; + const ue_retention_info_e& ue_retention_info() const; -typedef protocol_ext_container_empty_l pdu_session_res_setup_item_su_req_ext_ies_container; + private: + types type_; + choice_buffer_t, supported_ta_list_l> c; -// PDUSessionResourceSetupItemSUReq ::= SEQUENCE -struct pdu_session_res_setup_item_su_req_s { - bool ext = false; - bool pdu_session_nas_pdu_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_nas_pdu; - s_nssai_s s_nssai; - unbounded_octstring pdu_session_res_setup_request_transfer; - pdu_session_res_setup_item_su_req_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_setup_item_su_res_ext_ies_container; +// NGSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ng_setup_resp_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_name, + served_guami_list, + relative_amf_capacity, + plmn_support_list, + crit_diagnostics, + ue_retention_info, + nulltype + } value; + typedef uint8_t number_type; -// PDUSessionResourceSetupItemSURes ::= SEQUENCE -struct pdu_session_res_setup_item_su_res_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_resp_transfer; - pdu_session_res_setup_item_su_res_ext_ies_container ie_exts; - // ... + const char* to_string() const; + uint8_t to_number() const; + }; + typedef enumerated types; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + printable_string<1, 150, true, true>& amf_name(); + served_guami_list_l& served_guami_list(); + uint16_t& relative_amf_capacity(); + plmn_support_list_l& plmn_support_list(); + crit_diagnostics_s& crit_diagnostics(); + ue_retention_info_e& ue_retention_info(); + const printable_string<1, 150, true, true>& amf_name() const; + const served_guami_list_l& served_guami_list() const; + const uint16_t& relative_amf_capacity() const; + const plmn_support_list_l& plmn_support_list() const; + const crit_diagnostics_s& crit_diagnostics() const; + const ue_retention_info_e& ue_retention_info() const; -typedef protocol_ext_container_empty_l pdu_session_res_switched_item_ext_ies_container; + private: + types type_; + choice_buffer_t, served_guami_list_l> + c; -// PDUSessionResourceSwitchedItem ::= SEQUENCE -struct pdu_session_res_switched_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_ack_transfer; - pdu_session_res_switched_item_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l pdu_session_res_to_be_switched_dl_item_ext_ies_container; - -// PDUSessionResourceToBeSwitchedDLItem ::= SEQUENCE -struct pdu_session_res_to_be_switched_dl_item_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_transfer; - pdu_session_res_to_be_switched_dl_item_ext_ies_container ie_exts; - // ... +// OverloadStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct overload_start_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { amf_overload_resp, amf_traffic_load_reduction_ind, overload_start_nssai_list, nulltype } value; + typedef uint8_t number_type; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + const char* to_string() const; + uint8_t to_number() const; + }; + typedef enumerated types; -typedef protocol_ext_container_empty_l pdu_session_res_to_release_item_rel_cmd_ext_ies_container; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + overload_resp_c& amf_overload_resp(); + uint8_t& amf_traffic_load_reduction_ind(); + overload_start_nssai_list_l& overload_start_nssai_list(); + const overload_resp_c& amf_overload_resp() const; + const uint8_t& amf_traffic_load_reduction_ind() const; + const overload_start_nssai_list_l& overload_start_nssai_list() const; -// PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE -struct pdu_session_res_to_release_item_rel_cmd_s { - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_release_cmd_transfer; - pdu_session_res_to_release_item_rel_cmd_ext_ies_container ie_exts; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PWSFailedCellIDList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o pws_failed_cell_id_list_ext_ies_o; - -// ResetAll ::= ENUMERATED -struct reset_all_opts { - enum options { reset_all, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated reset_all_e; - -// ResetType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o reset_type_ext_ies_o; - -typedef protocol_ext_container_empty_l supported_ta_item_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// SupportedTAItem ::= SEQUENCE -struct supported_ta_item_s { - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> tac; - broadcast_plmn_list_l broadcast_plmn_list; - supported_ta_item_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef protocol_ext_container_empty_l tai_list_for_paging_item_ext_ies_container; +// OverloadStopIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using overload_stop_ies_o = ngap_protocol_ies_empty_o; -// TAIListForPagingItem ::= SEQUENCE -struct tai_list_for_paging_item_s { - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - tai_list_for_paging_item_ext_ies_container ie_exts; - // ... +// PDUSessionResourceModifyConfirmIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_modify_confirm_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_modify_list_mod_cfm, + pdu_session_res_failed_to_modify_list_mod_cfm, + crit_diagnostics, + nulltype + } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + const char* to_string() const; + }; + typedef enumerated types; -// TAIListForWarning ::= SEQUENCE (SIZE (1..65535)) OF TAI -using tai_list_for_warning_l = dyn_array; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_modify_list_mod_cfm_l& pdu_session_res_modify_list_mod_cfm(); + pdu_session_res_failed_to_modify_list_mod_cfm_l& pdu_session_res_failed_to_modify_list_mod_cfm(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_modify_list_mod_cfm_l& pdu_session_res_modify_list_mod_cfm() const; + const pdu_session_res_failed_to_modify_list_mod_cfm_l& pdu_session_res_failed_to_modify_list_mod_cfm() const; + const crit_diagnostics_s& crit_diagnostics() const; -typedef protocol_ext_container_empty_l ue_ngap_id_pair_ext_ies_container; + private: + types type_; + choice_buffer_t + c; -// UE-NGAP-ID-pair ::= SEQUENCE -struct ue_ngap_id_pair_s { - bool ext = false; - bool ie_exts_present = false; - uint64_t amf_ue_ngap_id = 0; - uint64_t ran_ue_ngap_id = 0; - ue_ngap_id_pair_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -// UE-NGAP-IDs-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o ue_ngap_ids_ext_ies_o; +// PDUSessionResourceModifyIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_modify_ind_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_modify_list_mod_ind, nulltype } value; -// UE-associatedLogicalNG-connectionList ::= SEQUENCE (SIZE (1..65536)) OF UE-associatedLogicalNG-connectionItem -using ue_associated_lc_ng_conn_list_l = dyn_array; + const char* to_string() const; + }; + typedef enumerated types; -// UEPagingIdentity-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o ue_paging_id_ext_ies_o; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_list_mod_ind(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_list_mod_ind() const; -typedef protocol_ext_container_empty_l ue_presence_in_area_of_interest_item_ext_ies_container; + private: + types type_; + choice_buffer_t c; -// UEPresenceInAreaOfInterestItem ::= SEQUENCE -struct ue_presence_in_area_of_interest_item_s { - bool ext = false; - bool ie_exts_present = false; - uint8_t location_report_ref_id = 1; - ue_presence_e uepresence; - ue_presence_in_area_of_interest_item_ext_ies_container ie_exts; - // ... + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -// WarningAreaList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o warning_area_list_ext_ies_o; - -// CancelAllWarningMessages ::= ENUMERATED -struct cancel_all_warning_msgs_opts { - enum options { true_value, /*...*/ nulltype } value; +// PDUSessionResourceModifyRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_modify_request_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + ran_paging_prio, + pdu_session_res_modify_list_mod_req, + nulltype + } value; - std::string to_string() const; -}; -typedef enumerated cancel_all_warning_msgs_e; + const char* to_string() const; + }; + typedef enumerated types; -// ConcurrentWarningMessageInd ::= ENUMERATED -struct concurrent_warning_msg_ind_opts { - enum options { true_value, /*...*/ nulltype } value; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + uint16_t& ran_paging_prio(); + pdu_session_res_modify_list_mod_req_l& pdu_session_res_modify_list_mod_req(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const uint16_t& ran_paging_prio() const; + const pdu_session_res_modify_list_mod_req_l& pdu_session_res_modify_list_mod_req() const; - std::string to_string() const; -}; -typedef enumerated concurrent_warning_msg_ind_e; + private: + types type_; + choice_buffer_t c; -// HandoverFlag ::= ENUMERATED -struct ho_flag_opts { - enum options { ho_prep, /*...*/ nulltype } value; + void destroy_(); + }; - std::string to_string() const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef enumerated ho_flag_e; -// IMSVoiceSupportIndicator ::= ENUMERATED -struct ims_voice_support_ind_opts { - enum options { supported, not_supported, /*...*/ nulltype } value; +// PDUSessionResourceModifyResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_modify_resp_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_modify_list_mod_res, + pdu_session_res_failed_to_modify_list_mod_res, + user_location_info, + crit_diagnostics, + nulltype + } value; - std::string to_string() const; -}; -typedef enumerated ims_voice_support_ind_e; + const char* to_string() const; + }; + typedef enumerated types; -// OverloadStartNSSAIList ::= SEQUENCE (SIZE (1..1024)) OF OverloadStartNSSAIItem -using overload_start_nssai_list_l = dyn_array; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_list_mod_res(); + pdu_session_res_failed_to_modify_list_mod_res_l& pdu_session_res_failed_to_modify_list_mod_res(); + user_location_info_c& user_location_info(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_list_mod_res() const; + const pdu_session_res_failed_to_modify_list_mod_res_l& pdu_session_res_failed_to_modify_list_mod_res() const; + const user_location_info_c& user_location_info() const; + const crit_diagnostics_s& crit_diagnostics() const; -// PDUSessionResourceFailedToModifyListModCfm ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToModifyItemModCfm -using pdu_session_res_failed_to_modify_list_mod_cfm_l = dyn_array; + private: + types type_; + choice_buffer_t + c; -// PDUSessionResourceFailedToModifyListModRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToModifyItemModRes -using pdu_session_res_failed_to_modify_list_mod_res_l = dyn_array; + void destroy_(); + }; -// PDUSessionResourceFailedToSetupListPSReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemPSReq -using pdu_session_res_failed_to_setup_list_ps_req_l = dyn_array; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; -// PDUSessionResourceFailedToSetupListSURes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceFailedToSetupItemSURes -using pdu_session_res_failed_to_setup_list_su_res_l = dyn_array; +// PDUSessionResourceNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_notify_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_notify_list, + pdu_session_res_released_list_not, + user_location_info, + nulltype + } value; -// PDUSessionResourceListCxtRelCpl ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemCxtRelCpl -using pdu_session_res_list_cxt_rel_cpl_l = dyn_array; + const char* to_string() const; + }; + typedef enumerated types; -// PDUSessionResourceListCxtRelReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceItemCxtRelReq -using pdu_session_res_list_cxt_rel_req_l = dyn_array; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_notify_list_l& pdu_session_res_notify_list(); + pdu_session_res_released_list_not_l& pdu_session_res_released_list_not(); + user_location_info_c& user_location_info(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_notify_list_l& pdu_session_res_notify_list() const; + const pdu_session_res_released_list_not_l& pdu_session_res_released_list_not() const; + const user_location_info_c& user_location_info() const; -// PDUSessionResourceModifyListModCfm ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModCfm -using pdu_session_res_modify_list_mod_cfm_l = dyn_array; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceModifyListModInd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModInd -using pdu_session_res_modify_list_mod_ind_l = dyn_array; + void destroy_(); + }; -// PDUSessionResourceModifyListModReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModReq -using pdu_session_res_modify_list_mod_req_l = dyn_array; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; -// PDUSessionResourceModifyListModRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceModifyItemModRes -using pdu_session_res_modify_list_mod_res_l = dyn_array; +// PDUSessionResourceReleaseCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_release_cmd_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + ran_paging_prio, + nas_pdu, + pdu_session_res_to_release_list_rel_cmd, + nulltype + } value; -// PDUSessionResourceNotifyList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceNotifyItem -using pdu_session_res_notify_list_l = dyn_array; + const char* to_string() const; + }; + typedef enumerated types; -// PDUSessionResourceReleasedListNot ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemNot -using pdu_session_res_released_list_not_l = dyn_array; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + uint16_t& ran_paging_prio(); + unbounded_octstring& nas_pdu(); + pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const uint16_t& ran_paging_prio() const; + const unbounded_octstring& nas_pdu() const; + const pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd() const; -// PDUSessionResourceReleasedListPSAck ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemPSAck -using pdu_session_res_released_list_ps_ack_l = dyn_array; + private: + types type_; + choice_buffer_t > c; -// PDUSessionResourceReleasedListPSFail ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemPSFail -using pdu_session_res_released_list_ps_fail_l = dyn_array; + void destroy_(); + }; -// PDUSessionResourceReleasedListRelRes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceReleasedItemRelRes -using pdu_session_res_released_list_rel_res_l = dyn_array; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; -// PDUSessionResourceSecondaryRATUsageList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSecondaryRATUsageItem -using pdu_session_res_secondary_ratusage_list_l = dyn_array; +// PDUSessionResourceReleaseResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_release_resp_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_released_list_rel_res, + user_location_info, + crit_diagnostics, + nulltype + } value; -// PDUSessionResourceSetupListSUReq ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemSUReq -using pdu_session_res_setup_list_su_req_l = dyn_array; + const char* to_string() const; + }; + typedef enumerated types; -// PDUSessionResourceSetupListSURes ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSetupItemSURes -using pdu_session_res_setup_list_su_res_l = dyn_array; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_released_list_rel_res_l& pdu_session_res_released_list_rel_res(); + user_location_info_c& user_location_info(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_released_list_rel_res_l& pdu_session_res_released_list_rel_res() const; + const user_location_info_c& user_location_info() const; + const crit_diagnostics_s& crit_diagnostics() const; -// PDUSessionResourceSwitchedList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceSwitchedItem -using pdu_session_res_switched_list_l = dyn_array; + private: + types type_; + choice_buffer_t c; -// PDUSessionResourceToBeSwitchedDLList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToBeSwitchedDLItem -using pdu_session_res_to_be_switched_dl_list_l = dyn_array; + void destroy_(); + }; -// PDUSessionResourceToReleaseListRelCmd ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceToReleaseItemRelCmd -using pdu_session_res_to_release_list_rel_cmd_l = dyn_array; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; -// PWSFailedCellIDList ::= CHOICE -struct pws_failed_cell_id_list_c { - struct types_opts { - enum options { eutra_cgi_pws_failed_list, nr_cgi_pws_failed_list, choice_exts, nulltype } value; +// PDUSessionResourceSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_setup_request_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + ran_paging_prio, + nas_pdu, + pdu_session_res_setup_list_su_req, + ue_aggregate_maximum_bit_rate, + nulltype + } value; - std::string to_string() const; - }; - typedef enumerated types; + const char* to_string() const; + }; + typedef enumerated types; - // choice methods - pws_failed_cell_id_list_c() = default; - pws_failed_cell_id_list_c(const pws_failed_cell_id_list_c& other); - pws_failed_cell_id_list_c& operator=(const pws_failed_cell_id_list_c& other); - ~pws_failed_cell_id_list_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - eutra_cgi_list_l& eutra_cgi_pws_failed_list() - { - assert_choice_type("eUTRA-CGI-PWSFailedList", type_.to_string(), "PWSFailedCellIDList"); - return c.get(); - } - nr_cgi_list_l& nr_cgi_pws_failed_list() - { - assert_choice_type("nR-CGI-PWSFailedList", type_.to_string(), "PWSFailedCellIDList"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "PWSFailedCellIDList"); - return c.get >(); - } - const eutra_cgi_list_l& eutra_cgi_pws_failed_list() const - { - assert_choice_type("eUTRA-CGI-PWSFailedList", type_.to_string(), "PWSFailedCellIDList"); - return c.get(); - } - const nr_cgi_list_l& nr_cgi_pws_failed_list() const - { - assert_choice_type("nR-CGI-PWSFailedList", type_.to_string(), "PWSFailedCellIDList"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "PWSFailedCellIDList"); - return c.get >(); - } - eutra_cgi_list_l& set_eutra_cgi_pws_failed_list() - { - set(types::eutra_cgi_pws_failed_list); - return c.get(); - } - nr_cgi_list_l& set_nr_cgi_pws_failed_list() - { - set(types::nr_cgi_pws_failed_list); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t > - c; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + uint16_t& ran_paging_prio(); + unbounded_octstring& nas_pdu(); + pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_list_su_req(); + ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const uint16_t& ran_paging_prio() const; + const unbounded_octstring& nas_pdu() const; + const pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_list_su_req() const; + const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; - void destroy_(); -}; + private: + types type_; + choice_buffer_t > c; -// PagingOrigin ::= ENUMERATED -struct paging_origin_opts { - enum options { non_minus3gpp, /*...*/ nulltype } value; - typedef int8_t number_type; + void destroy_(); + }; - std::string to_string() const; - int8_t to_number() const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef enumerated paging_origin_e; -// PagingPriority ::= ENUMERATED -struct paging_prio_opts { - enum options { - priolevel1, - priolevel2, - priolevel3, - priolevel4, - priolevel5, - priolevel6, - priolevel7, - priolevel8, - // ... - nulltype - } value; - typedef uint8_t number_type; +// PDUSessionResourceSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_setup_resp_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_setup_list_su_res, + pdu_session_res_failed_to_setup_list_su_res, + crit_diagnostics, + nulltype + } value; - std::string to_string() const; - uint8_t to_number() const; -}; -typedef enumerated paging_prio_e; + const char* to_string() const; + }; + typedef enumerated types; -// PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} -template -struct private_ie_field_s { - private_ie_id_c id; - crit_e crit; - typename ies_set_paramT_::value_c value; + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_list_su_res(); + pdu_session_res_failed_to_setup_list_su_res_l& pdu_session_res_failed_to_setup_list_su_res(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_list_su_res() const; + const pdu_session_res_failed_to_setup_list_su_res_l& pdu_session_res_failed_to_setup_list_su_res() const; + const crit_diagnostics_s& crit_diagnostics() const; - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + private: + types type_; + choice_buffer_t + c; -// RRCState ::= ENUMERATED -struct rrc_state_opts { - enum options { inactive, connected, /*...*/ nulltype } value; + void destroy_(); + }; - std::string to_string() const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -typedef enumerated rrc_state_e; -// ResetType ::= CHOICE -struct reset_type_c { - struct types_opts { - enum options { ng_interface, part_of_ng_interface, choice_exts, nulltype } value; +// PWSCancelRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pws_cancel_request_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { msg_id, serial_num, warning_area_list, cancel_all_warning_msgs, nulltype } value; - std::string to_string() const; - }; - typedef enumerated types; + const char* to_string() const; + }; + typedef enumerated types; - // choice methods - reset_type_c() = default; - reset_type_c(const reset_type_c& other); - reset_type_c& operator=(const reset_type_c& other); - ~reset_type_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - reset_all_e& ng_interface() - { - assert_choice_type("nG-Interface", type_.to_string(), "ResetType"); - return c.get(); - } - ue_associated_lc_ng_conn_list_l& part_of_ng_interface() - { - assert_choice_type("partOfNG-Interface", type_.to_string(), "ResetType"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "ResetType"); - return c.get >(); - } - const reset_all_e& ng_interface() const - { - assert_choice_type("nG-Interface", type_.to_string(), "ResetType"); - return c.get(); - } - const ue_associated_lc_ng_conn_list_l& part_of_ng_interface() const - { - assert_choice_type("partOfNG-Interface", type_.to_string(), "ResetType"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "ResetType"); - return c.get >(); - } - reset_all_e& set_ng_interface() - { - set(types::ng_interface); - return c.get(); - } - ue_associated_lc_ng_conn_list_l& set_part_of_ng_interface() - { - set(types::part_of_ng_interface); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + fixed_bitstring<16, false, true>& msg_id(); + fixed_bitstring<16, false, true>& serial_num(); + warning_area_list_c& warning_area_list(); + cancel_all_warning_msgs_e& cancel_all_warning_msgs(); + const fixed_bitstring<16, false, true>& msg_id() const; + const fixed_bitstring<16, false, true>& serial_num() const; + const warning_area_list_c& warning_area_list() const; + const cancel_all_warning_msgs_e& cancel_all_warning_msgs() const; -private: - types type_; - choice_buffer_t, ue_associated_lc_ng_conn_list_l> c; + private: + types type_; + choice_buffer_t, warning_area_list_c> c; - void destroy_(); -}; + void destroy_(); + }; -// SupportedTAList ::= SEQUENCE (SIZE (1..256)) OF SupportedTAItem -using supported_ta_list_l = dyn_array; - -// TAIListForPaging ::= SEQUENCE (SIZE (1..16)) OF TAIListForPagingItem -using tai_list_for_paging_l = dyn_array; - -// TAIListForRestart ::= SEQUENCE (SIZE (1..2048)) OF TAI -using tai_list_for_restart_l = dyn_array; - -// UE-NGAP-IDs ::= CHOICE -struct ue_ngap_ids_c { - struct types_opts { - enum options { ue_ngap_id_pair, amf_ue_ngap_id, choice_exts, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - ue_ngap_ids_c() = default; - ue_ngap_ids_c(const ue_ngap_ids_c& other); - ue_ngap_ids_c& operator=(const ue_ngap_ids_c& other); - ~ue_ngap_ids_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - ue_ngap_id_pair_s& ue_ngap_id_pair() - { - assert_choice_type("uE-NGAP-ID-pair", type_.to_string(), "UE-NGAP-IDs"); - return c.get(); - } - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("aMF-UE-NGAP-ID", type_.to_string(), "UE-NGAP-IDs"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "UE-NGAP-IDs"); - return c.get >(); - } - const ue_ngap_id_pair_s& ue_ngap_id_pair() const - { - assert_choice_type("uE-NGAP-ID-pair", type_.to_string(), "UE-NGAP-IDs"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("aMF-UE-NGAP-ID", type_.to_string(), "UE-NGAP-IDs"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "UE-NGAP-IDs"); - return c.get >(); - } - ue_ngap_id_pair_s& set_ue_ngap_id_pair() - { - set(types::ue_ngap_id_pair); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t, ue_ngap_id_pair_s> c; - - void destroy_(); -}; - -// UEPagingIdentity ::= CHOICE -struct ue_paging_id_c { - struct types_opts { - enum options { five_g_s_tmsi, choice_exts, nulltype } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated types; - - // choice methods - ue_paging_id_c() = default; - ue_paging_id_c(const ue_paging_id_c& other); - ue_paging_id_c& operator=(const ue_paging_id_c& other); - ~ue_paging_id_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - five_g_s_tmsi_s& five_g_s_tmsi() - { - assert_choice_type("fiveG-S-TMSI", type_.to_string(), "UEPagingIdentity"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "UEPagingIdentity"); - return c.get >(); - } - const five_g_s_tmsi_s& five_g_s_tmsi() const - { - assert_choice_type("fiveG-S-TMSI", type_.to_string(), "UEPagingIdentity"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "UEPagingIdentity"); - return c.get >(); - } - five_g_s_tmsi_s& set_five_g_s_tmsi() - { - set(types::five_g_s_tmsi); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t > c; - - void destroy_(); -}; - -// UEPresenceInAreaOfInterestList ::= SEQUENCE (SIZE (1..64)) OF UEPresenceInAreaOfInterestItem -using ue_presence_in_area_of_interest_list_l = dyn_array; - -// UERetentionInformation ::= ENUMERATED -struct ue_retention_info_opts { - enum options { ues_retained, /*...*/ nulltype } value; - - std::string to_string() const; -}; -typedef enumerated ue_retention_info_e; - -// WarningAreaList ::= CHOICE -struct warning_area_list_c { - struct types_opts { - enum options { - eutra_cgi_list_for_warning, - nr_cgi_list_for_warning, - tai_list_for_warning, - emergency_area_id_list, - choice_exts, - nulltype - } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - warning_area_list_c() = default; - warning_area_list_c(const warning_area_list_c& other); - warning_area_list_c& operator=(const warning_area_list_c& other); - ~warning_area_list_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - eutra_cgi_list_for_warning_l& eutra_cgi_list_for_warning() - { - assert_choice_type("eUTRA-CGIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - nr_cgi_list_for_warning_l& nr_cgi_list_for_warning() - { - assert_choice_type("nR-CGIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - tai_list_for_warning_l& tai_list_for_warning() - { - assert_choice_type("tAIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - emergency_area_id_list_l& emergency_area_id_list() - { - assert_choice_type("emergencyAreaIDList", type_.to_string(), "WarningAreaList"); - return c.get(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "WarningAreaList"); - return c.get >(); - } - const eutra_cgi_list_for_warning_l& eutra_cgi_list_for_warning() const - { - assert_choice_type("eUTRA-CGIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - const nr_cgi_list_for_warning_l& nr_cgi_list_for_warning() const - { - assert_choice_type("nR-CGIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - const tai_list_for_warning_l& tai_list_for_warning() const - { - assert_choice_type("tAIListForWarning", type_.to_string(), "WarningAreaList"); - return c.get(); - } - const emergency_area_id_list_l& emergency_area_id_list() const - { - assert_choice_type("emergencyAreaIDList", type_.to_string(), "WarningAreaList"); - return c.get(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "WarningAreaList"); - return c.get >(); - } - eutra_cgi_list_for_warning_l& set_eutra_cgi_list_for_warning() - { - set(types::eutra_cgi_list_for_warning); - return c.get(); - } - nr_cgi_list_for_warning_l& set_nr_cgi_list_for_warning() - { - set(types::nr_cgi_list_for_warning); - return c.get(); - } - tai_list_for_warning_l& set_tai_list_for_warning() - { - set(types::tai_list_for_warning); - return c.get(); - } - emergency_area_id_list_l& set_emergency_area_id_list() - { - set(types::emergency_area_id_list); - return c.get(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t, - tai_list_for_warning_l> - c; - - void destroy_(); + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -// LocationReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct location_report_ies_o { +// PWSCancelResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pws_cancel_resp_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - user_location_info, - ue_presence_in_area_of_interest_list, - location_report_request_type, - ps_cell_info, - nulltype - } value; + enum options { msg_id, serial_num, broadcast_cancelled_area_list, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10264,26 +9580,18 @@ struct location_report_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - user_location_info_c& user_location_info(); - ue_presence_in_area_of_interest_list_l& ue_presence_in_area_of_interest_list(); - location_report_request_type_s& location_report_request_type(); - ngran_cgi_c& ps_cell_info(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const user_location_info_c& user_location_info() const; - const ue_presence_in_area_of_interest_list_l& ue_presence_in_area_of_interest_list() const; - const location_report_request_type_s& location_report_request_type() const; - const ngran_cgi_c& ps_cell_info() const; - - private: - types type_; - choice_buffer_t - c; + fixed_bitstring<16, false, true>& msg_id(); + fixed_bitstring<16, false, true>& serial_num(); + broadcast_cancelled_area_list_c& broadcast_cancelled_area_list(); + crit_diagnostics_s& crit_diagnostics(); + const fixed_bitstring<16, false, true>& msg_id() const; + const fixed_bitstring<16, false, true>& serial_num() const; + const broadcast_cancelled_area_list_c& broadcast_cancelled_area_list() const; + const crit_diagnostics_s& crit_diagnostics() const; + + private: + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -10296,14 +9604,14 @@ struct location_report_ies_o { static presence_e get_presence(const uint32_t& id); }; -// LocationReportingControlIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct location_report_ctrl_ies_o { +// PWSFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pws_fail_ind_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, location_report_request_type, nulltype } value; + enum options { pws_failed_cell_id_list, global_ran_node_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10318,16 +9626,14 @@ struct location_report_ctrl_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - location_report_request_type_s& location_report_request_type(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const location_report_request_type_s& location_report_request_type() const; + pws_failed_cell_id_list_c& pws_failed_cell_id_list(); + global_ran_node_id_c& global_ran_node_id(); + const pws_failed_cell_id_list_c& pws_failed_cell_id_list() const; + const global_ran_node_id_c& global_ran_node_id() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10340,14 +9646,20 @@ struct location_report_ctrl_ies_o { static presence_e get_presence(const uint32_t& id); }; -// LocationReportingFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct location_report_fail_ind_ies_o { +// PWSRestartIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pws_restart_ind_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, nulltype } value; + enum options { + cell_id_list_for_restart, + global_ran_node_id, + tai_list_for_restart, + emergency_area_id_list_for_restart, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10362,16 +9674,22 @@ struct location_report_fail_ind_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - cause_c& cause(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const cause_c& cause() const; + cell_id_list_for_restart_c& cell_id_list_for_restart(); + global_ran_node_id_c& global_ran_node_id(); + tai_list_for_restart_l& tai_list_for_restart(); + emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart(); + const cell_id_list_for_restart_c& cell_id_list_for_restart() const; + const global_ran_node_id_c& global_ran_node_id() const; + const tai_list_for_restart_l& tai_list_for_restart() const; + const emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t + c; void destroy_(); }; @@ -10384,14 +9702,23 @@ struct location_report_fail_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NASNonDeliveryIndication-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct nas_non_delivery_ind_ies_o { +// PagingIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct paging_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, nas_pdu, cause, nulltype } value; + enum options { + ue_paging_id, + paging_drx, + tai_list_for_paging, + paging_prio, + ue_radio_cap_for_paging, + paging_origin, + assist_data_for_paging, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10406,18 +9733,24 @@ struct nas_non_delivery_ind_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& nas_pdu(); - cause_c& cause(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& nas_pdu() const; - const cause_c& cause() const; + ue_paging_id_c& ue_paging_id(); + paging_drx_e& paging_drx(); + tai_list_for_paging_l& tai_list_for_paging(); + paging_prio_e& paging_prio(); + ue_radio_cap_for_paging_s& ue_radio_cap_for_paging(); + paging_origin_e& paging_origin(); + assist_data_for_paging_s& assist_data_for_paging(); + const ue_paging_id_c& ue_paging_id() const; + const paging_drx_e& paging_drx() const; + const tai_list_for_paging_l& tai_list_for_paging() const; + const paging_prio_e& paging_prio() const; + const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const; + const paging_origin_e& paging_origin() const; + const assist_data_for_paging_s& assist_data_for_paging() const; private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10430,14 +9763,28 @@ struct nas_non_delivery_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NGResetAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ng_reset_ack_ies_o { +// PathSwitchRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct path_switch_request_ack_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { ue_associated_lc_ng_conn_list, crit_diagnostics, nulltype } value; + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + ue_security_cap, + security_context, + new_security_context_ind, + pdu_session_res_switched_list, + pdu_session_res_released_list_ps_ack, + allowed_nssai, + core_network_assist_info, + rrc_inactive_transition_report_request, + crit_diagnostics, + redirection_voice_fallback, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10452,14 +9799,41 @@ struct ng_reset_ack_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list(); - crit_diagnostics_s& crit_diagnostics(); - const ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + ue_security_cap_s& ue_security_cap(); + security_context_s& security_context(); + new_security_context_ind_e& new_security_context_ind(); + pdu_session_res_switched_list_l& pdu_session_res_switched_list(); + pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack(); + allowed_nssai_l& allowed_nssai(); + core_network_assist_info_s& core_network_assist_info(); + rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); + crit_diagnostics_s& crit_diagnostics(); + redirection_voice_fallback_e& redirection_voice_fallback(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const ue_security_cap_s& ue_security_cap() const; + const security_context_s& security_context() const; + const new_security_context_ind_e& new_security_context_ind() const; + const pdu_session_res_switched_list_l& pdu_session_res_switched_list() const; + const pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack() const; + const allowed_nssai_l& allowed_nssai() const; + const core_network_assist_info_s& core_network_assist_info() const; + const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; + const crit_diagnostics_s& crit_diagnostics() const; + const redirection_voice_fallback_e& redirection_voice_fallback() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t + c; void destroy_(); }; @@ -10472,14 +9846,20 @@ struct ng_reset_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NGResetIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ng_reset_ies_o { +// PathSwitchRequestFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct path_switch_request_fail_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { cause, reset_type, nulltype } value; + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + pdu_session_res_released_list_ps_fail, + crit_diagnostics, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10494,14 +9874,18 @@ struct ng_reset_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause(); - reset_type_c& reset_type(); - const cause_c& cause() const; - const reset_type_c& reset_type() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_released_list_ps_fail_l& pdu_session_res_released_list_ps_fail(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_released_list_ps_fail_l& pdu_session_res_released_list_ps_fail() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10514,14 +9898,22 @@ struct ng_reset_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NGSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ng_setup_fail_ies_o { +// PathSwitchRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct path_switch_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; + enum options { + ran_ue_ngap_id, + source_amf_ue_ngap_id, + user_location_info, + ue_security_cap, + pdu_session_res_to_be_switched_dl_list, + pdu_session_res_failed_to_setup_list_ps_req, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10536,16 +9928,26 @@ struct ng_setup_fail_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause(); - time_to_wait_e& time_to_wait(); - crit_diagnostics_s& crit_diagnostics(); - const cause_c& cause() const; - const time_to_wait_e& time_to_wait() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& ran_ue_ngap_id(); + uint64_t& source_amf_ue_ngap_id(); + user_location_info_c& user_location_info(); + ue_security_cap_s& ue_security_cap(); + pdu_session_res_to_be_switched_dl_list_l& pdu_session_res_to_be_switched_dl_list(); + pdu_session_res_failed_to_setup_list_ps_req_l& pdu_session_res_failed_to_setup_list_ps_req(); + const uint64_t& ran_ue_ngap_id() const; + const uint64_t& source_amf_ue_ngap_id() const; + const user_location_info_c& user_location_info() const; + const ue_security_cap_s& ue_security_cap() const; + const pdu_session_res_to_be_switched_dl_list_l& pdu_session_res_to_be_switched_dl_list() const; + const pdu_session_res_failed_to_setup_list_ps_req_l& pdu_session_res_failed_to_setup_list_ps_req() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t + c; void destroy_(); }; @@ -10558,51 +9960,52 @@ struct ng_setup_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NGSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ng_setup_request_ies_o { +// PrivateIE-Container{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE (SIZE (1..65535)) OF PrivateIE-Field +template +using private_ie_container_l = dyn_seq_of, 1, 65535, true>; + +struct ngap_private_ies_empty_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - global_ran_node_id, - ran_node_name, - supported_ta_list, - default_paging_drx, - ue_retention_info, - nulltype - } value; + enum options { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::nulltype; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + }; +}; +// PrivateMessageIEs ::= OBJECT SET OF NGAP-PRIVATE-IES +using private_msg_ies_o = ngap_private_ies_empty_o; + +// RANConfigurationUpdateAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ran_cfg_upd_ack_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { crit_diagnostics, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + types type() const { return types::crit_diagnostics; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - global_ran_node_id_c& global_ran_node_id(); - printable_string<1, 150, true, true>& ran_node_name(); - supported_ta_list_l& supported_ta_list(); - paging_drx_e& default_paging_drx(); - ue_retention_info_e& ue_retention_info(); - const global_ran_node_id_c& global_ran_node_id() const; - const printable_string<1, 150, true, true>& ran_node_name() const; - const supported_ta_list_l& supported_ta_list() const; - const paging_drx_e& default_paging_drx() const; - const ue_retention_info_e& ue_retention_info() const; + crit_diagnostics_s& crit_diagnostics() { return c; } + const crit_diagnostics_s& crit_diagnostics() const { return c; } private: - types type_; - choice_buffer_t, supported_ta_list_l> c; - - void destroy_(); + crit_diagnostics_s c; }; // members lookup methods @@ -10613,24 +10016,14 @@ struct ng_setup_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// NGSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ng_setup_resp_ies_o { +// RANConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ran_cfg_upd_fail_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_name, - served_guami_list, - relative_amf_capacity, - plmn_support_list, - crit_diagnostics, - ue_retention_info, - nulltype - } value; - typedef uint8_t number_type; + enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; - std::string to_string() const; - uint8_t to_number() const; + const char* to_string() const; }; typedef enumerated types; @@ -10645,23 +10038,16 @@ struct ng_setup_resp_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - printable_string<1, 150, true, true>& amf_name(); - served_guami_list_l& served_guami_list(); - uint16_t& relative_amf_capacity(); - plmn_support_list_l& plmn_support_list(); - crit_diagnostics_s& crit_diagnostics(); - ue_retention_info_e& ue_retention_info(); - const printable_string<1, 150, true, true>& amf_name() const; - const served_guami_list_l& served_guami_list() const; - const uint16_t& relative_amf_capacity() const; - const plmn_support_list_l& plmn_support_list() const; - const crit_diagnostics_s& crit_diagnostics() const; - const ue_retention_info_e& ue_retention_info() const; + cause_c& cause(); + time_to_wait_e& time_to_wait(); + crit_diagnostics_s& crit_diagnostics(); + const cause_c& cause() const; + const time_to_wait_e& time_to_wait() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t, served_guami_list_l> - c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10674,16 +10060,14 @@ struct ng_setup_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// OverloadStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct overload_start_ies_o { +// RANConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ran_cfg_upd_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_overload_resp, amf_traffic_load_reduction_ind, overload_start_nssai_list, nulltype } value; - typedef uint8_t number_type; + enum options { ran_node_name, supported_ta_list, default_paging_drx, global_ran_node_id, nulltype } value; - std::string to_string() const; - uint8_t to_number() const; + const char* to_string() const; }; typedef enumerated types; @@ -10698,16 +10082,18 @@ struct overload_start_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - overload_resp_c& amf_overload_resp(); - uint8_t& amf_traffic_load_reduction_ind(); - overload_start_nssai_list_l& overload_start_nssai_list(); - const overload_resp_c& amf_overload_resp() const; - const uint8_t& amf_traffic_load_reduction_ind() const; - const overload_start_nssai_list_l& overload_start_nssai_list() const; + printable_string<1, 150, true, true>& ran_node_name(); + supported_ta_list_l& supported_ta_list(); + paging_drx_e& default_paging_drx(); + global_ran_node_id_c& global_ran_node_id(); + const printable_string<1, 150, true, true>& ran_node_name() const; + const supported_ta_list_l& supported_ta_list() const; + const paging_drx_e& default_paging_drx() const; + const global_ran_node_id_c& global_ran_node_id() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t, supported_ta_list_l> c; void destroy_(); }; @@ -10720,24 +10106,14 @@ struct overload_start_ies_o { static presence_e get_presence(const uint32_t& id); }; -// OverloadStopIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o overload_stop_ies_o; - -// PDUSessionResourceModifyConfirmIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_modify_confirm_ies_o { +// RRCInactiveTransitionReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct rrc_inactive_transition_report_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_modify_list_mod_cfm, - pdu_session_res_failed_to_modify_list_mod_cfm, - crit_diagnostics, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, rrc_state, user_location_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10752,23 +10128,18 @@ struct pdu_session_res_modify_confirm_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_modify_list_mod_cfm_l& pdu_session_res_modify_list_mod_cfm(); - pdu_session_res_failed_to_modify_list_mod_cfm_l& pdu_session_res_failed_to_modify_list_mod_cfm(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_modify_list_mod_cfm_l& pdu_session_res_modify_list_mod_cfm() const; - const pdu_session_res_failed_to_modify_list_mod_cfm_l& pdu_session_res_failed_to_modify_list_mod_cfm() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + rrc_state_e& rrc_state(); + user_location_info_c& user_location_info(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const rrc_state_e& rrc_state() const; + const user_location_info_c& user_location_info() const; private: - types type_; - choice_buffer_t - c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10781,14 +10152,14 @@ struct pdu_session_res_modify_confirm_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceModifyIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_modify_ind_ies_o { +// RerouteNASRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct reroute_nas_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_modify_list_mod_ind, nulltype } value; + enum options { ran_ue_ngap_id, amf_ue_ngap_id, ngap_msg, amf_set_id, allowed_nssai, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10803,16 +10174,20 @@ struct pdu_session_res_modify_ind_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_list_mod_ind(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_list_mod_ind() const; + uint64_t& ran_ue_ngap_id(); + uint64_t& amf_ue_ngap_id(); + unbounded_octstring& ngap_msg(); + fixed_bitstring<10, false, true>& amf_set_id(); + allowed_nssai_l& allowed_nssai(); + const uint64_t& ran_ue_ngap_id() const; + const uint64_t& amf_ue_ngap_id() const; + const unbounded_octstring& ngap_msg() const; + const fixed_bitstring<10, false, true>& amf_set_id() const; + const allowed_nssai_l& allowed_nssai() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t, unbounded_octstring > c; void destroy_(); }; @@ -10825,20 +10200,14 @@ struct pdu_session_res_modify_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceModifyRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_modify_request_ies_o { +// SecondaryRATDataUsageReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct secondary_rat_data_usage_report_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - ran_paging_prio, - pdu_session_res_modify_list_mod_req, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_secondary_ratusage_list, ho_flag, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10853,18 +10222,18 @@ struct pdu_session_res_modify_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - uint16_t& ran_paging_prio(); - pdu_session_res_modify_list_mod_req_l& pdu_session_res_modify_list_mod_req(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const uint16_t& ran_paging_prio() const; - const pdu_session_res_modify_list_mod_req_l& pdu_session_res_modify_list_mod_req() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_secondary_ratusage_list_l& pdu_session_res_secondary_ratusage_list(); + ho_flag_e& ho_flag(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_secondary_ratusage_list_l& pdu_session_res_secondary_ratusage_list() const; + const ho_flag_e& ho_flag() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10877,22 +10246,14 @@ struct pdu_session_res_modify_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceModifyResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_modify_resp_ies_o { +// TraceFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct trace_fail_ind_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_modify_list_mod_res, - pdu_session_res_failed_to_modify_list_mod_res, - user_location_info, - crit_diagnostics, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, ngran_trace_id, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10907,26 +10268,18 @@ struct pdu_session_res_modify_resp_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_list_mod_res(); - pdu_session_res_failed_to_modify_list_mod_res_l& pdu_session_res_failed_to_modify_list_mod_res(); - user_location_info_c& user_location_info(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_list_mod_res() const; - const pdu_session_res_failed_to_modify_list_mod_res_l& pdu_session_res_failed_to_modify_list_mod_res() const; - const user_location_info_c& user_location_info() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + fixed_octstring<8, true>& ngran_trace_id(); + cause_c& cause(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const fixed_octstring<8, true>& ngran_trace_id() const; + const cause_c& cause() const; private: - types type_; - choice_buffer_t - c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -10939,21 +10292,14 @@ struct pdu_session_res_modify_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_notify_ies_o { +// TraceStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct trace_start_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_notify_list, - pdu_session_res_released_list_not, - user_location_info, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, trace_activation, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10968,20 +10314,16 @@ struct pdu_session_res_notify_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_notify_list_l& pdu_session_res_notify_list(); - pdu_session_res_released_list_not_l& pdu_session_res_released_list_not(); - user_location_info_c& user_location_info(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_notify_list_l& pdu_session_res_notify_list() const; - const pdu_session_res_released_list_not_l& pdu_session_res_released_list_not() const; - const user_location_info_c& user_location_info() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + trace_activation_s& trace_activation(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const trace_activation_s& trace_activation() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -10994,21 +10336,14 @@ struct pdu_session_res_notify_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceReleaseCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_release_cmd_ies_o { +// UEContextModificationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_mod_fail_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - ran_paging_prio, - nas_pdu, - pdu_session_res_to_release_list_rel_cmd, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11023,20 +10358,18 @@ struct pdu_session_res_release_cmd_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - uint16_t& ran_paging_prio(); - unbounded_octstring& nas_pdu(); - pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const uint16_t& ran_paging_prio() const; - const unbounded_octstring& nas_pdu() const; - const pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + cause_c& cause(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const cause_c& cause() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11049,21 +10382,27 @@ struct pdu_session_res_release_cmd_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceReleaseResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_release_resp_ies_o { +// UEContextModificationRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_mod_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, - pdu_session_res_released_list_rel_res, - user_location_info, - crit_diagnostics, + ran_paging_prio, + security_key, + idx_to_rfsp, + ue_aggregate_maximum_bit_rate, + ue_security_cap, + core_network_assist_info, + emergency_fallback_ind, + new_amf_ue_ngap_id, + rrc_inactive_transition_report_request, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11078,20 +10417,37 @@ struct pdu_session_res_release_resp_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_released_list_rel_res_l& pdu_session_res_released_list_rel_res(); - user_location_info_c& user_location_info(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_released_list_rel_res_l& pdu_session_res_released_list_rel_res() const; - const user_location_info_c& user_location_info() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + uint16_t& ran_paging_prio(); + fixed_bitstring<256, false, true>& security_key(); + uint16_t& idx_to_rfsp(); + ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); + ue_security_cap_s& ue_security_cap(); + core_network_assist_info_s& core_network_assist_info(); + emergency_fallback_ind_s& emergency_fallback_ind(); + uint64_t& new_amf_ue_ngap_id(); + rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const uint16_t& ran_paging_prio() const; + const fixed_bitstring<256, false, true>& security_key() const; + const uint16_t& idx_to_rfsp() const; + const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; + const ue_security_cap_s& ue_security_cap() const; + const core_network_assist_info_s& core_network_assist_info() const; + const emergency_fallback_ind_s& emergency_fallback_ind() const; + const uint64_t& new_amf_ue_ngap_id() const; + const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t, + ue_aggregate_maximum_bit_rate_s, + ue_security_cap_s> + c; void destroy_(); }; @@ -11104,22 +10460,14 @@ struct pdu_session_res_release_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_setup_request_ies_o { +// UEContextModificationResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_mod_resp_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - ran_paging_prio, - nas_pdu, - pdu_session_res_setup_list_su_req, - ue_aggregate_maximum_bit_rate, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, rrc_state, user_location_info, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11134,22 +10482,20 @@ struct pdu_session_res_setup_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - uint16_t& ran_paging_prio(); - unbounded_octstring& nas_pdu(); - pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_list_su_req(); - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const uint16_t& ran_paging_prio() const; - const unbounded_octstring& nas_pdu() const; - const pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_list_su_req() const; - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + rrc_state_e& rrc_state(); + user_location_info_c& user_location_info(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const rrc_state_e& rrc_state() const; + const user_location_info_c& user_location_info() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11162,21 +10508,14 @@ struct pdu_session_res_setup_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PDUSessionResourceSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pdu_session_res_setup_resp_ies_o { +// UEContextReleaseCommand-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_release_cmd_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_setup_list_su_res, - pdu_session_res_failed_to_setup_list_su_res, - crit_diagnostics, - nulltype - } value; + enum options { ue_ngap_ids, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11191,23 +10530,14 @@ struct pdu_session_res_setup_resp_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_list_su_res(); - pdu_session_res_failed_to_setup_list_su_res_l& pdu_session_res_failed_to_setup_list_su_res(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_list_su_res() const; - const pdu_session_res_failed_to_setup_list_su_res_l& pdu_session_res_failed_to_setup_list_su_res() const; - const crit_diagnostics_s& crit_diagnostics() const; + ue_ngap_ids_c& ue_ngap_ids(); + cause_c& cause(); + const ue_ngap_ids_c& ue_ngap_ids() const; + const cause_c& cause() const; private: - types type_; - choice_buffer_t - c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11220,14 +10550,22 @@ struct pdu_session_res_setup_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PWSCancelRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pws_cancel_request_ies_o { +// UEContextReleaseComplete-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_release_complete_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { msg_id, serial_num, warning_area_list, cancel_all_warning_msgs, nulltype } value; + enum options { + amf_ue_ngap_id, + ran_ue_ngap_id, + user_location_info, + info_on_recommended_cells_and_ran_nodes_for_paging, + pdu_session_res_list_cxt_rel_cpl, + crit_diagnostics, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11242,18 +10580,27 @@ struct pws_cancel_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id(); - fixed_bitstring<16, false, true>& serial_num(); - warning_area_list_c& warning_area_list(); - cancel_all_warning_msgs_e& cancel_all_warning_msgs(); - const fixed_bitstring<16, false, true>& msg_id() const; - const fixed_bitstring<16, false, true>& serial_num() const; - const warning_area_list_c& warning_area_list() const; - const cancel_all_warning_msgs_e& cancel_all_warning_msgs() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + user_location_info_c& user_location_info(); + info_on_recommended_cells_and_ran_nodes_for_paging_s& info_on_recommended_cells_and_ran_nodes_for_paging(); + pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const user_location_info_c& user_location_info() const; + const info_on_recommended_cells_and_ran_nodes_for_paging_s& + info_on_recommended_cells_and_ran_nodes_for_paging() const; + const pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t, warning_area_list_c> c; + types type_; + choice_buffer_t + c; void destroy_(); }; @@ -11266,14 +10613,14 @@ struct pws_cancel_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PWSCancelResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pws_cancel_resp_ies_o { +// UEContextReleaseRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_context_release_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { msg_id, serial_num, broadcast_cancelled_area_list, crit_diagnostics, nulltype } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_list_cxt_rel_req, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11288,18 +10635,18 @@ struct pws_cancel_resp_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id(); - fixed_bitstring<16, false, true>& serial_num(); - broadcast_cancelled_area_list_c& broadcast_cancelled_area_list(); - crit_diagnostics_s& crit_diagnostics(); - const fixed_bitstring<16, false, true>& msg_id() const; - const fixed_bitstring<16, false, true>& serial_num() const; - const broadcast_cancelled_area_list_c& broadcast_cancelled_area_list() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + pdu_session_res_list_cxt_rel_req_l& pdu_session_res_list_cxt_rel_req(); + cause_c& cause(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const pdu_session_res_list_cxt_rel_req_l& pdu_session_res_list_cxt_rel_req() const; + const cause_c& cause() const; private: - types type_; - choice_buffer_t > c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11312,14 +10659,14 @@ struct pws_cancel_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PWSFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pws_fail_ind_ies_o { +// UERadioCapabilityCheckRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_radio_cap_check_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { pws_failed_cell_id_list, global_ran_node_id, nulltype } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, ue_radio_cap, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11334,14 +10681,16 @@ struct pws_fail_ind_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - pws_failed_cell_id_list_c& pws_failed_cell_id_list(); - global_ran_node_id_c& global_ran_node_id(); - const pws_failed_cell_id_list_c& pws_failed_cell_id_list() const; - const global_ran_node_id_c& global_ran_node_id() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& ue_radio_cap(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& ue_radio_cap() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -11354,20 +10703,14 @@ struct pws_fail_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PWSRestartIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct pws_restart_ind_ies_o { +// UERadioCapabilityCheckResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_radio_cap_check_resp_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - cell_id_list_for_restart, - global_ran_node_id, - tai_list_for_restart, - emergency_area_id_list_for_restart, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, ims_voice_support_ind, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11382,22 +10725,18 @@ struct pws_restart_ind_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - cell_id_list_for_restart_c& cell_id_list_for_restart(); - global_ran_node_id_c& global_ran_node_id(); - tai_list_for_restart_l& tai_list_for_restart(); - emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart(); - const cell_id_list_for_restart_c& cell_id_list_for_restart() const; - const global_ran_node_id_c& global_ran_node_id() const; - const tai_list_for_restart_l& tai_list_for_restart() const; - const emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + ims_voice_support_ind_e& ims_voice_support_ind(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const ims_voice_support_ind_e& ims_voice_support_ind() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t - c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11410,23 +10749,14 @@ struct pws_restart_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PagingIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct paging_ies_o { +// UERadioCapabilityInfoIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ue_radio_cap_info_ind_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - ue_paging_id, - paging_drx, - tai_list_for_paging, - paging_prio, - ue_radio_cap_for_paging, - paging_origin, - assist_data_for_paging, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, ue_radio_cap, ue_radio_cap_for_paging, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11441,24 +10771,18 @@ struct paging_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - ue_paging_id_c& ue_paging_id(); - paging_drx_e& paging_drx(); - tai_list_for_paging_l& tai_list_for_paging(); - paging_prio_e& paging_prio(); + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& ue_radio_cap(); ue_radio_cap_for_paging_s& ue_radio_cap_for_paging(); - paging_origin_e& paging_origin(); - assist_data_for_paging_s& assist_data_for_paging(); - const ue_paging_id_c& ue_paging_id() const; - const paging_drx_e& paging_drx() const; - const tai_list_for_paging_l& tai_list_for_paging() const; - const paging_prio_e& paging_prio() const; + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& ue_radio_cap() const; const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const; - const paging_origin_e& paging_origin() const; - const assist_data_for_paging_s& assist_data_for_paging() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -11471,28 +10795,14 @@ struct paging_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PathSwitchRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct path_switch_request_ack_ies_o { +// UETNLABindingReleaseRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct uetnla_binding_release_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - ue_security_cap, - security_context, - new_security_context_ind, - pdu_session_res_switched_list, - pdu_session_res_released_list_ps_ack, - allowed_nssai, - core_network_assist_info, - rrc_inactive_transition_report_request, - crit_diagnostics, - redirection_voice_fallback, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11507,41 +10817,14 @@ struct path_switch_request_ack_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - ue_security_cap_s& ue_security_cap(); - security_context_s& security_context(); - new_security_context_ind_e& new_security_context_ind(); - pdu_session_res_switched_list_l& pdu_session_res_switched_list(); - pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack(); - allowed_nssai_l& allowed_nssai(); - core_network_assist_info_s& core_network_assist_info(); - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); - crit_diagnostics_s& crit_diagnostics(); - redirection_voice_fallback_e& redirection_voice_fallback(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const ue_security_cap_s& ue_security_cap() const; - const security_context_s& security_context() const; - const new_security_context_ind_e& new_security_context_ind() const; - const pdu_session_res_switched_list_l& pdu_session_res_switched_list() const; - const pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack() const; - const allowed_nssai_l& allowed_nssai() const; - const core_network_assist_info_s& core_network_assist_info() const; - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; - const crit_diagnostics_s& crit_diagnostics() const; - const redirection_voice_fallback_e& redirection_voice_fallback() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; private: - types type_; - choice_buffer_t - c; + types type_; + pod_choice_buffer_t c; void destroy_(); }; @@ -11554,20 +10837,14 @@ struct path_switch_request_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PathSwitchRequestFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct path_switch_request_fail_ies_o { +// UplinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ul_nas_transport_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - pdu_session_res_released_list_ps_fail, - crit_diagnostics, - nulltype - } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, nas_pdu, user_location_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11582,18 +10859,18 @@ struct path_switch_request_fail_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_released_list_ps_fail_l& pdu_session_res_released_list_ps_fail(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_released_list_ps_fail_l& pdu_session_res_released_list_ps_fail() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& nas_pdu(); + user_location_info_c& user_location_info(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& nas_pdu() const; + const user_location_info_c& user_location_info() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t, user_location_info_c> c; void destroy_(); }; @@ -11606,22 +10883,14 @@ struct path_switch_request_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PathSwitchRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct path_switch_request_ies_o { +// UplinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ul_non_ueassociated_nrp_pa_transport_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { - ran_ue_ngap_id, - source_amf_ue_ngap_id, - user_location_info, - ue_security_cap, - pdu_session_res_to_be_switched_dl_list, - pdu_session_res_failed_to_setup_list_ps_req, - nulltype - } value; + enum options { routing_id, nrp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11636,26 +10905,14 @@ struct path_switch_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id(); - uint64_t& source_amf_ue_ngap_id(); - user_location_info_c& user_location_info(); - ue_security_cap_s& ue_security_cap(); - pdu_session_res_to_be_switched_dl_list_l& pdu_session_res_to_be_switched_dl_list(); - pdu_session_res_failed_to_setup_list_ps_req_l& pdu_session_res_failed_to_setup_list_ps_req(); - const uint64_t& ran_ue_ngap_id() const; - const uint64_t& source_amf_ue_ngap_id() const; - const user_location_info_c& user_location_info() const; - const ue_security_cap_s& ue_security_cap() const; - const pdu_session_res_to_be_switched_dl_list_l& pdu_session_res_to_be_switched_dl_list() const; - const pdu_session_res_failed_to_setup_list_ps_req_l& pdu_session_res_failed_to_setup_list_ps_req() const; + unbounded_octstring& routing_id(); + unbounded_octstring& nrp_pa_pdu(); + const unbounded_octstring& routing_id() const; + const unbounded_octstring& nrp_pa_pdu() const; private: - types type_; - choice_buffer_t - c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -11668,52 +10925,38 @@ struct path_switch_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// PrivateIE-Container{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE (SIZE (1..65535)) OF PrivateIE-Field -template -using private_ie_container_l = dyn_seq_of, 1, 65535, true>; - -struct ngap_private_ies_empty_o { +// UplinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ul_ran_cfg_transfer_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { nulltype } value; + enum options { son_cfg_transfer_ul, endc_son_cfg_transfer_ul, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - types type() const { return types::nulltype; } + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - }; -}; -// PrivateMessageIEs ::= OBJECT SET OF NGAP-PRIVATE-IES -typedef ngap_private_ies_empty_o private_msg_ies_o; - -// RANConfigurationUpdateAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ran_cfg_upd_ack_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { crit_diagnostics, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - types type() const { return types::crit_diagnostics; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - crit_diagnostics_s& crit_diagnostics() { return c; } - const crit_diagnostics_s& crit_diagnostics() const { return c; } - - private: - crit_diagnostics_s c; + // getters + son_cfg_transfer_s& son_cfg_transfer_ul(); + unbounded_octstring& endc_son_cfg_transfer_ul(); + const son_cfg_transfer_s& son_cfg_transfer_ul() const; + const unbounded_octstring& endc_son_cfg_transfer_ul() const; + + private: + types type_; + choice_buffer_t > c; + + void destroy_(); }; // members lookup methods @@ -11724,14 +10967,14 @@ struct ran_cfg_upd_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// RANConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ran_cfg_upd_fail_ies_o { +// UplinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ul_ran_status_transfer_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, ran_status_transfer_transparent_container, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11746,16 +10989,16 @@ struct ran_cfg_upd_fail_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause(); - time_to_wait_e& time_to_wait(); - crit_diagnostics_s& crit_diagnostics(); - const cause_c& cause() const; - const time_to_wait_e& time_to_wait() const; - const crit_diagnostics_s& crit_diagnostics() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t c; void destroy_(); }; @@ -11768,14 +11011,14 @@ struct ran_cfg_upd_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// RANConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ran_cfg_upd_ies_o { +// UplinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct ul_ueassociated_nrp_pa_transport_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { ran_node_name, supported_ta_list, default_paging_drx, global_ran_node_id, nulltype } value; + enum options { amf_ue_ngap_id, ran_ue_ngap_id, routing_id, nrp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11790,18 +11033,18 @@ struct ran_cfg_upd_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - printable_string<1, 150, true, true>& ran_node_name(); - supported_ta_list_l& supported_ta_list(); - paging_drx_e& default_paging_drx(); - global_ran_node_id_c& global_ran_node_id(); - const printable_string<1, 150, true, true>& ran_node_name() const; - const supported_ta_list_l& supported_ta_list() const; - const paging_drx_e& default_paging_drx() const; - const global_ran_node_id_c& global_ran_node_id() const; + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + unbounded_octstring& routing_id(); + unbounded_octstring& nrp_pa_pdu(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const unbounded_octstring& routing_id() const; + const unbounded_octstring& nrp_pa_pdu() const; private: - types type_; - choice_buffer_t, supported_ta_list_l> c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -11814,14 +11057,27 @@ struct ran_cfg_upd_ies_o { static presence_e get_presence(const uint32_t& id); }; -// RRCInactiveTransitionReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct rrc_inactive_transition_report_ies_o { +// WriteReplaceWarningRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct write_replace_warning_request_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, rrc_state, user_location_info, nulltype } value; + enum options { + msg_id, + serial_num, + warning_area_list, + repeat_period, + nof_broadcasts_requested, + warning_type, + warning_security_info, + data_coding_scheme, + warning_msg_contents, + concurrent_warning_msg_ind, + warning_area_coordinates, + nulltype + } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11836,18 +11092,38 @@ struct rrc_inactive_transition_report_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - rrc_state_e& rrc_state(); - user_location_info_c& user_location_info(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const rrc_state_e& rrc_state() const; - const user_location_info_c& user_location_info() const; + fixed_bitstring<16, false, true>& msg_id(); + fixed_bitstring<16, false, true>& serial_num(); + warning_area_list_c& warning_area_list(); + uint32_t& repeat_period(); + uint32_t& nof_broadcasts_requested(); + fixed_octstring<2, true>& warning_type(); + fixed_octstring<50, true>& warning_security_info(); + fixed_bitstring<8, false, true>& data_coding_scheme(); + bounded_octstring<1, 9600, true>& warning_msg_contents(); + concurrent_warning_msg_ind_e& concurrent_warning_msg_ind(); + bounded_octstring<1, 1024, true>& warning_area_coordinates(); + const fixed_bitstring<16, false, true>& msg_id() const; + const fixed_bitstring<16, false, true>& serial_num() const; + const warning_area_list_c& warning_area_list() const; + const uint32_t& repeat_period() const; + const uint32_t& nof_broadcasts_requested() const; + const fixed_octstring<2, true>& warning_type() const; + const fixed_octstring<50, true>& warning_security_info() const; + const fixed_bitstring<8, false, true>& data_coding_scheme() const; + const bounded_octstring<1, 9600, true>& warning_msg_contents() const; + const concurrent_warning_msg_ind_e& concurrent_warning_msg_ind() const; + const bounded_octstring<1, 1024, true>& warning_area_coordinates() const; private: - types type_; - choice_buffer_t c; + types type_; + choice_buffer_t, + bounded_octstring<1, 9600, true>, + fixed_bitstring<16, false, true>, + fixed_octstring<2, true>, + fixed_octstring<50, true>, + warning_area_list_c> + c; void destroy_(); }; @@ -11860,14 +11136,14 @@ struct rrc_inactive_transition_report_ies_o { static presence_e get_presence(const uint32_t& id); }; -// RerouteNASRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct reroute_nas_request_ies_o { +// WriteReplaceWarningResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct write_replace_warning_resp_ies_o { // Value ::= OPEN TYPE struct value_c { struct types_opts { - enum options { ran_ue_ngap_id, amf_ue_ngap_id, ngap_msg, amf_set_id, allowed_nssai, nulltype } value; + enum options { msg_id, serial_num, broadcast_completed_area_list, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11882,20 +11158,18 @@ struct reroute_nas_request_ies_o { SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id(); - uint64_t& amf_ue_ngap_id(); - unbounded_octstring& ngap_msg(); - fixed_bitstring<10, false, true>& amf_set_id(); - allowed_nssai_l& allowed_nssai(); - const uint64_t& ran_ue_ngap_id() const; - const uint64_t& amf_ue_ngap_id() const; - const unbounded_octstring& ngap_msg() const; - const fixed_bitstring<10, false, true>& amf_set_id() const; - const allowed_nssai_l& allowed_nssai() const; + fixed_bitstring<16, false, true>& msg_id(); + fixed_bitstring<16, false, true>& serial_num(); + broadcast_completed_area_list_c& broadcast_completed_area_list(); + crit_diagnostics_s& crit_diagnostics(); + const fixed_bitstring<16, false, true>& msg_id() const; + const fixed_bitstring<16, false, true>& serial_num() const; + const broadcast_completed_area_list_c& broadcast_completed_area_list() const; + const crit_diagnostics_s& crit_diagnostics() const; private: - types type_; - choice_buffer_t, unbounded_octstring > c; + types type_; + choice_buffer_t > c; void destroy_(); }; @@ -11908,1012 +11182,580 @@ struct reroute_nas_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// SecondaryRATDataUsageReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct secondary_rat_data_usage_report_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_secondary_ratusage_list, ho_flag, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct location_report_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_secondary_ratusage_list_l& pdu_session_res_secondary_ratusage_list(); - ho_flag_e& ho_flag(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_secondary_ratusage_list_l& pdu_session_res_secondary_ratusage_list() const; - const ho_flag_e& ho_flag() const; + // member variables + bool ue_presence_in_area_of_interest_list_present = false; + bool ps_cell_info_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s user_location_info; + ie_field_s > ue_presence_in_area_of_interest_list; + ie_field_s location_report_request_type; + ie_field_s ps_cell_info; - private: - types type_; - choice_buffer_t c; + // sequence methods + location_report_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// LocationReport ::= SEQUENCE +struct location_report_s { + bool ext = false; + location_report_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// TraceFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct trace_fail_ind_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, ngran_trace_id, cause, nulltype } value; +struct location_report_ctrl_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - std::string to_string() const; - }; - typedef enumerated types; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s location_report_request_type; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - fixed_octstring<8, true>& ngran_trace_id(); - cause_c& cause(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const fixed_octstring<8, true>& ngran_trace_id() const; - const cause_c& cause() const; + // sequence methods + location_report_ctrl_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - types type_; - choice_buffer_t > c; - - void destroy_(); - }; +// LocationReportingControl ::= SEQUENCE +struct location_report_ctrl_s { + bool ext = false; + location_report_ctrl_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// TraceStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct trace_start_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, trace_activation, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct location_report_fail_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - trace_activation_s& trace_activation(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const trace_activation_s& trace_activation() const; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s cause; - private: - types type_; - choice_buffer_t c; + // sequence methods + location_report_fail_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// LocationReportingFailureIndication ::= SEQUENCE +struct location_report_fail_ind_s { + bool ext = false; + location_report_fail_ind_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextModificationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_mod_fail_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct nas_non_delivery_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - cause_c& cause(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const cause_c& cause() const; - const crit_diagnostics_s& crit_diagnostics() const; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > nas_pdu; + ie_field_s cause; - private: - types type_; - choice_buffer_t c; + // sequence methods + nas_non_delivery_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NASNonDeliveryIndication ::= SEQUENCE +struct nas_non_delivery_ind_s { + bool ext = false; + nas_non_delivery_ind_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextModificationRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_mod_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - ran_paging_prio, - security_key, - idx_to_rfsp, - ue_aggregate_maximum_bit_rate, - ue_security_cap, - core_network_assist_info, - emergency_fallback_ind, - new_amf_ue_ngap_id, - rrc_inactive_transition_report_request, - nulltype - } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct ng_reset_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - uint16_t& ran_paging_prio(); - fixed_bitstring<256, false, true>& security_key(); - uint16_t& idx_to_rfsp(); - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); - ue_security_cap_s& ue_security_cap(); - core_network_assist_info_s& core_network_assist_info(); - emergency_fallback_ind_s& emergency_fallback_ind(); - uint64_t& new_amf_ue_ngap_id(); - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const uint16_t& ran_paging_prio() const; - const fixed_bitstring<256, false, true>& security_key() const; - const uint16_t& idx_to_rfsp() const; - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; - const ue_security_cap_s& ue_security_cap() const; - const core_network_assist_info_s& core_network_assist_info() const; - const emergency_fallback_ind_s& emergency_fallback_ind() const; - const uint64_t& new_amf_ue_ngap_id() const; - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const; + // member variables + ie_field_s cause; + ie_field_s reset_type; - private: - types type_; - choice_buffer_t, - ue_aggregate_maximum_bit_rate_s, - ue_security_cap_s> - c; + // sequence methods + ng_reset_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NGReset ::= SEQUENCE +struct ng_reset_s { + bool ext = false; + ng_reset_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextModificationResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_mod_resp_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, rrc_state, user_location_info, crit_diagnostics, nulltype } value; +struct ng_reset_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - std::string to_string() const; - }; - typedef enumerated types; + // member variables + bool ue_associated_lc_ng_conn_list_present = false; + bool crit_diagnostics_present = false; + ie_field_s > ue_associated_lc_ng_conn_list; + ie_field_s crit_diagnostics; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - rrc_state_e& rrc_state(); - user_location_info_c& user_location_info(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const rrc_state_e& rrc_state() const; - const user_location_info_c& user_location_info() const; - const crit_diagnostics_s& crit_diagnostics() const; - - private: - types type_; - choice_buffer_t c; + // sequence methods + ng_reset_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NGResetAcknowledge ::= SEQUENCE +struct ng_reset_ack_s { + bool ext = false; + ng_reset_ack_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextReleaseCommand-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_release_cmd_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { ue_ngap_ids, cause, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct ng_setup_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - ue_ngap_ids_c& ue_ngap_ids(); - cause_c& cause(); - const ue_ngap_ids_c& ue_ngap_ids() const; - const cause_c& cause() const; + // member variables + bool time_to_wait_present = false; + bool crit_diagnostics_present = false; + ie_field_s cause; + ie_field_s time_to_wait; + ie_field_s crit_diagnostics; - private: - types type_; - choice_buffer_t c; + // sequence methods + ng_setup_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NGSetupFailure ::= SEQUENCE +struct ng_setup_fail_s { + bool ext = false; + ng_setup_fail_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextReleaseComplete-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_release_complete_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { - amf_ue_ngap_id, - ran_ue_ngap_id, - user_location_info, - info_on_recommended_cells_and_ran_nodes_for_paging, - pdu_session_res_list_cxt_rel_cpl, - crit_diagnostics, - nulltype - } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct ng_setup_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - user_location_info_c& user_location_info(); - info_on_recommended_cells_and_ran_nodes_for_paging_s& info_on_recommended_cells_and_ran_nodes_for_paging(); - pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const user_location_info_c& user_location_info() const; - const info_on_recommended_cells_and_ran_nodes_for_paging_s& - info_on_recommended_cells_and_ran_nodes_for_paging() const; - const pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl() const; - const crit_diagnostics_s& crit_diagnostics() const; + // member variables + bool ran_node_name_present = false; + bool ue_retention_info_present = false; + ie_field_s global_ran_node_id; + ie_field_s > ran_node_name; + ie_field_s > supported_ta_list; + ie_field_s default_paging_drx; + ie_field_s ue_retention_info; - private: - types type_; - choice_buffer_t - c; + // sequence methods + ng_setup_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NGSetupRequest ::= SEQUENCE +struct ng_setup_request_s { + bool ext = false; + ng_setup_request_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UEContextReleaseRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_context_release_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, pdu_session_res_list_cxt_rel_req, cause, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct ng_setup_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - pdu_session_res_list_cxt_rel_req_l& pdu_session_res_list_cxt_rel_req(); - cause_c& cause(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const pdu_session_res_list_cxt_rel_req_l& pdu_session_res_list_cxt_rel_req() const; - const cause_c& cause() const; + // member variables + bool crit_diagnostics_present = false; + bool ue_retention_info_present = false; + ie_field_s > amf_name; + ie_field_s > served_guami_list; + ie_field_s > relative_amf_capacity; + ie_field_s > plmn_support_list; + ie_field_s crit_diagnostics; + ie_field_s ue_retention_info; - private: - types type_; - choice_buffer_t c; + // sequence methods + ng_setup_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// NGSetupResponse ::= SEQUENCE +struct ng_setup_resp_s { + bool ext = false; + ng_setup_resp_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UERadioCapabilityCheckRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_radio_cap_check_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, ue_radio_cap, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& ue_radio_cap(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& ue_radio_cap() const; - - private: - types type_; - choice_buffer_t > c; +struct overload_start_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - void destroy_(); - }; + // member variables + bool amf_overload_resp_present = false; + bool amf_traffic_load_reduction_ind_present = false; + bool overload_start_nssai_list_present = false; + ie_field_s amf_overload_resp; + ie_field_s > amf_traffic_load_reduction_ind; + ie_field_s > overload_start_nssai_list; - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + overload_start_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UERadioCapabilityCheckResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_radio_cap_check_resp_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, ims_voice_support_ind, crit_diagnostics, nulltype } value; +// OverloadStart ::= SEQUENCE +struct overload_start_s { + bool ext = false; + overload_start_ies_container protocol_ies; + // ... - std::string to_string() const; - }; - typedef enumerated types; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - ims_voice_support_ind_e& ims_voice_support_ind(); - crit_diagnostics_s& crit_diagnostics(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const ims_voice_support_ind_e& ims_voice_support_ind() const; - const crit_diagnostics_s& crit_diagnostics() const; +struct protocol_ie_container_empty_l { + template + using ie_field_s = protocol_ie_container_item_s; - private: - types type_; - choice_buffer_t c; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; +using overload_stop_ies_container = protocol_ie_container_empty_l; - void destroy_(); - }; +// OverloadStop ::= SEQUENCE +struct overload_stop_s { + bool ext = false; + overload_stop_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UERadioCapabilityInfoIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ue_radio_cap_info_ind_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, ue_radio_cap, ue_radio_cap_for_paging, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct pdu_session_res_modify_confirm_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& ue_radio_cap(); - ue_radio_cap_for_paging_s& ue_radio_cap_for_paging(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& ue_radio_cap() const; - const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const; + // member variables + bool pdu_session_res_failed_to_modify_list_mod_cfm_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_modify_list_mod_cfm; + ie_field_s > + pdu_session_res_failed_to_modify_list_mod_cfm; + ie_field_s crit_diagnostics; - private: - types type_; - choice_buffer_t > c; + // sequence methods + pdu_session_res_modify_confirm_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceModifyConfirm ::= SEQUENCE +struct pdu_session_res_modify_confirm_s { + bool ext = false; + pdu_session_res_modify_confirm_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UETNLABindingReleaseRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct uetnla_binding_release_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct pdu_session_res_modify_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_modify_list_mod_ind; - private: - types type_; - pod_choice_buffer_t c; + // sequence methods + pdu_session_res_modify_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceModifyIndication ::= SEQUENCE +struct pdu_session_res_modify_ind_s { + bool ext = false; + pdu_session_res_modify_ind_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UplinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ul_nas_transport_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, nas_pdu, user_location_info, nulltype } value; +struct pdu_session_res_modify_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - std::string to_string() const; - }; - typedef enumerated types; + // member variables + bool ran_paging_prio_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ran_paging_prio; + ie_field_s > pdu_session_res_modify_list_mod_req; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& nas_pdu(); - user_location_info_c& user_location_info(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& nas_pdu() const; - const user_location_info_c& user_location_info() const; - - private: - types type_; - choice_buffer_t, user_location_info_c> c; + // sequence methods + pdu_session_res_modify_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceModifyRequest ::= SEQUENCE +struct pdu_session_res_modify_request_s { + bool ext = false; + pdu_session_res_modify_request_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UplinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ul_non_ueassociated_nrp_pa_transport_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { routing_id, nrp_pa_pdu, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct pdu_session_res_modify_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - unbounded_octstring& routing_id(); - unbounded_octstring& nrp_pa_pdu(); - const unbounded_octstring& routing_id() const; - const unbounded_octstring& nrp_pa_pdu() const; + // member variables + bool pdu_session_res_modify_list_mod_res_present = false; + bool pdu_session_res_failed_to_modify_list_mod_res_present = false; + bool user_location_info_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_modify_list_mod_res; + ie_field_s > + pdu_session_res_failed_to_modify_list_mod_res; + ie_field_s user_location_info; + ie_field_s crit_diagnostics; - private: - types type_; - choice_buffer_t > c; + // sequence methods + pdu_session_res_modify_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceModifyResponse ::= SEQUENCE +struct pdu_session_res_modify_resp_s { + bool ext = false; + pdu_session_res_modify_resp_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UplinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ul_ran_cfg_transfer_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { son_cfg_transfer_ul, endc_son_cfg_transfer_ul, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct pdu_session_res_notify_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - son_cfg_transfer_s& son_cfg_transfer_ul(); - unbounded_octstring& endc_son_cfg_transfer_ul(); - const son_cfg_transfer_s& son_cfg_transfer_ul() const; - const unbounded_octstring& endc_son_cfg_transfer_ul() const; + // member variables + bool pdu_session_res_notify_list_present = false; + bool pdu_session_res_released_list_not_present = false; + bool user_location_info_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_notify_list; + ie_field_s > pdu_session_res_released_list_not; + ie_field_s user_location_info; - private: - types type_; - choice_buffer_t > c; + // sequence methods + pdu_session_res_notify_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceNotify ::= SEQUENCE +struct pdu_session_res_notify_s { + bool ext = false; + pdu_session_res_notify_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UplinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ul_ran_status_transfer_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, ran_status_transfer_transparent_container, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; +struct pdu_session_res_release_cmd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container() const; + // member variables + bool ran_paging_prio_present = false; + bool nas_pdu_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ran_paging_prio; + ie_field_s > nas_pdu; + ie_field_s > + pdu_session_res_to_release_list_rel_cmd; - private: - types type_; - choice_buffer_t c; + // sequence methods + pdu_session_res_release_cmd_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - void destroy_(); - }; +// PDUSessionResourceReleaseCommand ::= SEQUENCE +struct pdu_session_res_release_cmd_s { + bool ext = false; + pdu_session_res_release_cmd_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// UplinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct ul_ueassociated_nrp_pa_transport_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { amf_ue_ngap_id, ran_ue_ngap_id, routing_id, nrp_pa_pdu, nulltype } value; +struct pdu_session_res_release_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - std::string to_string() const; - }; - typedef enumerated types; + // member variables + bool user_location_info_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_released_list_rel_res; + ie_field_s user_location_info; + ie_field_s crit_diagnostics; - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint64_t& amf_ue_ngap_id(); - uint64_t& ran_ue_ngap_id(); - unbounded_octstring& routing_id(); - unbounded_octstring& nrp_pa_pdu(); - const uint64_t& amf_ue_ngap_id() const; - const uint64_t& ran_ue_ngap_id() const; - const unbounded_octstring& routing_id() const; - const unbounded_octstring& nrp_pa_pdu() const; - - private: - types type_; - choice_buffer_t > c; - - void destroy_(); - }; - - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); -}; - -// WriteReplaceWarningRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct write_replace_warning_request_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { - msg_id, - serial_num, - warning_area_list, - repeat_period, - nof_broadcasts_requested, - warning_type, - warning_security_info, - data_coding_scheme, - warning_msg_contents, - concurrent_warning_msg_ind, - warning_area_coordinates, - nulltype - } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - fixed_bitstring<16, false, true>& msg_id(); - fixed_bitstring<16, false, true>& serial_num(); - warning_area_list_c& warning_area_list(); - uint32_t& repeat_period(); - uint32_t& nof_broadcasts_requested(); - fixed_octstring<2, true>& warning_type(); - fixed_octstring<50, true>& warning_security_info(); - fixed_bitstring<8, false, true>& data_coding_scheme(); - unbounded_octstring& warning_msg_contents(); - concurrent_warning_msg_ind_e& concurrent_warning_msg_ind(); - unbounded_octstring& warning_area_coordinates(); - const fixed_bitstring<16, false, true>& msg_id() const; - const fixed_bitstring<16, false, true>& serial_num() const; - const warning_area_list_c& warning_area_list() const; - const uint32_t& repeat_period() const; - const uint32_t& nof_broadcasts_requested() const; - const fixed_octstring<2, true>& warning_type() const; - const fixed_octstring<50, true>& warning_security_info() const; - const fixed_bitstring<8, false, true>& data_coding_scheme() const; - const unbounded_octstring& warning_msg_contents() const; - const concurrent_warning_msg_ind_e& concurrent_warning_msg_ind() const; - const unbounded_octstring& warning_area_coordinates() const; - - private: - types type_; - choice_buffer_t, - fixed_octstring<2, true>, - fixed_octstring<50, true>, - unbounded_octstring, - warning_area_list_c> - c; - - void destroy_(); - }; - - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + pdu_session_res_release_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -// WriteReplaceWarningResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct write_replace_warning_resp_ies_o { - // Value ::= OPEN TYPE - struct value_c { - struct types_opts { - enum options { msg_id, serial_num, broadcast_completed_area_list, crit_diagnostics, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - value_c() = default; - value_c(const value_c& other); - value_c& operator=(const value_c& other); - ~value_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - fixed_bitstring<16, false, true>& msg_id(); - fixed_bitstring<16, false, true>& serial_num(); - broadcast_completed_area_list_c& broadcast_completed_area_list(); - crit_diagnostics_s& crit_diagnostics(); - const fixed_bitstring<16, false, true>& msg_id() const; - const fixed_bitstring<16, false, true>& serial_num() const; - const broadcast_completed_area_list_c& broadcast_completed_area_list() const; - const crit_diagnostics_s& crit_diagnostics() const; - - private: - types type_; - choice_buffer_t > c; - - void destroy_(); - }; +// PDUSessionResourceReleaseResponse ::= SEQUENCE +struct pdu_session_res_release_resp_s { + bool ext = false; + pdu_session_res_release_resp_ies_container protocol_ies; + // ... - // members lookup methods - static uint32_t idx_to_id(uint32_t idx); - static bool is_id_valid(const uint32_t& id); - static crit_e get_crit(const uint32_t& id); - static value_c get_value(const uint32_t& id); - static presence_e get_presence(const uint32_t& id); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; }; -struct location_report_ies_container { +struct pdu_session_res_setup_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ue_presence_in_area_of_interest_list_present = false; - bool ps_cell_info_present = false; + bool ran_paging_prio_present = false; + bool nas_pdu_present = false; + bool ue_aggregate_maximum_bit_rate_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s user_location_info; - ie_field_s > ue_presence_in_area_of_interest_list; - ie_field_s location_report_request_type; - ie_field_s ps_cell_info; + ie_field_s > ran_paging_prio; + ie_field_s > nas_pdu; + ie_field_s > pdu_session_res_setup_list_su_req; + ie_field_s ue_aggregate_maximum_bit_rate; // sequence methods - location_report_ies_container(); + pdu_session_res_setup_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// LocationReport ::= SEQUENCE -struct location_report_s { - bool ext = false; - location_report_ies_container protocol_ies; +// PDUSessionResourceSetupRequest ::= SEQUENCE +struct pdu_session_res_setup_request_s { + bool ext = false; + pdu_session_res_setup_request_ies_container protocol_ies; // ... // sequence methods @@ -12922,26 +11764,32 @@ struct location_report_s { void to_json(json_writer& j) const; }; -struct location_report_ctrl_ies_container { +struct pdu_session_res_setup_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s location_report_request_type; + bool pdu_session_res_setup_list_su_res_present = false; + bool pdu_session_res_failed_to_setup_list_su_res_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_setup_list_su_res; + ie_field_s > + pdu_session_res_failed_to_setup_list_su_res; + ie_field_s crit_diagnostics; // sequence methods - location_report_ctrl_ies_container(); + pdu_session_res_setup_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// LocationReportingControl ::= SEQUENCE -struct location_report_ctrl_s { - bool ext = false; - location_report_ctrl_ies_container protocol_ies; +// PDUSessionResourceSetupResponse ::= SEQUENCE +struct pdu_session_res_setup_resp_s { + bool ext = false; + pdu_session_res_setup_resp_ies_container protocol_ies; // ... // sequence methods @@ -12950,26 +11798,29 @@ struct location_report_ctrl_s { void to_json(json_writer& j) const; }; -struct location_report_fail_ind_ies_container { +struct pws_cancel_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s cause; + bool warning_area_list_present = false; + bool cancel_all_warning_msgs_present = false; + ie_field_s > msg_id; + ie_field_s > serial_num; + ie_field_s warning_area_list; + ie_field_s cancel_all_warning_msgs; // sequence methods - location_report_fail_ind_ies_container(); + pws_cancel_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// LocationReportingFailureIndication ::= SEQUENCE -struct location_report_fail_ind_s { - bool ext = false; - location_report_fail_ind_ies_container protocol_ies; +// PWSCancelRequest ::= SEQUENCE +struct pws_cancel_request_s { + bool ext = false; + pws_cancel_request_ies_container protocol_ies; // ... // sequence methods @@ -12978,27 +11829,29 @@ struct location_report_fail_ind_s { void to_json(json_writer& j) const; }; -struct nas_non_delivery_ind_ies_container { +struct pws_cancel_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > nas_pdu; - ie_field_s cause; + bool broadcast_cancelled_area_list_present = false; + bool crit_diagnostics_present = false; + ie_field_s > msg_id; + ie_field_s > serial_num; + ie_field_s broadcast_cancelled_area_list; + ie_field_s crit_diagnostics; // sequence methods - nas_non_delivery_ind_ies_container(); + pws_cancel_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NASNonDeliveryIndication ::= SEQUENCE -struct nas_non_delivery_ind_s { - bool ext = false; - nas_non_delivery_ind_ies_container protocol_ies; +// PWSCancelResponse ::= SEQUENCE +struct pws_cancel_resp_s { + bool ext = false; + pws_cancel_resp_ies_container protocol_ies; // ... // sequence methods @@ -13007,25 +11860,25 @@ struct nas_non_delivery_ind_s { void to_json(json_writer& j) const; }; -struct ng_reset_ies_container { +struct pws_fail_ind_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s cause; - ie_field_s reset_type; + ie_field_s pws_failed_cell_id_list; + ie_field_s global_ran_node_id; // sequence methods - ng_reset_ies_container(); + pws_fail_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NGReset ::= SEQUENCE -struct ng_reset_s { - bool ext = false; - ng_reset_ies_container protocol_ies; +// PWSFailureIndication ::= SEQUENCE +struct pws_fail_ind_s { + bool ext = false; + pws_fail_ind_ies_container protocol_ies; // ... // sequence methods @@ -13034,27 +11887,28 @@ struct ng_reset_s { void to_json(json_writer& j) const; }; -struct ng_reset_ack_ies_container { +struct pws_restart_ind_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ue_associated_lc_ng_conn_list_present = false; - bool crit_diagnostics_present = false; - ie_field_s > ue_associated_lc_ng_conn_list; - ie_field_s crit_diagnostics; + bool emergency_area_id_list_for_restart_present = false; + ie_field_s cell_id_list_for_restart; + ie_field_s global_ran_node_id; + ie_field_s > tai_list_for_restart; + ie_field_s, 1, 256, true> > emergency_area_id_list_for_restart; // sequence methods - ng_reset_ack_ies_container(); + pws_restart_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NGResetAcknowledge ::= SEQUENCE -struct ng_reset_ack_s { - bool ext = false; - ng_reset_ack_ies_container protocol_ies; +// PWSRestartIndication ::= SEQUENCE +struct pws_restart_ind_s { + bool ext = false; + pws_restart_ind_ies_container protocol_ies; // ... // sequence methods @@ -13063,28 +11917,35 @@ struct ng_reset_ack_s { void to_json(json_writer& j) const; }; -struct ng_setup_fail_ies_container { +struct paging_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool time_to_wait_present = false; - bool crit_diagnostics_present = false; - ie_field_s cause; - ie_field_s time_to_wait; - ie_field_s crit_diagnostics; + bool paging_drx_present = false; + bool paging_prio_present = false; + bool ue_radio_cap_for_paging_present = false; + bool paging_origin_present = false; + bool assist_data_for_paging_present = false; + ie_field_s ue_paging_id; + ie_field_s paging_drx; + ie_field_s > tai_list_for_paging; + ie_field_s paging_prio; + ie_field_s ue_radio_cap_for_paging; + ie_field_s paging_origin; + ie_field_s assist_data_for_paging; // sequence methods - ng_setup_fail_ies_container(); + paging_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NGSetupFailure ::= SEQUENCE -struct ng_setup_fail_s { - bool ext = false; - ng_setup_fail_ies_container protocol_ies; +// Paging ::= SEQUENCE +struct paging_s { + bool ext = false; + paging_ies_container protocol_ies; // ... // sequence methods @@ -13093,30 +11954,32 @@ struct ng_setup_fail_s { void to_json(json_writer& j) const; }; -struct ng_setup_request_ies_container { +struct path_switch_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ran_node_name_present = false; - bool ue_retention_info_present = false; - ie_field_s global_ran_node_id; - ie_field_s > ran_node_name; - ie_field_s > supported_ta_list; - ie_field_s default_paging_drx; - ie_field_s ue_retention_info; + bool pdu_session_res_failed_to_setup_list_ps_req_present = false; + ie_field_s > ran_ue_ngap_id; + ie_field_s > source_amf_ue_ngap_id; + ie_field_s user_location_info; + ie_field_s ue_security_cap; + ie_field_s > + pdu_session_res_to_be_switched_dl_list; + ie_field_s > + pdu_session_res_failed_to_setup_list_ps_req; // sequence methods - ng_setup_request_ies_container(); + path_switch_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NGSetupRequest ::= SEQUENCE -struct ng_setup_request_s { - bool ext = false; - ng_setup_request_ies_container protocol_ies; +// PathSwitchRequest ::= SEQUENCE +struct path_switch_request_s { + bool ext = false; + path_switch_request_ies_container protocol_ies; // ... // sequence methods @@ -13125,31 +11988,42 @@ struct ng_setup_request_s { void to_json(json_writer& j) const; }; -struct ng_setup_resp_ies_container { +struct path_switch_request_ack_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool crit_diagnostics_present = false; - bool ue_retention_info_present = false; - ie_field_s > amf_name; - ie_field_s > served_guami_list; - ie_field_s > relative_amf_capacity; - ie_field_s > plmn_support_list; - ie_field_s crit_diagnostics; - ie_field_s ue_retention_info; + bool ue_security_cap_present = false; + bool new_security_context_ind_present = false; + bool pdu_session_res_released_list_ps_ack_present = false; + bool core_network_assist_info_present = false; + bool rrc_inactive_transition_report_request_present = false; + bool crit_diagnostics_present = false; + bool redirection_voice_fallback_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s ue_security_cap; + ie_field_s security_context; + ie_field_s new_security_context_ind; + ie_field_s > pdu_session_res_switched_list; + ie_field_s > pdu_session_res_released_list_ps_ack; + ie_field_s > allowed_nssai; + ie_field_s core_network_assist_info; + ie_field_s rrc_inactive_transition_report_request; + ie_field_s crit_diagnostics; + ie_field_s redirection_voice_fallback; // sequence methods - ng_setup_resp_ies_container(); + path_switch_request_ack_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// NGSetupResponse ::= SEQUENCE -struct ng_setup_resp_s { - bool ext = false; - ng_setup_resp_ies_container protocol_ies; +// PathSwitchRequestAcknowledge ::= SEQUENCE +struct path_switch_request_ack_s { + bool ext = false; + path_switch_request_ack_ies_container protocol_ies; // ... // sequence methods @@ -13158,29 +12032,28 @@ struct ng_setup_resp_s { void to_json(json_writer& j) const; }; -struct overload_start_ies_container { +struct path_switch_request_fail_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool amf_overload_resp_present = false; - bool amf_traffic_load_reduction_ind_present = false; - bool overload_start_nssai_list_present = false; - ie_field_s amf_overload_resp; - ie_field_s > amf_traffic_load_reduction_ind; - ie_field_s > overload_start_nssai_list; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_released_list_ps_fail; + ie_field_s crit_diagnostics; // sequence methods - overload_start_ies_container(); + path_switch_request_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// OverloadStart ::= SEQUENCE -struct overload_start_s { - bool ext = false; - overload_start_ies_container protocol_ies; +// PathSwitchRequestFailure ::= SEQUENCE +struct path_switch_request_fail_s { + bool ext = false; + path_switch_request_fail_ies_container protocol_ies; // ... // sequence methods @@ -13189,21 +12062,34 @@ struct overload_start_s { void to_json(json_writer& j) const; }; -struct protocol_ie_container_empty_l { +template +struct private_ie_container_item_s { + private_ie_id_c id; + crit_e crit; + valueT_ value; + + // sequence methods + private_ie_container_item_s(private_ie_id_c id_, crit_e crit_); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct private_ie_container_empty_l { template - using ie_field_s = protocol_ie_container_item_s; + using ie_field_s = private_ie_container_item_s; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -typedef protocol_ie_container_empty_l overload_stop_ies_container; +using private_msg_ies_container = private_ie_container_empty_l; -// OverloadStop ::= SEQUENCE -struct overload_stop_s { - bool ext = false; - overload_stop_ies_container protocol_ies; +// PrivateMessage ::= SEQUENCE +struct private_msg_s { + bool ext = false; + private_msg_ies_container private_ies; // ... // sequence methods @@ -13212,31 +12098,31 @@ struct overload_stop_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_modify_confirm_ies_container { +struct ran_cfg_upd_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_failed_to_modify_list_mod_cfm_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_modify_list_mod_cfm; - ie_field_s > - pdu_session_res_failed_to_modify_list_mod_cfm; - ie_field_s crit_diagnostics; + bool ran_node_name_present = false; + bool supported_ta_list_present = false; + bool default_paging_drx_present = false; + bool global_ran_node_id_present = false; + ie_field_s > ran_node_name; + ie_field_s > supported_ta_list; + ie_field_s default_paging_drx; + ie_field_s global_ran_node_id; // sequence methods - pdu_session_res_modify_confirm_ies_container(); + ran_cfg_upd_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyConfirm ::= SEQUENCE -struct pdu_session_res_modify_confirm_s { - bool ext = false; - pdu_session_res_modify_confirm_ies_container protocol_ies; +// RANConfigurationUpdate ::= SEQUENCE +struct ran_cfg_upd_s { + bool ext = false; + ran_cfg_upd_ies_container protocol_ies; // ... // sequence methods @@ -13245,26 +12131,40 @@ struct pdu_session_res_modify_confirm_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_modify_ind_ies_container { +// RANConfigurationUpdateAcknowledge ::= SEQUENCE +struct ran_cfg_upd_ack_s { + bool ext = false; + protocol_ie_container_l protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ran_cfg_upd_fail_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_modify_list_mod_ind; + bool time_to_wait_present = false; + bool crit_diagnostics_present = false; + ie_field_s cause; + ie_field_s time_to_wait; + ie_field_s crit_diagnostics; // sequence methods - pdu_session_res_modify_ind_ies_container(); + ran_cfg_upd_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyIndication ::= SEQUENCE -struct pdu_session_res_modify_ind_s { - bool ext = false; - pdu_session_res_modify_ind_ies_container protocol_ies; +// RANConfigurationUpdateFailure ::= SEQUENCE +struct ran_cfg_upd_fail_s { + bool ext = false; + ran_cfg_upd_fail_ies_container protocol_ies; // ... // sequence methods @@ -13273,28 +12173,27 @@ struct pdu_session_res_modify_ind_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_modify_request_ies_container { +struct rrc_inactive_transition_report_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ran_paging_prio_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > ran_paging_prio; - ie_field_s > pdu_session_res_modify_list_mod_req; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s rrc_state; + ie_field_s user_location_info; // sequence methods - pdu_session_res_modify_request_ies_container(); + rrc_inactive_transition_report_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyRequest ::= SEQUENCE -struct pdu_session_res_modify_request_s { +// RRCInactiveTransitionReport ::= SEQUENCE +struct rrc_inactive_transition_report_s { bool ext = false; - pdu_session_res_modify_request_ies_container protocol_ies; + rrc_inactive_transition_report_ies_container protocol_ies; // ... // sequence methods @@ -13303,34 +12202,30 @@ struct pdu_session_res_modify_request_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_modify_resp_ies_container { +struct reroute_nas_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_modify_list_mod_res_present = false; - bool pdu_session_res_failed_to_modify_list_mod_res_present = false; - bool user_location_info_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_modify_list_mod_res; - ie_field_s > - pdu_session_res_failed_to_modify_list_mod_res; - ie_field_s user_location_info; - ie_field_s crit_diagnostics; + bool amf_ue_ngap_id_present = false; + bool allowed_nssai_present = false; + ie_field_s > ran_ue_ngap_id; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ngap_msg; + ie_field_s > amf_set_id; + ie_field_s > allowed_nssai; // sequence methods - pdu_session_res_modify_resp_ies_container(); + reroute_nas_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyResponse ::= SEQUENCE -struct pdu_session_res_modify_resp_s { - bool ext = false; - pdu_session_res_modify_resp_ies_container protocol_ies; +// RerouteNASRequest ::= SEQUENCE +struct reroute_nas_request_s { + bool ext = false; + reroute_nas_request_ies_container protocol_ies; // ... // sequence methods @@ -13339,31 +12234,29 @@ struct pdu_session_res_modify_resp_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_notify_ies_container { +struct secondary_rat_data_usage_report_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_notify_list_present = false; - bool pdu_session_res_released_list_not_present = false; - bool user_location_info_present = false; + bool ho_flag_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_notify_list; - ie_field_s > pdu_session_res_released_list_not; - ie_field_s user_location_info; + ie_field_s > + pdu_session_res_secondary_ratusage_list; + ie_field_s ho_flag; // sequence methods - pdu_session_res_notify_ies_container(); + secondary_rat_data_usage_report_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceNotify ::= SEQUENCE -struct pdu_session_res_notify_s { - bool ext = false; - pdu_session_res_notify_ies_container protocol_ies; +// SecondaryRATDataUsageReport ::= SEQUENCE +struct secondary_rat_data_usage_report_s { + bool ext = false; + secondary_rat_data_usage_report_ies_container protocol_ies; // ... // sequence methods @@ -13372,31 +12265,27 @@ struct pdu_session_res_notify_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_release_cmd_ies_container { +struct trace_fail_ind_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ran_paging_prio_present = false; - bool nas_pdu_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s > ran_paging_prio; - ie_field_s > nas_pdu; - ie_field_s > - pdu_session_res_to_release_list_rel_cmd; + ie_field_s > ngran_trace_id; + ie_field_s cause; // sequence methods - pdu_session_res_release_cmd_ies_container(); + trace_fail_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseCommand ::= SEQUENCE -struct pdu_session_res_release_cmd_s { - bool ext = false; - pdu_session_res_release_cmd_ies_container protocol_ies; +// TraceFailureIndication ::= SEQUENCE +struct trace_fail_ind_s { + bool ext = false; + trace_fail_ind_ies_container protocol_ies; // ... // sequence methods @@ -13405,30 +12294,26 @@ struct pdu_session_res_release_cmd_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_release_resp_ies_container { +struct trace_start_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool user_location_info_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_released_list_rel_res; - ie_field_s user_location_info; - ie_field_s crit_diagnostics; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s trace_activation; // sequence methods - pdu_session_res_release_resp_ies_container(); + trace_start_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseResponse ::= SEQUENCE -struct pdu_session_res_release_resp_s { - bool ext = false; - pdu_session_res_release_resp_ies_container protocol_ies; +// TraceStart ::= SEQUENCE +struct trace_start_s { + bool ext = false; + trace_start_ies_container protocol_ies; // ... // sequence methods @@ -13437,32 +12322,28 @@ struct pdu_session_res_release_resp_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_setup_request_ies_container { +struct ue_context_mod_fail_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ran_paging_prio_present = false; - bool nas_pdu_present = false; - bool ue_aggregate_maximum_bit_rate_present = false; + bool crit_diagnostics_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s > ran_paging_prio; - ie_field_s > nas_pdu; - ie_field_s > pdu_session_res_setup_list_su_req; - ie_field_s ue_aggregate_maximum_bit_rate; + ie_field_s cause; + ie_field_s crit_diagnostics; // sequence methods - pdu_session_res_setup_request_ies_container(); + ue_context_mod_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupRequest ::= SEQUENCE -struct pdu_session_res_setup_request_s { - bool ext = false; - pdu_session_res_setup_request_ies_container protocol_ies; +// UEContextModificationFailure ::= SEQUENCE +struct ue_context_mod_fail_s { + bool ext = false; + ue_context_mod_fail_ies_container protocol_ies; // ... // sequence methods @@ -13471,32 +12352,43 @@ struct pdu_session_res_setup_request_s { void to_json(json_writer& j) const; }; -struct pdu_session_res_setup_resp_ies_container { +struct ue_context_mod_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_setup_list_su_res_present = false; - bool pdu_session_res_failed_to_setup_list_su_res_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_setup_list_su_res; - ie_field_s > - pdu_session_res_failed_to_setup_list_su_res; - ie_field_s crit_diagnostics; + bool ran_paging_prio_present = false; + bool security_key_present = false; + bool idx_to_rfsp_present = false; + bool ue_aggregate_maximum_bit_rate_present = false; + bool ue_security_cap_present = false; + bool core_network_assist_info_present = false; + bool emergency_fallback_ind_present = false; + bool new_amf_ue_ngap_id_present = false; + bool rrc_inactive_transition_report_request_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ran_paging_prio; + ie_field_s > security_key; + ie_field_s > idx_to_rfsp; + ie_field_s ue_aggregate_maximum_bit_rate; + ie_field_s ue_security_cap; + ie_field_s core_network_assist_info; + ie_field_s emergency_fallback_ind; + ie_field_s > new_amf_ue_ngap_id; + ie_field_s rrc_inactive_transition_report_request; // sequence methods - pdu_session_res_setup_resp_ies_container(); + ue_context_mod_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupResponse ::= SEQUENCE -struct pdu_session_res_setup_resp_s { - bool ext = false; - pdu_session_res_setup_resp_ies_container protocol_ies; +// UEContextModificationRequest ::= SEQUENCE +struct ue_context_mod_request_s { + bool ext = false; + ue_context_mod_request_ies_container protocol_ies; // ... // sequence methods @@ -13505,29 +12397,31 @@ struct pdu_session_res_setup_resp_s { void to_json(json_writer& j) const; }; -struct pws_cancel_request_ies_container { +struct ue_context_mod_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool warning_area_list_present = false; - bool cancel_all_warning_msgs_present = false; - ie_field_s > msg_id; - ie_field_s > serial_num; - ie_field_s warning_area_list; - ie_field_s cancel_all_warning_msgs; + bool rrc_state_present = false; + bool user_location_info_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s rrc_state; + ie_field_s user_location_info; + ie_field_s crit_diagnostics; // sequence methods - pws_cancel_request_ies_container(); + ue_context_mod_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PWSCancelRequest ::= SEQUENCE -struct pws_cancel_request_s { - bool ext = false; - pws_cancel_request_ies_container protocol_ies; +// UEContextModificationResponse ::= SEQUENCE +struct ue_context_mod_resp_s { + bool ext = false; + ue_context_mod_resp_ies_container protocol_ies; // ... // sequence methods @@ -13536,29 +12430,25 @@ struct pws_cancel_request_s { void to_json(json_writer& j) const; }; -struct pws_cancel_resp_ies_container { +struct ue_context_release_cmd_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool broadcast_cancelled_area_list_present = false; - bool crit_diagnostics_present = false; - ie_field_s > msg_id; - ie_field_s > serial_num; - ie_field_s broadcast_cancelled_area_list; - ie_field_s crit_diagnostics; + ie_field_s ue_ngap_ids; + ie_field_s cause; // sequence methods - pws_cancel_resp_ies_container(); + ue_context_release_cmd_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PWSCancelResponse ::= SEQUENCE -struct pws_cancel_resp_s { - bool ext = false; - pws_cancel_resp_ies_container protocol_ies; +// UEContextReleaseCommand ::= SEQUENCE +struct ue_context_release_cmd_s { + bool ext = false; + ue_context_release_cmd_ies_container protocol_ies; // ... // sequence methods @@ -13567,25 +12457,33 @@ struct pws_cancel_resp_s { void to_json(json_writer& j) const; }; -struct pws_fail_ind_ies_container { +struct ue_context_release_complete_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s pws_failed_cell_id_list; - ie_field_s global_ran_node_id; + bool user_location_info_present = false; + bool info_on_recommended_cells_and_ran_nodes_for_paging_present = false; + bool pdu_session_res_list_cxt_rel_cpl_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s user_location_info; + ie_field_s info_on_recommended_cells_and_ran_nodes_for_paging; + ie_field_s > pdu_session_res_list_cxt_rel_cpl; + ie_field_s crit_diagnostics; // sequence methods - pws_fail_ind_ies_container(); + ue_context_release_complete_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PWSFailureIndication ::= SEQUENCE -struct pws_fail_ind_s { - bool ext = false; - pws_fail_ind_ies_container protocol_ies; +// UEContextReleaseComplete ::= SEQUENCE +struct ue_context_release_complete_s { + bool ext = false; + ue_context_release_complete_ies_container protocol_ies; // ... // sequence methods @@ -13594,28 +12492,28 @@ struct pws_fail_ind_s { void to_json(json_writer& j) const; }; -struct pws_restart_ind_ies_container { +struct ue_context_release_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool emergency_area_id_list_for_restart_present = false; - ie_field_s cell_id_list_for_restart; - ie_field_s global_ran_node_id; - ie_field_s > tai_list_for_restart; - ie_field_s, 1, 256, true> > emergency_area_id_list_for_restart; + bool pdu_session_res_list_cxt_rel_req_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_list_cxt_rel_req; + ie_field_s cause; // sequence methods - pws_restart_ind_ies_container(); + ue_context_release_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PWSRestartIndication ::= SEQUENCE -struct pws_restart_ind_s { - bool ext = false; - pws_restart_ind_ies_container protocol_ies; +// UEContextReleaseRequest ::= SEQUENCE +struct ue_context_release_request_s { + bool ext = false; + ue_context_release_request_ies_container protocol_ies; // ... // sequence methods @@ -13624,35 +12522,27 @@ struct pws_restart_ind_s { void to_json(json_writer& j) const; }; -struct paging_ies_container { +struct ue_radio_cap_check_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool paging_drx_present = false; - bool paging_prio_present = false; - bool ue_radio_cap_for_paging_present = false; - bool paging_origin_present = false; - bool assist_data_for_paging_present = false; - ie_field_s ue_paging_id; - ie_field_s paging_drx; - ie_field_s > tai_list_for_paging; - ie_field_s paging_prio; - ie_field_s ue_radio_cap_for_paging; - ie_field_s paging_origin; - ie_field_s assist_data_for_paging; + bool ue_radio_cap_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ue_radio_cap; // sequence methods - paging_ies_container(); + ue_radio_cap_check_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// Paging ::= SEQUENCE -struct paging_s { - bool ext = false; - paging_ies_container protocol_ies; +// UERadioCapabilityCheckRequest ::= SEQUENCE +struct ue_radio_cap_check_request_s { + bool ext = false; + ue_radio_cap_check_request_ies_container protocol_ies; // ... // sequence methods @@ -13661,32 +12551,28 @@ struct paging_s { void to_json(json_writer& j) const; }; -struct path_switch_request_ies_container { +struct ue_radio_cap_check_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool pdu_session_res_failed_to_setup_list_ps_req_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s > source_amf_ue_ngap_id; - ie_field_s user_location_info; - ie_field_s ue_security_cap; - ie_field_s > - pdu_session_res_to_be_switched_dl_list; - ie_field_s > - pdu_session_res_failed_to_setup_list_ps_req; + ie_field_s ims_voice_support_ind; + ie_field_s crit_diagnostics; // sequence methods - path_switch_request_ies_container(); + ue_radio_cap_check_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PathSwitchRequest ::= SEQUENCE -struct path_switch_request_s { - bool ext = false; - path_switch_request_ies_container protocol_ies; +// UERadioCapabilityCheckResponse ::= SEQUENCE +struct ue_radio_cap_check_resp_s { + bool ext = false; + ue_radio_cap_check_resp_ies_container protocol_ies; // ... // sequence methods @@ -13695,42 +12581,28 @@ struct path_switch_request_s { void to_json(json_writer& j) const; }; -struct path_switch_request_ack_ies_container { +struct ue_radio_cap_info_ind_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ue_security_cap_present = false; - bool new_security_context_ind_present = false; - bool pdu_session_res_released_list_ps_ack_present = false; - bool core_network_assist_info_present = false; - bool rrc_inactive_transition_report_request_present = false; - bool crit_diagnostics_present = false; - bool redirection_voice_fallback_present = false; + bool ue_radio_cap_for_paging_present = false; ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s ue_security_cap; - ie_field_s security_context; - ie_field_s new_security_context_ind; - ie_field_s > pdu_session_res_switched_list; - ie_field_s > pdu_session_res_released_list_ps_ack; - ie_field_s > allowed_nssai; - ie_field_s core_network_assist_info; - ie_field_s rrc_inactive_transition_report_request; - ie_field_s crit_diagnostics; - ie_field_s redirection_voice_fallback; + ie_field_s > ue_radio_cap; + ie_field_s ue_radio_cap_for_paging; // sequence methods - path_switch_request_ack_ies_container(); + ue_radio_cap_info_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PathSwitchRequestAcknowledge ::= SEQUENCE -struct path_switch_request_ack_s { - bool ext = false; - path_switch_request_ack_ies_container protocol_ies; +// UERadioCapabilityInfoIndication ::= SEQUENCE +struct ue_radio_cap_info_ind_s { + bool ext = false; + ue_radio_cap_info_ind_ies_container protocol_ies; // ... // sequence methods @@ -13739,28 +12611,25 @@ struct path_switch_request_ack_s { void to_json(json_writer& j) const; }; -struct path_switch_request_fail_ies_container { +struct uetnla_binding_release_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_released_list_ps_fail; - ie_field_s crit_diagnostics; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; // sequence methods - path_switch_request_fail_ies_container(); + uetnla_binding_release_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// PathSwitchRequestFailure ::= SEQUENCE -struct path_switch_request_fail_s { - bool ext = false; - path_switch_request_fail_ies_container protocol_ies; +// UETNLABindingReleaseRequest ::= SEQUENCE +struct uetnla_binding_release_request_s { + bool ext = false; + uetnla_binding_release_request_ies_container protocol_ies; // ... // sequence methods @@ -13769,34 +12638,27 @@ struct path_switch_request_fail_s { void to_json(json_writer& j) const; }; -template -struct private_ie_container_item_s { - private_ie_id_c id; - crit_e crit; - valueT_ value; - - // sequence methods - private_ie_container_item_s(private_ie_id_c id_, crit_e crit_); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -struct private_ie_container_empty_l { +struct ul_nas_transport_ies_container { template - using ie_field_s = private_ie_container_item_s; + using ie_field_s = protocol_ie_container_item_s; + + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > nas_pdu; + ie_field_s user_location_info; // sequence methods + ul_nas_transport_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -typedef private_ie_container_empty_l private_msg_ies_container; -// PrivateMessage ::= SEQUENCE -struct private_msg_s { - bool ext = false; - private_msg_ies_container private_ies; +// UplinkNASTransport ::= SEQUENCE +struct ul_nas_transport_s { + bool ext = false; + ul_nas_transport_ies_container protocol_ies; // ... // sequence methods @@ -13805,43 +12667,25 @@ struct private_msg_s { void to_json(json_writer& j) const; }; -struct ran_cfg_upd_ies_container { +struct ul_non_ueassociated_nrp_pa_transport_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ran_node_name_present = false; - bool supported_ta_list_present = false; - bool default_paging_drx_present = false; - bool global_ran_node_id_present = false; - ie_field_s > ran_node_name; - ie_field_s > supported_ta_list; - ie_field_s default_paging_drx; - ie_field_s global_ran_node_id; - - // sequence methods - ran_cfg_upd_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// RANConfigurationUpdate ::= SEQUENCE -struct ran_cfg_upd_s { - bool ext = false; - ran_cfg_upd_ies_container protocol_ies; - // ... + ie_field_s > routing_id; + ie_field_s > nrp_pa_pdu; // sequence methods + ul_non_ueassociated_nrp_pa_transport_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// RANConfigurationUpdateAcknowledge ::= SEQUENCE -struct ran_cfg_upd_ack_s { - bool ext = false; - protocol_ie_container_l protocol_ies; +// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE +struct ul_non_ueassociated_nrp_pa_transport_s { + bool ext = false; + ul_non_ueassociated_nrp_pa_transport_ies_container protocol_ies; // ... // sequence methods @@ -13850,28 +12694,27 @@ struct ran_cfg_upd_ack_s { void to_json(json_writer& j) const; }; -struct ran_cfg_upd_fail_ies_container { +struct ul_ran_cfg_transfer_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool time_to_wait_present = false; - bool crit_diagnostics_present = false; - ie_field_s cause; - ie_field_s time_to_wait; - ie_field_s crit_diagnostics; + bool son_cfg_transfer_ul_present = false; + bool endc_son_cfg_transfer_ul_present = false; + ie_field_s son_cfg_transfer_ul; + ie_field_s > endc_son_cfg_transfer_ul; // sequence methods - ran_cfg_upd_fail_ies_container(); + ul_ran_cfg_transfer_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// RANConfigurationUpdateFailure ::= SEQUENCE -struct ran_cfg_upd_fail_s { - bool ext = false; - ran_cfg_upd_fail_ies_container protocol_ies; +// UplinkRANConfigurationTransfer ::= SEQUENCE +struct ul_ran_cfg_transfer_s { + bool ext = false; + ul_ran_cfg_transfer_ies_container protocol_ies; // ... // sequence methods @@ -13880,27 +12723,26 @@ struct ran_cfg_upd_fail_s { void to_json(json_writer& j) const; }; -struct rrc_inactive_transition_report_ies_container { +struct ul_ran_status_transfer_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables ie_field_s > amf_ue_ngap_id; ie_field_s > ran_ue_ngap_id; - ie_field_s rrc_state; - ie_field_s user_location_info; + ie_field_s ran_status_transfer_transparent_container; // sequence methods - rrc_inactive_transition_report_ies_container(); + ul_ran_status_transfer_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// RRCInactiveTransitionReport ::= SEQUENCE -struct rrc_inactive_transition_report_s { - bool ext = false; - rrc_inactive_transition_report_ies_container protocol_ies; +// UplinkRANStatusTransfer ::= SEQUENCE +struct ul_ran_status_transfer_s { + bool ext = false; + ul_ran_status_transfer_ies_container protocol_ies; // ... // sequence methods @@ -13909,30 +12751,27 @@ struct rrc_inactive_transition_report_s { void to_json(json_writer& j) const; }; -struct reroute_nas_request_ies_container { +struct ul_ueassociated_nrp_pa_transport_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool amf_ue_ngap_id_present = false; - bool allowed_nssai_present = false; - ie_field_s > ran_ue_ngap_id; ie_field_s > amf_ue_ngap_id; - ie_field_s > ngap_msg; - ie_field_s > amf_set_id; - ie_field_s > allowed_nssai; + ie_field_s > ran_ue_ngap_id; + ie_field_s > routing_id; + ie_field_s > nrp_pa_pdu; // sequence methods - reroute_nas_request_ies_container(); + ul_ueassociated_nrp_pa_transport_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// RerouteNASRequest ::= SEQUENCE -struct reroute_nas_request_s { - bool ext = false; - reroute_nas_request_ies_container protocol_ies; +// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE +struct ul_ueassociated_nrp_pa_transport_s { + bool ext = false; + ul_ueassociated_nrp_pa_transport_ies_container protocol_ies; // ... // sequence methods @@ -13941,29 +12780,41 @@ struct reroute_nas_request_s { void to_json(json_writer& j) const; }; -struct secondary_rat_data_usage_report_ies_container { +struct write_replace_warning_request_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - bool ho_flag_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > - pdu_session_res_secondary_ratusage_list; - ie_field_s ho_flag; + bool warning_area_list_present = false; + bool warning_type_present = false; + bool warning_security_info_present = false; + bool data_coding_scheme_present = false; + bool warning_msg_contents_present = false; + bool concurrent_warning_msg_ind_present = false; + bool warning_area_coordinates_present = false; + ie_field_s > msg_id; + ie_field_s > serial_num; + ie_field_s warning_area_list; + ie_field_s > repeat_period; + ie_field_s > nof_broadcasts_requested; + ie_field_s > warning_type; + ie_field_s > warning_security_info; + ie_field_s > data_coding_scheme; + ie_field_s > warning_msg_contents; + ie_field_s concurrent_warning_msg_ind; + ie_field_s > warning_area_coordinates; // sequence methods - secondary_rat_data_usage_report_ies_container(); + write_replace_warning_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// SecondaryRATDataUsageReport ::= SEQUENCE -struct secondary_rat_data_usage_report_s { - bool ext = false; - secondary_rat_data_usage_report_ies_container protocol_ies; +// WriteReplaceWarningRequest ::= SEQUENCE +struct write_replace_warning_request_s { + bool ext = false; + write_replace_warning_request_ies_container protocol_ies; // ... // sequence methods @@ -13972,55 +12823,29 @@ struct secondary_rat_data_usage_report_s { void to_json(json_writer& j) const; }; -struct trace_fail_ind_ies_container { +struct write_replace_warning_resp_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > ngran_trace_id; - ie_field_s cause; - - // sequence methods - trace_fail_ind_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// TraceFailureIndication ::= SEQUENCE -struct trace_fail_ind_s { - bool ext = false; - trace_fail_ind_ies_container protocol_ies; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -struct trace_start_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s trace_activation; + bool broadcast_completed_area_list_present = false; + bool crit_diagnostics_present = false; + ie_field_s > msg_id; + ie_field_s > serial_num; + ie_field_s broadcast_completed_area_list; + ie_field_s crit_diagnostics; // sequence methods - trace_start_ies_container(); + write_replace_warning_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// TraceStart ::= SEQUENCE -struct trace_start_s { - bool ext = false; - trace_start_ies_container protocol_ies; +// WriteReplaceWarningResponse ::= SEQUENCE +struct write_replace_warning_resp_s { + bool ext = false; + write_replace_warning_resp_ies_container protocol_ies; // ... // sequence methods @@ -14029,73 +12854,709 @@ struct trace_start_s { void to_json(json_writer& j) const; }; -struct ue_context_mod_fail_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s cause; - ie_field_s crit_diagnostics; - - // sequence methods - ue_context_mod_fail_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UEContextModificationFailure ::= SEQUENCE -struct ue_context_mod_fail_s { - bool ext = false; - ue_context_mod_fail_ies_container protocol_ies; - // ... +// NGAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE +struct ngap_elem_procs_o { + // InitiatingMessage ::= OPEN TYPE + struct init_msg_c { + struct types_opts { + enum options { + amf_cfg_upd, + ho_cancel, + ho_required, + ho_request, + init_context_setup_request, + ng_reset, + ng_setup_request, + path_switch_request, + pdu_session_res_modify_request, + pdu_session_res_modify_ind, + pdu_session_res_release_cmd, + pdu_session_res_setup_request, + pws_cancel_request, + ran_cfg_upd, + ue_context_mod_request, + ue_context_release_cmd, + ue_radio_cap_check_request, + write_replace_warning_request, + amf_status_ind, + cell_traffic_trace, + deactiv_trace, + dl_nas_transport, + dl_non_ueassociated_nrp_pa_transport, + dl_ran_cfg_transfer, + dl_ran_status_transfer, + dl_ueassociated_nrp_pa_transport, + error_ind, + ho_notify, + init_ue_msg, + location_report, + location_report_ctrl, + location_report_fail_ind, + nas_non_delivery_ind, + overload_start, + overload_stop, + paging, + pdu_session_res_notify, + private_msg, + pws_fail_ind, + pws_restart_ind, + reroute_nas_request, + rrc_inactive_transition_report, + secondary_rat_data_usage_report, + trace_fail_ind, + trace_start, + ue_context_release_request, + ue_radio_cap_info_ind, + uetnla_binding_release_request, + ul_nas_transport, + ul_non_ueassociated_nrp_pa_transport, + ul_ran_cfg_transfer, + ul_ran_status_transfer, + ul_ueassociated_nrp_pa_transport, + nulltype + } value; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + const char* to_string() const; + }; + typedef enumerated types; -struct ue_context_mod_request_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; + // choice methods + init_msg_c() = default; + init_msg_c(const init_msg_c& other); + init_msg_c& operator=(const init_msg_c& other); + ~init_msg_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + amf_cfg_upd_s& amf_cfg_upd(); + ho_cancel_s& ho_cancel(); + ho_required_s& ho_required(); + ho_request_s& ho_request(); + init_context_setup_request_s& init_context_setup_request(); + ng_reset_s& ng_reset(); + ng_setup_request_s& ng_setup_request(); + path_switch_request_s& path_switch_request(); + pdu_session_res_modify_request_s& pdu_session_res_modify_request(); + pdu_session_res_modify_ind_s& pdu_session_res_modify_ind(); + pdu_session_res_release_cmd_s& pdu_session_res_release_cmd(); + pdu_session_res_setup_request_s& pdu_session_res_setup_request(); + pws_cancel_request_s& pws_cancel_request(); + ran_cfg_upd_s& ran_cfg_upd(); + ue_context_mod_request_s& ue_context_mod_request(); + ue_context_release_cmd_s& ue_context_release_cmd(); + ue_radio_cap_check_request_s& ue_radio_cap_check_request(); + write_replace_warning_request_s& write_replace_warning_request(); + amf_status_ind_s& amf_status_ind(); + cell_traffic_trace_s& cell_traffic_trace(); + deactiv_trace_s& deactiv_trace(); + dl_nas_transport_s& dl_nas_transport(); + dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport(); + dl_ran_cfg_transfer_s& dl_ran_cfg_transfer(); + dl_ran_status_transfer_s& dl_ran_status_transfer(); + dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport(); + error_ind_s& error_ind(); + ho_notify_s& ho_notify(); + init_ue_msg_s& init_ue_msg(); + location_report_s& location_report(); + location_report_ctrl_s& location_report_ctrl(); + location_report_fail_ind_s& location_report_fail_ind(); + nas_non_delivery_ind_s& nas_non_delivery_ind(); + overload_start_s& overload_start(); + overload_stop_s& overload_stop(); + paging_s& paging(); + pdu_session_res_notify_s& pdu_session_res_notify(); + private_msg_s& private_msg(); + pws_fail_ind_s& pws_fail_ind(); + pws_restart_ind_s& pws_restart_ind(); + reroute_nas_request_s& reroute_nas_request(); + rrc_inactive_transition_report_s& rrc_inactive_transition_report(); + secondary_rat_data_usage_report_s& secondary_rat_data_usage_report(); + trace_fail_ind_s& trace_fail_ind(); + trace_start_s& trace_start(); + ue_context_release_request_s& ue_context_release_request(); + ue_radio_cap_info_ind_s& ue_radio_cap_info_ind(); + uetnla_binding_release_request_s& uetnla_binding_release_request(); + ul_nas_transport_s& ul_nas_transport(); + ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport(); + ul_ran_cfg_transfer_s& ul_ran_cfg_transfer(); + ul_ran_status_transfer_s& ul_ran_status_transfer(); + ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport(); + const amf_cfg_upd_s& amf_cfg_upd() const; + const ho_cancel_s& ho_cancel() const; + const ho_required_s& ho_required() const; + const ho_request_s& ho_request() const; + const init_context_setup_request_s& init_context_setup_request() const; + const ng_reset_s& ng_reset() const; + const ng_setup_request_s& ng_setup_request() const; + const path_switch_request_s& path_switch_request() const; + const pdu_session_res_modify_request_s& pdu_session_res_modify_request() const; + const pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() const; + const pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() const; + const pdu_session_res_setup_request_s& pdu_session_res_setup_request() const; + const pws_cancel_request_s& pws_cancel_request() const; + const ran_cfg_upd_s& ran_cfg_upd() const; + const ue_context_mod_request_s& ue_context_mod_request() const; + const ue_context_release_cmd_s& ue_context_release_cmd() const; + const ue_radio_cap_check_request_s& ue_radio_cap_check_request() const; + const write_replace_warning_request_s& write_replace_warning_request() const; + const amf_status_ind_s& amf_status_ind() const; + const cell_traffic_trace_s& cell_traffic_trace() const; + const deactiv_trace_s& deactiv_trace() const; + const dl_nas_transport_s& dl_nas_transport() const; + const dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() const; + const dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() const; + const dl_ran_status_transfer_s& dl_ran_status_transfer() const; + const dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() const; + const error_ind_s& error_ind() const; + const ho_notify_s& ho_notify() const; + const init_ue_msg_s& init_ue_msg() const; + const location_report_s& location_report() const; + const location_report_ctrl_s& location_report_ctrl() const; + const location_report_fail_ind_s& location_report_fail_ind() const; + const nas_non_delivery_ind_s& nas_non_delivery_ind() const; + const overload_start_s& overload_start() const; + const overload_stop_s& overload_stop() const; + const paging_s& paging() const; + const pdu_session_res_notify_s& pdu_session_res_notify() const; + const private_msg_s& private_msg() const; + const pws_fail_ind_s& pws_fail_ind() const; + const pws_restart_ind_s& pws_restart_ind() const; + const reroute_nas_request_s& reroute_nas_request() const; + const rrc_inactive_transition_report_s& rrc_inactive_transition_report() const; + const secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() const; + const trace_fail_ind_s& trace_fail_ind() const; + const trace_start_s& trace_start() const; + const ue_context_release_request_s& ue_context_release_request() const; + const ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() const; + const uetnla_binding_release_request_s& uetnla_binding_release_request() const; + const ul_nas_transport_s& ul_nas_transport() const; + const ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() const; + const ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() const; + const ul_ran_status_transfer_s& ul_ran_status_transfer() const; + const ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() const; - // member variables - bool ran_paging_prio_present = false; - bool security_key_present = false; - bool idx_to_rfsp_present = false; - bool ue_aggregate_maximum_bit_rate_present = false; - bool ue_security_cap_present = false; - bool core_network_assist_info_present = false; - bool emergency_fallback_ind_present = false; - bool new_amf_ue_ngap_id_present = false; - bool rrc_inactive_transition_report_request_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > ran_paging_prio; - ie_field_s > security_key; - ie_field_s > idx_to_rfsp; - ie_field_s ue_aggregate_maximum_bit_rate; - ie_field_s ue_security_cap; - ie_field_s core_network_assist_info; - ie_field_s emergency_fallback_ind; - ie_field_s > new_amf_ue_ngap_id; - ie_field_s rrc_inactive_transition_report_request; + private: + types type_; + choice_buffer_t + c; + + void destroy_(); + }; + // SuccessfulOutcome ::= OPEN TYPE + struct successful_outcome_c { + struct types_opts { + enum options { + amf_cfg_upd_ack, + ho_cancel_ack, + ho_cmd, + ho_request_ack, + init_context_setup_resp, + ng_reset_ack, + ng_setup_resp, + path_switch_request_ack, + pdu_session_res_modify_resp, + pdu_session_res_modify_confirm, + pdu_session_res_release_resp, + pdu_session_res_setup_resp, + pws_cancel_resp, + ran_cfg_upd_ack, + ue_context_mod_resp, + ue_context_release_complete, + ue_radio_cap_check_resp, + write_replace_warning_resp, + nulltype + } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + successful_outcome_c() = default; + successful_outcome_c(const successful_outcome_c& other); + successful_outcome_c& operator=(const successful_outcome_c& other); + ~successful_outcome_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + amf_cfg_upd_ack_s& amf_cfg_upd_ack(); + ho_cancel_ack_s& ho_cancel_ack(); + ho_cmd_s& ho_cmd(); + ho_request_ack_s& ho_request_ack(); + init_context_setup_resp_s& init_context_setup_resp(); + ng_reset_ack_s& ng_reset_ack(); + ng_setup_resp_s& ng_setup_resp(); + path_switch_request_ack_s& path_switch_request_ack(); + pdu_session_res_modify_resp_s& pdu_session_res_modify_resp(); + pdu_session_res_modify_confirm_s& pdu_session_res_modify_confirm(); + pdu_session_res_release_resp_s& pdu_session_res_release_resp(); + pdu_session_res_setup_resp_s& pdu_session_res_setup_resp(); + pws_cancel_resp_s& pws_cancel_resp(); + ran_cfg_upd_ack_s& ran_cfg_upd_ack(); + ue_context_mod_resp_s& ue_context_mod_resp(); + ue_context_release_complete_s& ue_context_release_complete(); + ue_radio_cap_check_resp_s& ue_radio_cap_check_resp(); + write_replace_warning_resp_s& write_replace_warning_resp(); + const amf_cfg_upd_ack_s& amf_cfg_upd_ack() const; + const ho_cancel_ack_s& ho_cancel_ack() const; + const ho_cmd_s& ho_cmd() const; + const ho_request_ack_s& ho_request_ack() const; + const init_context_setup_resp_s& init_context_setup_resp() const; + const ng_reset_ack_s& ng_reset_ack() const; + const ng_setup_resp_s& ng_setup_resp() const; + const path_switch_request_ack_s& path_switch_request_ack() const; + const pdu_session_res_modify_resp_s& pdu_session_res_modify_resp() const; + const pdu_session_res_modify_confirm_s& pdu_session_res_modify_confirm() const; + const pdu_session_res_release_resp_s& pdu_session_res_release_resp() const; + const pdu_session_res_setup_resp_s& pdu_session_res_setup_resp() const; + const pws_cancel_resp_s& pws_cancel_resp() const; + const ran_cfg_upd_ack_s& ran_cfg_upd_ack() const; + const ue_context_mod_resp_s& ue_context_mod_resp() const; + const ue_context_release_complete_s& ue_context_release_complete() const; + const ue_radio_cap_check_resp_s& ue_radio_cap_check_resp() const; + const write_replace_warning_resp_s& write_replace_warning_resp() const; + + private: + types type_; + choice_buffer_t + c; + + void destroy_(); + }; + // UnsuccessfulOutcome ::= OPEN TYPE + struct unsuccessful_outcome_c { + struct types_opts { + enum options { + amf_cfg_upd_fail, + ho_prep_fail, + ho_fail, + init_context_setup_fail, + ng_setup_fail, + path_switch_request_fail, + ran_cfg_upd_fail, + ue_context_mod_fail, + nulltype + } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + unsuccessful_outcome_c() = default; + unsuccessful_outcome_c(const unsuccessful_outcome_c& other); + unsuccessful_outcome_c& operator=(const unsuccessful_outcome_c& other); + ~unsuccessful_outcome_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + amf_cfg_upd_fail_s& amf_cfg_upd_fail(); + ho_prep_fail_s& ho_prep_fail(); + ho_fail_s& ho_fail(); + init_context_setup_fail_s& init_context_setup_fail(); + ng_setup_fail_s& ng_setup_fail(); + path_switch_request_fail_s& path_switch_request_fail(); + ran_cfg_upd_fail_s& ran_cfg_upd_fail(); + ue_context_mod_fail_s& ue_context_mod_fail(); + const amf_cfg_upd_fail_s& amf_cfg_upd_fail() const; + const ho_prep_fail_s& ho_prep_fail() const; + const ho_fail_s& ho_fail() const; + const init_context_setup_fail_s& init_context_setup_fail() const; + const ng_setup_fail_s& ng_setup_fail() const; + const path_switch_request_fail_s& path_switch_request_fail() const; + const ran_cfg_upd_fail_s& ran_cfg_upd_fail() const; + const ue_context_mod_fail_s& ue_context_mod_fail() const; + + private: + types type_; + choice_buffer_t + c; + + void destroy_(); + }; + + // members lookup methods + static uint16_t idx_to_proc_code(uint32_t idx); + static bool is_proc_code_valid(const uint16_t& proc_code); + static init_msg_c get_init_msg(const uint16_t& proc_code); + static successful_outcome_c get_successful_outcome(const uint16_t& proc_code); + static unsuccessful_outcome_c get_unsuccessful_outcome(const uint16_t& proc_code); + static crit_e get_crit(const uint16_t& proc_code); +}; + +// InitiatingMessage ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +struct init_msg_s { + uint16_t proc_code = 0; + crit_e crit; + ngap_elem_procs_o::init_msg_c value; + + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + bool load_info_obj(const uint16_t& proc_code_); +}; + +// LastVisitedNGRANCellInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using last_visited_ngran_cell_info_ext_ies_o = ngap_protocol_ext_empty_o; + +// LastVisitedCellInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using last_visited_cell_info_ext_ies_o = ngap_protocol_ies_empty_o; + +using last_visited_ngran_cell_info_ext_ies_container = protocol_ext_container_empty_l; + +// LastVisitedNGRANCellInformation ::= SEQUENCE +struct last_visited_ngran_cell_info_s { + bool ext = false; + bool time_ue_stayed_in_cell_enhanced_granularity_present = false; + bool hocause_value_present = false; + bool ie_exts_present = false; + ngran_cgi_c global_cell_id; + cell_type_s cell_type; + uint16_t time_ue_stayed_in_cell = 0; + uint16_t time_ue_stayed_in_cell_enhanced_granularity = 0; + cause_c hocause_value; + last_visited_ngran_cell_info_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// LastVisitedCellInformation ::= CHOICE +struct last_visited_cell_info_c { + struct types_opts { + enum options { ngran_cell, eutran_cell, utran_cell, geran_cell, choice_exts, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + last_visited_cell_info_c() = default; + last_visited_cell_info_c(const last_visited_cell_info_c& other); + last_visited_cell_info_c& operator=(const last_visited_cell_info_c& other); + ~last_visited_cell_info_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + last_visited_ngran_cell_info_s& ngran_cell() + { + assert_choice_type(types::ngran_cell, type_, "LastVisitedCellInformation"); + return c.get(); + } + unbounded_octstring& eutran_cell() + { + assert_choice_type(types::eutran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + unbounded_octstring& utran_cell() + { + assert_choice_type(types::utran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + unbounded_octstring& geran_cell() + { + assert_choice_type(types::geran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "LastVisitedCellInformation"); + return c.get >(); + } + const last_visited_ngran_cell_info_s& ngran_cell() const + { + assert_choice_type(types::ngran_cell, type_, "LastVisitedCellInformation"); + return c.get(); + } + const unbounded_octstring& eutran_cell() const + { + assert_choice_type(types::eutran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + const unbounded_octstring& utran_cell() const + { + assert_choice_type(types::utran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + const unbounded_octstring& geran_cell() const + { + assert_choice_type(types::geran_cell, type_, "LastVisitedCellInformation"); + return c.get >(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "LastVisitedCellInformation"); + return c.get >(); + } + last_visited_ngran_cell_info_s& set_ngran_cell(); + unbounded_octstring& set_eutran_cell(); + unbounded_octstring& set_utran_cell(); + unbounded_octstring& set_geran_cell(); + protocol_ie_single_container_s& set_choice_exts(); + +private: + types type_; + choice_buffer_t, + unbounded_octstring > + c; + + void destroy_(); +}; + +// LastVisitedCellItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using last_visited_cell_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using last_visited_cell_item_ext_ies_container = protocol_ext_container_empty_l; + +// LastVisitedCellItem ::= SEQUENCE +struct last_visited_cell_item_s { + bool ext = false; + bool ie_exts_present = false; + last_visited_cell_info_c last_visited_cell_info; + last_visited_cell_item_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +struct successful_outcome_s { + uint16_t proc_code = 0; + crit_e crit; + ngap_elem_procs_o::successful_outcome_c value; + + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + bool load_info_obj(const uint16_t& proc_code_); +}; + +// UnsuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +struct unsuccessful_outcome_s { + uint16_t proc_code = 0; + crit_e crit; + ngap_elem_procs_o::unsuccessful_outcome_c value; + + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + bool load_info_obj(const uint16_t& proc_code_); +}; + +// NGAP-PDU ::= CHOICE +struct ngap_pdu_c { + struct types_opts { + enum options { init_msg, successful_outcome, unsuccessful_outcome, /*...*/ nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + ngap_pdu_c() = default; + ngap_pdu_c(const ngap_pdu_c& other); + ngap_pdu_c& operator=(const ngap_pdu_c& other); + ~ngap_pdu_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + init_msg_s& init_msg() + { + assert_choice_type(types::init_msg, type_, "NGAP-PDU"); + return c.get(); + } + successful_outcome_s& successful_outcome() + { + assert_choice_type(types::successful_outcome, type_, "NGAP-PDU"); + return c.get(); + } + unsuccessful_outcome_s& unsuccessful_outcome() + { + assert_choice_type(types::unsuccessful_outcome, type_, "NGAP-PDU"); + return c.get(); + } + const init_msg_s& init_msg() const + { + assert_choice_type(types::init_msg, type_, "NGAP-PDU"); + return c.get(); + } + const successful_outcome_s& successful_outcome() const + { + assert_choice_type(types::successful_outcome, type_, "NGAP-PDU"); + return c.get(); + } + const unsuccessful_outcome_s& unsuccessful_outcome() const + { + assert_choice_type(types::unsuccessful_outcome, type_, "NGAP-PDU"); + return c.get(); + } + init_msg_s& set_init_msg(); + successful_outcome_s& set_successful_outcome(); + unsuccessful_outcome_s& set_unsuccessful_outcome(); + +private: + types type_; + choice_buffer_t c; + + void destroy_(); +}; + +// NonDynamic5QIDescriptor-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using non_dynamic5_qi_descriptor_ext_ies_o = ngap_protocol_ext_empty_o; + +using non_dynamic5_qi_descriptor_ext_ies_container = protocol_ext_container_empty_l; + +// NonDynamic5QIDescriptor ::= SEQUENCE +struct non_dynamic5_qi_descriptor_s { + bool ext = false; + bool prio_level_qos_present = false; + bool averaging_win_present = false; + bool maximum_data_burst_volume_present = false; + bool ie_exts_present = false; + uint16_t five_qi = 0; + uint8_t prio_level_qos = 1; + uint16_t averaging_win = 0; + uint16_t maximum_data_burst_volume = 0; + non_dynamic5_qi_descriptor_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PDUSessionAggregateMaximumBitRate-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_aggregate_maximum_bit_rate_ext_ies_o = ngap_protocol_ext_empty_o; + +using pdu_session_aggregate_maximum_bit_rate_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionAggregateMaximumBitRate ::= SEQUENCE +struct pdu_session_aggregate_maximum_bit_rate_s { + bool ext = false; + bool ie_exts_present = false; + uint64_t pdu_session_aggregate_maximum_bit_rate_dl = 0; + uint64_t pdu_session_aggregate_maximum_bit_rate_ul = 0; + pdu_session_aggregate_maximum_bit_rate_ext_ies_container ie_exts; + // ... // sequence methods - ue_context_mod_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextModificationRequest ::= SEQUENCE -struct ue_context_mod_request_s { - bool ext = false; - ue_context_mod_request_ies_container protocol_ies; +// QosFlowInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_info_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using qos_flow_info_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowInformationItem ::= SEQUENCE +struct qos_flow_info_item_s { + bool ext = false; + bool dlforwarding_present = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + dl_forwarding_e dlforwarding; + qos_flow_info_item_ext_ies_container ie_exts; // ... // sequence methods @@ -14104,31 +13565,48 @@ struct ue_context_mod_request_s { void to_json(json_writer& j) const; }; -struct ue_context_mod_resp_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// PDUSessionResourceInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_info_item_ext_ies_o = ngap_protocol_ext_empty_o; - // member variables - bool rrc_state_present = false; - bool user_location_info_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s rrc_state; - ie_field_s user_location_info; - ie_field_s crit_diagnostics; +// QosFlowInformationList ::= SEQUENCE (SIZE (1..64)) OF QosFlowInformationItem +using qos_flow_info_list_l = dyn_array; + +using pdu_session_res_info_item_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceInformationItem ::= SEQUENCE +struct pdu_session_res_info_item_s { + bool ext = false; + bool drbs_to_qos_flows_map_list_present = false; + bool ie_exts_present = false; + uint16_t pdu_session_id = 0; + qos_flow_info_list_l qos_flow_info_list; + drbs_to_qos_flows_map_list_l drbs_to_qos_flows_map_list; + pdu_session_res_info_item_ext_ies_container ie_exts; + // ... // sequence methods - ue_context_mod_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextModificationResponse ::= SEQUENCE -struct ue_context_mod_resp_s { - bool ext = false; - ue_context_mod_resp_ies_container protocol_ies; +// PDUSessionResourceInformationList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceInformationItem +using pdu_session_res_info_list_l = dyn_array; + +// QosFlowModifyConfirmItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_modify_confirm_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// UPTransportLayerInformationPairItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using up_transport_layer_info_pair_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using qos_flow_modify_confirm_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowModifyConfirmItem ::= SEQUENCE +struct qos_flow_modify_confirm_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_modify_confirm_item_ext_ies_container ie_exts; // ... // sequence methods @@ -14137,25 +13615,45 @@ struct ue_context_mod_resp_s { void to_json(json_writer& j) const; }; -struct ue_context_release_cmd_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +using up_transport_layer_info_pair_item_ext_ies_container = protocol_ext_container_empty_l; - // member variables - ie_field_s ue_ngap_ids; - ie_field_s cause; +// UPTransportLayerInformationPairItem ::= SEQUENCE +struct up_transport_layer_info_pair_item_s { + bool ext = false; + bool ie_exts_present = false; + up_transport_layer_info_c ul_ngu_up_tnl_info; + up_transport_layer_info_c dl_ngu_up_tnl_info; + up_transport_layer_info_pair_item_ext_ies_container ie_exts; + // ... // sequence methods - ue_context_release_cmd_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextReleaseCommand ::= SEQUENCE -struct ue_context_release_cmd_s { - bool ext = false; - ue_context_release_cmd_ies_container protocol_ies; +// PDUSessionResourceModifyConfirmTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_confirm_transfer_ext_ies_o = ngap_protocol_ext_empty_o; + +// QosFlowModifyConfirmList ::= SEQUENCE (SIZE (1..64)) OF QosFlowModifyConfirmItem +using qos_flow_modify_confirm_list_l = dyn_array; + +// UPTransportLayerInformationPairList ::= SEQUENCE (SIZE (1..3)) OF UPTransportLayerInformationPairItem +using up_transport_layer_info_pair_list_l = dyn_array; + +using pdu_session_res_modify_confirm_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE +struct pdu_session_res_modify_confirm_transfer_s { + bool ext = false; + bool add_ng_uuptnl_info_present = false; + bool qos_flow_failed_to_modify_list_present = false; + bool ie_exts_present = false; + qos_flow_modify_confirm_list_l qos_flow_modify_confirm_list; + up_transport_layer_info_c ulngu_up_tnl_info; + up_transport_layer_info_pair_list_l add_ng_uuptnl_info; + qos_flow_list_with_cause_l qos_flow_failed_to_modify_list; + pdu_session_res_modify_confirm_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -14164,33 +13662,105 @@ struct ue_context_release_cmd_s { void to_json(json_writer& j) const; }; -struct ue_context_release_complete_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// VolumeTimedReport-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using volume_timed_report_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using volume_timed_report_item_ext_ies_container = protocol_ext_container_empty_l; + +// VolumeTimedReport-Item ::= SEQUENCE +struct volume_timed_report_item_s { + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<4, true> start_time_stamp; + fixed_octstring<4, true> end_time_stamp; + uint64_t usage_count_ul = 0; + uint64_t usage_count_dl = 0; + volume_timed_report_item_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// QoSFlowsUsageReport-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qo_sflows_usage_report_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// VolumeTimedReportList ::= SEQUENCE (SIZE (1..2)) OF VolumeTimedReport-Item +using volume_timed_report_list_l = dyn_array; + +// PDUSessionUsageReport-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_usage_report_ext_ies_o = ngap_protocol_ext_empty_o; + +using qo_sflows_usage_report_item_ext_ies_container = protocol_ext_container_empty_l; + +// QoSFlowsUsageReport-Item ::= SEQUENCE +struct qo_sflows_usage_report_item_s { + struct rat_type_opts { + enum options { nr, eutra, /*...*/ nulltype } value; + + const char* to_string() const; + }; + typedef enumerated rat_type_e_; // member variables - bool user_location_info_present = false; - bool info_on_recommended_cells_and_ran_nodes_for_paging_present = false; - bool pdu_session_res_list_cxt_rel_cpl_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s user_location_info; - ie_field_s info_on_recommended_cells_and_ran_nodes_for_paging; - ie_field_s > pdu_session_res_list_cxt_rel_cpl; - ie_field_s crit_diagnostics; + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + rat_type_e_ rat_type; + volume_timed_report_list_l qo_sflows_timed_report_list; + qo_sflows_usage_report_item_ext_ies_container ie_exts; + // ... // sequence methods - ue_context_release_complete_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextReleaseComplete ::= SEQUENCE -struct ue_context_release_complete_s { - bool ext = false; - ue_context_release_complete_ies_container protocol_ies; +using pdu_session_usage_report_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionUsageReport ::= SEQUENCE +struct pdu_session_usage_report_s { + struct rat_type_opts { + enum options { nr, eutra, /*...*/ nulltype } value; + + const char* to_string() const; + }; + typedef enumerated rat_type_e_; + + // member variables + bool ext = false; + bool ie_exts_present = false; + rat_type_e_ rat_type; + volume_timed_report_list_l pdu_session_timed_report_list; + pdu_session_usage_report_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// QoSFlowsUsageReportList ::= SEQUENCE (SIZE (1..64)) OF QoSFlowsUsageReport-Item +using qo_sflows_usage_report_list_l = dyn_array; + +// SecondaryRATUsageInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using secondary_ratusage_info_ext_ies_o = ngap_protocol_ext_empty_o; + +using secondary_ratusage_info_ext_ies_container = protocol_ext_container_empty_l; + +// SecondaryRATUsageInformation ::= SEQUENCE +struct secondary_ratusage_info_s { + bool ext = false; + bool pdu_session_usage_report_present = false; + bool qos_flows_usage_report_list_present = false; + bool ie_ext_present = false; + pdu_session_usage_report_s pdu_session_usage_report; + qo_sflows_usage_report_list_l qos_flows_usage_report_list; + secondary_ratusage_info_ext_ies_container ie_ext; // ... // sequence methods @@ -14199,28 +13769,92 @@ struct ue_context_release_complete_s { void to_json(json_writer& j) const; }; -struct ue_context_release_request_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool pdu_session_res_list_cxt_rel_req_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > pdu_session_res_list_cxt_rel_req; - ie_field_s cause; +// PDUSessionResourceModifyIndicationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_modify_ind_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { secondary_ratusage_info, security_result, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + ext_c() = default; + ext_c(const ext_c& other); + ext_c& operator=(const ext_c& other); + ~ext_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + secondary_ratusage_info_s& secondary_ratusage_info(); + security_result_s& security_result(); + const secondary_ratusage_info_s& secondary_ratusage_info() const; + const security_result_s& security_result() const; + + private: + types type_; + choice_buffer_t c; + + void destroy_(); + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +struct pdu_session_res_modify_ind_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; + + // member variables + bool secondary_ratusage_info_present = false; + bool security_result_present = false; + ie_field_s secondary_ratusage_info; + ie_field_s security_result; + + // sequence methods + pdu_session_res_modify_ind_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE +struct pdu_session_res_modify_ind_transfer_s { + bool ext = false; + bool add_dl_qos_flow_per_tnl_info_present = false; + bool ie_exts_present = false; + qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; + qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; + pdu_session_res_modify_ind_transfer_ext_ies_container ie_exts; + // ... // sequence methods - ue_context_release_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextReleaseRequest ::= SEQUENCE -struct ue_context_release_request_s { - bool ext = false; - ue_context_release_request_ies_container protocol_ies; +// PDUSessionResourceModifyIndicationUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; + +using pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceModifyIndicationUnsuccessfulTransfer ::= SEQUENCE +struct pdu_session_res_modify_ind_unsuccessful_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -14229,57 +13863,110 @@ struct ue_context_release_request_s { void to_json(json_writer& j) const; }; -struct ue_radio_cap_check_request_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// QosCharacteristics-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +using qos_characteristics_ext_ies_o = ngap_protocol_ies_empty_o; - // member variables - bool ue_radio_cap_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > ue_radio_cap; +// AdditionalQosFlowInformation ::= ENUMERATED +struct add_qos_flow_info_opts { + enum options { more_likely, /*...*/ nulltype } value; - // sequence methods - ue_radio_cap_check_request_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated add_qos_flow_info_e; -// UERadioCapabilityCheckRequest ::= SEQUENCE -struct ue_radio_cap_check_request_s { - bool ext = false; - ue_radio_cap_check_request_ies_container protocol_ies; - // ... +// QosCharacteristics ::= CHOICE +struct qos_characteristics_c { + struct types_opts { + enum options { non_dynamic5_qi, dynamic5_qi, choice_exts, nulltype } value; - // sequence methods + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + qos_characteristics_c() = default; + qos_characteristics_c(const qos_characteristics_c& other); + qos_characteristics_c& operator=(const qos_characteristics_c& other); + ~qos_characteristics_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; + // getters + non_dynamic5_qi_descriptor_s& non_dynamic5_qi() + { + assert_choice_type(types::non_dynamic5_qi, type_, "QosCharacteristics"); + return c.get(); + } + dynamic5_qi_descriptor_s& dynamic5_qi() + { + assert_choice_type(types::dynamic5_qi, type_, "QosCharacteristics"); + return c.get(); + } + protocol_ie_single_container_s& choice_exts() + { + assert_choice_type(types::choice_exts, type_, "QosCharacteristics"); + return c.get >(); + } + const non_dynamic5_qi_descriptor_s& non_dynamic5_qi() const + { + assert_choice_type(types::non_dynamic5_qi, type_, "QosCharacteristics"); + return c.get(); + } + const dynamic5_qi_descriptor_s& dynamic5_qi() const + { + assert_choice_type(types::dynamic5_qi, type_, "QosCharacteristics"); + return c.get(); + } + const protocol_ie_single_container_s& choice_exts() const + { + assert_choice_type(types::choice_exts, type_, "QosCharacteristics"); + return c.get >(); + } + non_dynamic5_qi_descriptor_s& set_non_dynamic5_qi(); + dynamic5_qi_descriptor_s& set_dynamic5_qi(); + protocol_ie_single_container_s& set_choice_exts(); + +private: + types type_; + choice_buffer_t > + c; + + void destroy_(); }; -struct ue_radio_cap_check_resp_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// QosFlowLevelQosParameters-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_level_qos_params_ext_ies_o = ngap_protocol_ext_empty_o; - // member variables - bool crit_diagnostics_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s ims_voice_support_ind; - ie_field_s crit_diagnostics; +// ReflectiveQosAttribute ::= ENUMERATED +struct reflective_qos_attribute_opts { + enum options { subject_to, /*...*/ nulltype } value; - // sequence methods - ue_radio_cap_check_resp_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + const char* to_string() const; }; +typedef enumerated reflective_qos_attribute_e; -// UERadioCapabilityCheckResponse ::= SEQUENCE -struct ue_radio_cap_check_resp_s { - bool ext = false; - ue_radio_cap_check_resp_ies_container protocol_ies; +// QosFlowAddOrModifyRequestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_add_or_modify_request_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using qos_flow_level_qos_params_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowLevelQosParameters ::= SEQUENCE +struct qos_flow_level_qos_params_s { + bool ext = false; + bool gbr_qos_info_present = false; + bool reflective_qos_attribute_present = false; + bool add_qos_flow_info_present = false; + bool ie_exts_present = false; + qos_characteristics_c qos_characteristics; + alloc_and_retention_prio_s alloc_and_retention_prio; + gbr_qos_info_s gbr_qos_info; + reflective_qos_attribute_e reflective_qos_attribute; + add_qos_flow_info_e add_qos_flow_info; + qos_flow_level_qos_params_ext_ies_container ie_exts; // ... // sequence methods @@ -14288,28 +13975,41 @@ struct ue_radio_cap_check_resp_s { void to_json(json_writer& j) const; }; -struct ue_radio_cap_info_ind_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// UL-NGU-UP-TNLModifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using ul_ngu_up_tnl_modify_item_ext_ies_o = ngap_protocol_ext_empty_o; - // member variables - bool ue_radio_cap_for_paging_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > ue_radio_cap; - ie_field_s ue_radio_cap_for_paging; +// UPTransportLayerInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using up_transport_layer_info_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using qos_flow_add_or_modify_request_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowAddOrModifyRequestItem ::= SEQUENCE +struct qos_flow_add_or_modify_request_item_s { + bool ext = false; + bool qos_flow_level_qos_params_present = false; + bool erab_id_present = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_level_qos_params_s qos_flow_level_qos_params; + uint8_t erab_id = 0; + qos_flow_add_or_modify_request_item_ext_ies_container ie_exts; + // ... // sequence methods - ue_radio_cap_info_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UERadioCapabilityInfoIndication ::= SEQUENCE -struct ue_radio_cap_info_ind_s { - bool ext = false; - ue_radio_cap_info_ind_ies_container protocol_ies; +using ul_ngu_up_tnl_modify_item_ext_ies_container = protocol_ext_container_empty_l; + +// UL-NGU-UP-TNLModifyItem ::= SEQUENCE +struct ul_ngu_up_tnl_modify_item_s { + bool ext = false; + bool ie_exts_present = false; + up_transport_layer_info_c ul_ngu_up_tnl_info; + up_transport_layer_info_c dl_ngu_up_tnl_info; + ul_ngu_up_tnl_modify_item_ext_ies_container ie_exts; // ... // sequence methods @@ -14318,54 +14018,125 @@ struct ue_radio_cap_info_ind_s { void to_json(json_writer& j) const; }; -struct uetnla_binding_release_request_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +using up_transport_layer_info_item_ext_ies_container = protocol_ext_container_empty_l; - // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; +// UPTransportLayerInformationItem ::= SEQUENCE +struct up_transport_layer_info_item_s { + bool ext = false; + bool ie_exts_present = false; + up_transport_layer_info_c ngu_up_tnl_info; + up_transport_layer_info_item_ext_ies_container ie_exts; + // ... // sequence methods - uetnla_binding_release_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UETNLABindingReleaseRequest ::= SEQUENCE -struct uetnla_binding_release_request_s { - bool ext = false; - uetnla_binding_release_request_ies_container protocol_ies; - // ... +// QosFlowAddOrModifyRequestList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAddOrModifyRequestItem +using qos_flow_add_or_modify_request_list_l = dyn_array; + +// UL-NGU-UP-TNLModifyList ::= SEQUENCE (SIZE (1..4)) OF UL-NGU-UP-TNLModifyItem +using ul_ngu_up_tnl_modify_list_l = dyn_array; + +// UPTransportLayerInformationList ::= SEQUENCE (SIZE (1..3)) OF UPTransportLayerInformationItem +using up_transport_layer_info_list_l = dyn_array; + +// PDUSessionResourceModifyRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_modify_request_transfer_ies_o { + // Value ::= OPEN TYPE + struct value_c { + struct types_opts { + enum options { + pdu_session_aggregate_maximum_bit_rate, + ul_ngu_up_tnl_modify_list, + network_instance, + qos_flow_add_or_modify_request_list, + qos_flow_to_release_list, + add_ul_ngu_up_tnl_info, + nulltype + } value; + typedef uint8_t number_type; + + const char* to_string() const; + uint8_t to_number() const; + }; + typedef enumerated types; + + // choice methods + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate(); + ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list(); + uint16_t& network_instance(); + qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list(); + qos_flow_list_with_cause_l& qos_flow_to_release_list(); + up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info(); + const pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() const; + const ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list() const; + const uint16_t& network_instance() const; + const qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list() const; + const qos_flow_list_with_cause_l& qos_flow_to_release_list() const; + const up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() const; + + private: + types type_; + choice_buffer_t + c; + + void destroy_(); + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -struct ul_nas_transport_ies_container { +struct pdu_session_res_modify_request_transfer_ies_container { template using ie_field_s = protocol_ie_container_item_s; // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > nas_pdu; - ie_field_s user_location_info; + bool pdu_session_aggregate_maximum_bit_rate_present = false; + bool ul_ngu_up_tnl_modify_list_present = false; + bool network_instance_present = false; + bool qos_flow_add_or_modify_request_list_present = false; + bool qos_flow_to_release_list_present = false; + bool add_ul_ngu_up_tnl_info_present = false; + ie_field_s pdu_session_aggregate_maximum_bit_rate; + ie_field_s > ul_ngu_up_tnl_modify_list; + ie_field_s > network_instance; + ie_field_s > qos_flow_add_or_modify_request_list; + ie_field_s > qos_flow_to_release_list; + ie_field_s > add_ul_ngu_up_tnl_info; // sequence methods - ul_nas_transport_ies_container(); + pdu_session_res_modify_request_transfer_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// UplinkNASTransport ::= SEQUENCE -struct ul_nas_transport_s { - bool ext = false; - ul_nas_transport_ies_container protocol_ies; +// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE +struct pdu_session_res_modify_request_transfer_s { + bool ext = false; + pdu_session_res_modify_request_transfer_ies_container protocol_ies; // ... // sequence methods @@ -14374,25 +14145,17 @@ struct ul_nas_transport_s { void to_json(json_writer& j) const; }; -struct ul_non_ueassociated_nrp_pa_transport_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s > routing_id; - ie_field_s > nrp_pa_pdu; +// QosFlowAddOrModifyResponseItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_add_or_modify_resp_item_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods - ul_non_ueassociated_nrp_pa_transport_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +using qos_flow_add_or_modify_resp_item_ext_ies_container = protocol_ext_container_empty_l; -// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -struct ul_non_ueassociated_nrp_pa_transport_s { - bool ext = false; - ul_non_ueassociated_nrp_pa_transport_ies_container protocol_ies; +// QosFlowAddOrModifyResponseItem ::= SEQUENCE +struct qos_flow_add_or_modify_resp_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_add_or_modify_resp_item_ext_ies_container ie_exts; // ... // sequence methods @@ -14401,55 +14164,56 @@ struct ul_non_ueassociated_nrp_pa_transport_s { void to_json(json_writer& j) const; }; -struct ul_ran_cfg_transfer_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// PDUSessionResourceModifyResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_modify_resp_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { add_ngu_up_tnl_info, nulltype } value; - // member variables - bool son_cfg_transfer_ul_present = false; - bool endc_son_cfg_transfer_ul_present = false; - ie_field_s son_cfg_transfer_ul; - ie_field_s > endc_son_cfg_transfer_ul; + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - ul_ran_cfg_transfer_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + types type() const { return types::add_ngu_up_tnl_info; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() { return c; } + const up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() const { return c; } -// UplinkRANConfigurationTransfer ::= SEQUENCE -struct ul_ran_cfg_transfer_s { - bool ext = false; - ul_ran_cfg_transfer_ies_container protocol_ies; - // ... + private: + up_transport_layer_info_pair_list_l c; + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -struct ul_ran_status_transfer_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s ran_status_transfer_transparent_container; - - // sequence methods - ul_ran_status_transfer_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +// QosFlowAddOrModifyResponseList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAddOrModifyResponseItem +using qos_flow_add_or_modify_resp_list_l = dyn_array; -// UplinkRANStatusTransfer ::= SEQUENCE -struct ul_ran_status_transfer_s { - bool ext = false; - ul_ran_status_transfer_ies_container protocol_ies; +// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE +struct pdu_session_res_modify_resp_transfer_s { + bool ext = false; + bool dl_ngu_up_tnl_info_present = false; + bool ul_ngu_up_tnl_info_present = false; + bool qos_flow_add_or_modify_resp_list_present = false; + bool add_dl_qos_flow_per_tnl_info_present = false; + bool qos_flow_failed_to_add_or_modify_list_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c dl_ngu_up_tnl_info; + up_transport_layer_info_c ul_ngu_up_tnl_info; + qos_flow_add_or_modify_resp_list_l qos_flow_add_or_modify_resp_list; + qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; + qos_flow_list_with_cause_l qos_flow_failed_to_add_or_modify_list; + protocol_ext_container_l ie_exts; // ... // sequence methods @@ -14458,27 +14222,19 @@ struct ul_ran_status_transfer_s { void to_json(json_writer& j) const; }; -struct ul_ueassociated_nrp_pa_transport_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > routing_id; - ie_field_s > nrp_pa_pdu; +// PDUSessionResourceModifyUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_modify_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; - // sequence methods - ul_ueassociated_nrp_pa_transport_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; +using pdu_session_res_modify_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; -// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE -struct ul_ueassociated_nrp_pa_transport_s { - bool ext = false; - ul_ueassociated_nrp_pa_transport_ies_container protocol_ies; +// PDUSessionResourceModifyUnsuccessfulTransfer ::= SEQUENCE +struct pdu_session_res_modify_unsuccessful_transfer_s { + bool ext = false; + bool crit_diagnostics_present = false; + bool ie_exts_present = false; + cause_c cause; + crit_diagnostics_s crit_diagnostics; + pdu_session_res_modify_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -14487,72 +14243,72 @@ struct ul_ueassociated_nrp_pa_transport_s { void to_json(json_writer& j) const; }; -struct write_replace_warning_request_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; +// PDUSessionResourceNotifyReleasedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_notify_released_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { secondary_ratusage_info, nulltype } value; - // member variables - bool warning_area_list_present = false; - bool warning_type_present = false; - bool warning_security_info_present = false; - bool data_coding_scheme_present = false; - bool warning_msg_contents_present = false; - bool concurrent_warning_msg_ind_present = false; - bool warning_area_coordinates_present = false; - ie_field_s > msg_id; - ie_field_s > serial_num; - ie_field_s warning_area_list; - ie_field_s > repeat_period; - ie_field_s > nof_broadcasts_requested; - ie_field_s > warning_type; - ie_field_s > warning_security_info; - ie_field_s > data_coding_scheme; - ie_field_s > warning_msg_contents; - ie_field_s concurrent_warning_msg_ind; - ie_field_s > warning_area_coordinates; + const char* to_string() const; + }; + typedef enumerated types; - // sequence methods - write_replace_warning_request_ies_container(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; + // choice methods + types type() const { return types::secondary_ratusage_info; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + secondary_ratusage_info_s& secondary_ratusage_info() { return c; } + const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } -// WriteReplaceWarningRequest ::= SEQUENCE -struct write_replace_warning_request_s { - bool ext = false; - write_replace_warning_request_ies_container protocol_ies; - // ... + private: + secondary_ratusage_info_s c; + }; - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -struct write_replace_warning_resp_ies_container { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool broadcast_completed_area_list_present = false; - bool crit_diagnostics_present = false; - ie_field_s > msg_id; - ie_field_s > serial_num; - ie_field_s broadcast_completed_area_list; - ie_field_s crit_diagnostics; +// PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE +struct pdu_session_res_notify_released_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + protocol_ext_container_l ie_exts; + // ... // sequence methods - write_replace_warning_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; -// WriteReplaceWarningResponse ::= SEQUENCE -struct write_replace_warning_resp_s { - bool ext = false; - write_replace_warning_resp_ies_container protocol_ies; +// NotificationCause ::= ENUMERATED +struct notif_cause_opts { + enum options { fulfilled, not_fulfilled, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated notif_cause_e; + +// QosFlowNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_notify_item_ext_ies_o = ngap_protocol_ext_empty_o; + +using qos_flow_notify_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowNotifyItem ::= SEQUENCE +struct qos_flow_notify_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + notif_cause_e notif_cause; + qos_flow_notify_item_ext_ies_container ie_exts; // ... // sequence methods @@ -14561,453 +14317,339 @@ struct write_replace_warning_resp_s { void to_json(json_writer& j) const; }; -// NGAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE -struct ngap_elem_procs_o { - // InitiatingMessage ::= OPEN TYPE - struct init_msg_c { +// PDUSessionResourceNotifyTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_notify_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { struct types_opts { - enum options { - amf_cfg_upd, - ho_cancel, - ho_required, - ho_request, - init_context_setup_request, - ng_reset, - ng_setup_request, - path_switch_request, - pdu_session_res_modify_request, - pdu_session_res_modify_ind, - pdu_session_res_release_cmd, - pdu_session_res_setup_request, - pws_cancel_request, - ran_cfg_upd, - ue_context_mod_request, - ue_context_release_cmd, - ue_radio_cap_check_request, - write_replace_warning_request, - amf_status_ind, - cell_traffic_trace, - deactiv_trace, - dl_nas_transport, - dl_non_ueassociated_nrp_pa_transport, - dl_ran_cfg_transfer, - dl_ran_status_transfer, - dl_ueassociated_nrp_pa_transport, - error_ind, - ho_notify, - init_ue_msg, - location_report, - location_report_ctrl, - location_report_fail_ind, - nas_non_delivery_ind, - overload_start, - overload_stop, - paging, - pdu_session_res_notify, - private_msg, - pws_fail_ind, - pws_restart_ind, - reroute_nas_request, - rrc_inactive_transition_report, - secondary_rat_data_usage_report, - trace_fail_ind, - trace_start, - ue_context_release_request, - ue_radio_cap_info_ind, - uetnla_binding_release_request, - ul_nas_transport, - ul_non_ueassociated_nrp_pa_transport, - ul_ran_cfg_transfer, - ul_ran_status_transfer, - ul_ueassociated_nrp_pa_transport, - nulltype - } value; + enum options { secondary_ratusage_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - init_msg_c() = default; - init_msg_c(const init_msg_c& other); - init_msg_c& operator=(const init_msg_c& other); - ~init_msg_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::secondary_ratusage_info; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_s& amf_cfg_upd(); - ho_cancel_s& ho_cancel(); - ho_required_s& ho_required(); - ho_request_s& ho_request(); - init_context_setup_request_s& init_context_setup_request(); - ng_reset_s& ng_reset(); - ng_setup_request_s& ng_setup_request(); - path_switch_request_s& path_switch_request(); - pdu_session_res_modify_request_s& pdu_session_res_modify_request(); - pdu_session_res_modify_ind_s& pdu_session_res_modify_ind(); - pdu_session_res_release_cmd_s& pdu_session_res_release_cmd(); - pdu_session_res_setup_request_s& pdu_session_res_setup_request(); - pws_cancel_request_s& pws_cancel_request(); - ran_cfg_upd_s& ran_cfg_upd(); - ue_context_mod_request_s& ue_context_mod_request(); - ue_context_release_cmd_s& ue_context_release_cmd(); - ue_radio_cap_check_request_s& ue_radio_cap_check_request(); - write_replace_warning_request_s& write_replace_warning_request(); - amf_status_ind_s& amf_status_ind(); - cell_traffic_trace_s& cell_traffic_trace(); - deactiv_trace_s& deactiv_trace(); - dl_nas_transport_s& dl_nas_transport(); - dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport(); - dl_ran_cfg_transfer_s& dl_ran_cfg_transfer(); - dl_ran_status_transfer_s& dl_ran_status_transfer(); - dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport(); - error_ind_s& error_ind(); - ho_notify_s& ho_notify(); - init_ue_msg_s& init_ue_msg(); - location_report_s& location_report(); - location_report_ctrl_s& location_report_ctrl(); - location_report_fail_ind_s& location_report_fail_ind(); - nas_non_delivery_ind_s& nas_non_delivery_ind(); - overload_start_s& overload_start(); - overload_stop_s& overload_stop(); - paging_s& paging(); - pdu_session_res_notify_s& pdu_session_res_notify(); - private_msg_s& private_msg(); - pws_fail_ind_s& pws_fail_ind(); - pws_restart_ind_s& pws_restart_ind(); - reroute_nas_request_s& reroute_nas_request(); - rrc_inactive_transition_report_s& rrc_inactive_transition_report(); - secondary_rat_data_usage_report_s& secondary_rat_data_usage_report(); - trace_fail_ind_s& trace_fail_ind(); - trace_start_s& trace_start(); - ue_context_release_request_s& ue_context_release_request(); - ue_radio_cap_info_ind_s& ue_radio_cap_info_ind(); - uetnla_binding_release_request_s& uetnla_binding_release_request(); - ul_nas_transport_s& ul_nas_transport(); - ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport(); - ul_ran_cfg_transfer_s& ul_ran_cfg_transfer(); - ul_ran_status_transfer_s& ul_ran_status_transfer(); - ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport(); - const amf_cfg_upd_s& amf_cfg_upd() const; - const ho_cancel_s& ho_cancel() const; - const ho_required_s& ho_required() const; - const ho_request_s& ho_request() const; - const init_context_setup_request_s& init_context_setup_request() const; - const ng_reset_s& ng_reset() const; - const ng_setup_request_s& ng_setup_request() const; - const path_switch_request_s& path_switch_request() const; - const pdu_session_res_modify_request_s& pdu_session_res_modify_request() const; - const pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() const; - const pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() const; - const pdu_session_res_setup_request_s& pdu_session_res_setup_request() const; - const pws_cancel_request_s& pws_cancel_request() const; - const ran_cfg_upd_s& ran_cfg_upd() const; - const ue_context_mod_request_s& ue_context_mod_request() const; - const ue_context_release_cmd_s& ue_context_release_cmd() const; - const ue_radio_cap_check_request_s& ue_radio_cap_check_request() const; - const write_replace_warning_request_s& write_replace_warning_request() const; - const amf_status_ind_s& amf_status_ind() const; - const cell_traffic_trace_s& cell_traffic_trace() const; - const deactiv_trace_s& deactiv_trace() const; - const dl_nas_transport_s& dl_nas_transport() const; - const dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() const; - const dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() const; - const dl_ran_status_transfer_s& dl_ran_status_transfer() const; - const dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() const; - const error_ind_s& error_ind() const; - const ho_notify_s& ho_notify() const; - const init_ue_msg_s& init_ue_msg() const; - const location_report_s& location_report() const; - const location_report_ctrl_s& location_report_ctrl() const; - const location_report_fail_ind_s& location_report_fail_ind() const; - const nas_non_delivery_ind_s& nas_non_delivery_ind() const; - const overload_start_s& overload_start() const; - const overload_stop_s& overload_stop() const; - const paging_s& paging() const; - const pdu_session_res_notify_s& pdu_session_res_notify() const; - const private_msg_s& private_msg() const; - const pws_fail_ind_s& pws_fail_ind() const; - const pws_restart_ind_s& pws_restart_ind() const; - const reroute_nas_request_s& reroute_nas_request() const; - const rrc_inactive_transition_report_s& rrc_inactive_transition_report() const; - const secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() const; - const trace_fail_ind_s& trace_fail_ind() const; - const trace_start_s& trace_start() const; - const ue_context_release_request_s& ue_context_release_request() const; - const ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() const; - const uetnla_binding_release_request_s& uetnla_binding_release_request() const; - const ul_nas_transport_s& ul_nas_transport() const; - const ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() const; - const ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() const; - const ul_ran_status_transfer_s& ul_ran_status_transfer() const; - const ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() const; + secondary_ratusage_info_s& secondary_ratusage_info() { return c; } + const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } + + private: + secondary_ratusage_info_s c; + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +// QosFlowNotifyList ::= SEQUENCE (SIZE (1..64)) OF QosFlowNotifyItem +using qos_flow_notify_list_l = dyn_array; + +// PDUSessionResourceNotifyTransfer ::= SEQUENCE +struct pdu_session_res_notify_transfer_s { + bool ext = false; + bool qos_flow_notify_list_present = false; + bool qos_flow_released_list_present = false; + bool ie_exts_present = false; + qos_flow_notify_list_l qos_flow_notify_list; + qos_flow_list_with_cause_l qos_flow_released_list; + protocol_ext_container_l ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PDUSessionResourceReleaseCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_release_cmd_transfer_ext_ies_o = ngap_protocol_ext_empty_o; + +using pdu_session_res_release_cmd_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE +struct pdu_session_res_release_cmd_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + pdu_session_res_release_cmd_transfer_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - types type_; - choice_buffer_t - c; +// PDUSessionResourceReleaseResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct pdu_session_res_release_resp_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { secondary_ratusage_info, nulltype } value; - void destroy_(); + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + types type() const { return types::secondary_ratusage_info; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + secondary_ratusage_info_s& secondary_ratusage_info() { return c; } + const secondary_ratusage_info_s& secondary_ratusage_info() const { return c; } + + private: + secondary_ratusage_info_s c; }; - // SuccessfulOutcome ::= OPEN TYPE - struct successful_outcome_c { + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE +struct pdu_session_res_release_resp_transfer_s { + bool ext = false; + bool ie_exts_present = false; + protocol_ext_container_l ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MaximumIntegrityProtectedDataRate ::= ENUMERATED +struct maximum_integrity_protected_data_rate_opts { + enum options { bitrate64kbs, maximum_ue_rate, /*...*/ nulltype } value; + typedef uint8_t number_type; + + const char* to_string() const; + uint8_t to_number() const; +}; +typedef enumerated maximum_integrity_protected_data_rate_e; + +// QosFlowSetupRequestItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_setup_request_item_ext_ies_o = ngap_protocol_ext_empty_o; + +// ConfidentialityProtectionIndication ::= ENUMERATED +struct confidentiality_protection_ind_opts { + enum options { required, preferred, not_needed, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated confidentiality_protection_ind_e; + +// IntegrityProtectionIndication ::= ENUMERATED +struct integrity_protection_ind_opts { + enum options { required, preferred, not_needed, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated integrity_protection_ind_e; + +using qos_flow_setup_request_item_ext_ies_container = protocol_ext_container_empty_l; + +// QosFlowSetupRequestItem ::= SEQUENCE +struct qos_flow_setup_request_item_s { + bool ext = false; + bool erab_id_present = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_level_qos_params_s qos_flow_level_qos_params; + uint8_t erab_id = 0; + qos_flow_setup_request_item_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SecurityIndication-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct security_ind_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { struct types_opts { - enum options { - amf_cfg_upd_ack, - ho_cancel_ack, - ho_cmd, - ho_request_ack, - init_context_setup_resp, - ng_reset_ack, - ng_setup_resp, - path_switch_request_ack, - pdu_session_res_modify_resp, - pdu_session_res_modify_confirm, - pdu_session_res_release_resp, - pdu_session_res_setup_resp, - pws_cancel_resp, - ran_cfg_upd_ack, - ue_context_mod_resp, - ue_context_release_complete, - ue_radio_cap_check_resp, - write_replace_warning_resp, - nulltype - } value; + enum options { maximum_integrity_protected_data_rate_dl, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; // choice methods - successful_outcome_c() = default; - successful_outcome_c(const successful_outcome_c& other); - successful_outcome_c& operator=(const successful_outcome_c& other); - ~successful_outcome_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } + types type() const { return types::maximum_integrity_protected_data_rate_dl; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_ack_s& amf_cfg_upd_ack(); - ho_cancel_ack_s& ho_cancel_ack(); - ho_cmd_s& ho_cmd(); - ho_request_ack_s& ho_request_ack(); - init_context_setup_resp_s& init_context_setup_resp(); - ng_reset_ack_s& ng_reset_ack(); - ng_setup_resp_s& ng_setup_resp(); - path_switch_request_ack_s& path_switch_request_ack(); - pdu_session_res_modify_resp_s& pdu_session_res_modify_resp(); - pdu_session_res_modify_confirm_s& pdu_session_res_modify_confirm(); - pdu_session_res_release_resp_s& pdu_session_res_release_resp(); - pdu_session_res_setup_resp_s& pdu_session_res_setup_resp(); - pws_cancel_resp_s& pws_cancel_resp(); - ran_cfg_upd_ack_s& ran_cfg_upd_ack(); - ue_context_mod_resp_s& ue_context_mod_resp(); - ue_context_release_complete_s& ue_context_release_complete(); - ue_radio_cap_check_resp_s& ue_radio_cap_check_resp(); - write_replace_warning_resp_s& write_replace_warning_resp(); - const amf_cfg_upd_ack_s& amf_cfg_upd_ack() const; - const ho_cancel_ack_s& ho_cancel_ack() const; - const ho_cmd_s& ho_cmd() const; - const ho_request_ack_s& ho_request_ack() const; - const init_context_setup_resp_s& init_context_setup_resp() const; - const ng_reset_ack_s& ng_reset_ack() const; - const ng_setup_resp_s& ng_setup_resp() const; - const path_switch_request_ack_s& path_switch_request_ack() const; - const pdu_session_res_modify_resp_s& pdu_session_res_modify_resp() const; - const pdu_session_res_modify_confirm_s& pdu_session_res_modify_confirm() const; - const pdu_session_res_release_resp_s& pdu_session_res_release_resp() const; - const pdu_session_res_setup_resp_s& pdu_session_res_setup_resp() const; - const pws_cancel_resp_s& pws_cancel_resp() const; - const ran_cfg_upd_ack_s& ran_cfg_upd_ack() const; - const ue_context_mod_resp_s& ue_context_mod_resp() const; - const ue_context_release_complete_s& ue_context_release_complete() const; - const ue_radio_cap_check_resp_s& ue_radio_cap_check_resp() const; - const write_replace_warning_resp_s& write_replace_warning_resp() const; + maximum_integrity_protected_data_rate_e& maximum_integrity_protected_data_rate_dl() { return c; } + const maximum_integrity_protected_data_rate_e& maximum_integrity_protected_data_rate_dl() const { return c; } private: - types type_; - choice_buffer_t - c; + maximum_integrity_protected_data_rate_e c; + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +// DataForwardingNotPossible ::= ENUMERATED +struct data_forwarding_not_possible_opts { + enum options { data_forwarding_not_possible, /*...*/ nulltype } value; + + const char* to_string() const; +}; +typedef enumerated data_forwarding_not_possible_e; + +// PDUSessionType ::= ENUMERATED +struct pdu_session_type_opts { + enum options { ipv4, ipv6, ipv4v6, ethernet, unstructured, /*...*/ nulltype } value; - void destroy_(); - }; - // UnsuccessfulOutcome ::= OPEN TYPE - struct unsuccessful_outcome_c { + const char* to_string() const; +}; +typedef enumerated pdu_session_type_e; + +// QosFlowSetupRequestList ::= SEQUENCE (SIZE (1..64)) OF QosFlowSetupRequestItem +using qos_flow_setup_request_list_l = dyn_array; + +// SecurityIndication ::= SEQUENCE +struct security_ind_s { + bool ext = false; + bool maximum_integrity_protected_data_rate_ul_present = false; + bool ie_exts_present = false; + integrity_protection_ind_e integrity_protection_ind; + confidentiality_protection_ind_e confidentiality_protection_ind; + maximum_integrity_protected_data_rate_e maximum_integrity_protected_data_rate_ul; + protocol_ext_container_l ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PDUSessionResourceSetupRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct pdu_session_res_setup_request_transfer_ies_o { + // Value ::= OPEN TYPE + struct value_c { struct types_opts { enum options { - amf_cfg_upd_fail, - ho_prep_fail, - ho_fail, - init_context_setup_fail, - ng_setup_fail, - path_switch_request_fail, - ran_cfg_upd_fail, - ue_context_mod_fail, + pdu_session_aggregate_maximum_bit_rate, + ul_ngu_up_tnl_info, + add_ul_ngu_up_tnl_info, + data_forwarding_not_possible, + pdu_session_type, + security_ind, + network_instance, + qos_flow_setup_request_list, nulltype } value; + typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; + uint8_t to_number() const; }; typedef enumerated types; // choice methods - unsuccessful_outcome_c() = default; - unsuccessful_outcome_c(const unsuccessful_outcome_c& other); - unsuccessful_outcome_c& operator=(const unsuccessful_outcome_c& other); - ~unsuccessful_outcome_c() { destroy_(); } + value_c() = default; + value_c(const value_c& other); + value_c& operator=(const value_c& other); + ~value_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_fail_s& amf_cfg_upd_fail(); - ho_prep_fail_s& ho_prep_fail(); - ho_fail_s& ho_fail(); - init_context_setup_fail_s& init_context_setup_fail(); - ng_setup_fail_s& ng_setup_fail(); - path_switch_request_fail_s& path_switch_request_fail(); - ran_cfg_upd_fail_s& ran_cfg_upd_fail(); - ue_context_mod_fail_s& ue_context_mod_fail(); - const amf_cfg_upd_fail_s& amf_cfg_upd_fail() const; - const ho_prep_fail_s& ho_prep_fail() const; - const ho_fail_s& ho_fail() const; - const init_context_setup_fail_s& init_context_setup_fail() const; - const ng_setup_fail_s& ng_setup_fail() const; - const path_switch_request_fail_s& path_switch_request_fail() const; - const ran_cfg_upd_fail_s& ran_cfg_upd_fail() const; - const ue_context_mod_fail_s& ue_context_mod_fail() const; + pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate(); + up_transport_layer_info_c& ul_ngu_up_tnl_info(); + up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info(); + data_forwarding_not_possible_e& data_forwarding_not_possible(); + pdu_session_type_e& pdu_session_type(); + security_ind_s& security_ind(); + uint16_t& network_instance(); + qos_flow_setup_request_list_l& qos_flow_setup_request_list(); + const pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() const; + const up_transport_layer_info_c& ul_ngu_up_tnl_info() const; + const up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() const; + const data_forwarding_not_possible_e& data_forwarding_not_possible() const; + const pdu_session_type_e& pdu_session_type() const; + const security_ind_s& security_ind() const; + const uint16_t& network_instance() const; + const qos_flow_setup_request_list_l& qos_flow_setup_request_list() const; private: types type_; - choice_buffer_t + choice_buffer_t c; void destroy_(); }; // members lookup methods - static uint16_t idx_to_proc_code(uint32_t idx); - static bool is_proc_code_valid(const uint16_t& proc_code); - static init_msg_c get_init_msg(const uint16_t& proc_code); - static successful_outcome_c get_successful_outcome(const uint16_t& proc_code); - static unsuccessful_outcome_c get_unsuccessful_outcome(const uint16_t& proc_code); - static crit_e get_crit(const uint16_t& proc_code); + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static value_c get_value(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); }; -// InitiatingMessage ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -struct init_msg_s { - uint16_t proc_code = 0; - crit_e crit; - ngap_elem_procs_o::init_msg_c value; +struct pdu_session_res_setup_request_transfer_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // member variables + bool pdu_session_aggregate_maximum_bit_rate_present = false; + bool add_ul_ngu_up_tnl_info_present = false; + bool data_forwarding_not_possible_present = false; + bool security_ind_present = false; + bool network_instance_present = false; + ie_field_s pdu_session_aggregate_maximum_bit_rate; + ie_field_s ul_ngu_up_tnl_info; + ie_field_s > add_ul_ngu_up_tnl_info; + ie_field_s data_forwarding_not_possible; + ie_field_s pdu_session_type; + ie_field_s security_ind; + ie_field_s > network_instance; + ie_field_s > qos_flow_setup_request_list; + // sequence methods + pdu_session_res_setup_request_transfer_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - bool load_info_obj(const uint16_t& proc_code_); }; -// LastVisitedNGRANCellInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o last_visited_ngran_cell_info_ext_ies_o; - -// LastVisitedCellInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -typedef ngap_protocol_ies_empty_o last_visited_cell_info_ext_ies_o; - -typedef protocol_ext_container_empty_l last_visited_ngran_cell_info_ext_ies_container; - -// LastVisitedNGRANCellInformation ::= SEQUENCE -struct last_visited_ngran_cell_info_s { - bool ext = false; - bool time_ue_stayed_in_cell_enhanced_granularity_present = false; - bool hocause_value_present = false; - bool ie_exts_present = false; - ngran_cgi_c global_cell_id; - cell_type_s cell_type; - uint16_t time_ue_stayed_in_cell = 0; - uint16_t time_ue_stayed_in_cell_enhanced_granularity = 0; - cause_c hocause_value; - last_visited_ngran_cell_info_ext_ies_container ie_exts; +// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE +struct pdu_session_res_setup_request_transfer_s { + bool ext = false; + pdu_session_res_setup_request_transfer_ies_container protocol_ies; // ... // sequence methods @@ -15016,123 +14658,44 @@ struct last_visited_ngran_cell_info_s { void to_json(json_writer& j) const; }; -// LastVisitedCellInformation ::= CHOICE -struct last_visited_cell_info_c { - struct types_opts { - enum options { ngran_cell, eutran_cell, utran_cell, geran_cell, choice_exts, nulltype } value; +// PDUSessionResourceSetupResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_resp_transfer_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; - }; - typedef enumerated types; +using pdu_session_res_setup_resp_transfer_ext_ies_container = protocol_ext_container_empty_l; - // choice methods - last_visited_cell_info_c() = default; - last_visited_cell_info_c(const last_visited_cell_info_c& other); - last_visited_cell_info_c& operator=(const last_visited_cell_info_c& other); - ~last_visited_cell_info_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } +// PDUSessionResourceSetupResponseTransfer ::= SEQUENCE +struct pdu_session_res_setup_resp_transfer_s { + bool ext = false; + bool add_dl_qos_flow_per_tnl_info_present = false; + bool security_result_present = false; + bool qos_flow_failed_to_setup_list_present = false; + bool ie_exts_present = false; + qos_flow_per_tnl_info_s dlqos_flow_per_tnl_info; + qos_flow_per_tnl_info_list_l add_dl_qos_flow_per_tnl_info; + security_result_s security_result; + qos_flow_list_with_cause_l qos_flow_failed_to_setup_list; + pdu_session_res_setup_resp_transfer_ext_ies_container ie_exts; + // ... + + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - // getters - last_visited_ngran_cell_info_s& ngran_cell() - { - assert_choice_type("nGRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get(); - } - unbounded_octstring& eutran_cell() - { - assert_choice_type("eUTRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - unbounded_octstring& utran_cell() - { - assert_choice_type("uTRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - unbounded_octstring& geran_cell() - { - assert_choice_type("gERANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - protocol_ie_single_container_s& choice_exts() - { - assert_choice_type("choice-Extensions", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - const last_visited_ngran_cell_info_s& ngran_cell() const - { - assert_choice_type("nGRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get(); - } - const unbounded_octstring& eutran_cell() const - { - assert_choice_type("eUTRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - const unbounded_octstring& utran_cell() const - { - assert_choice_type("uTRANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - const unbounded_octstring& geran_cell() const - { - assert_choice_type("gERANCell", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - const protocol_ie_single_container_s& choice_exts() const - { - assert_choice_type("choice-Extensions", type_.to_string(), "LastVisitedCellInformation"); - return c.get >(); - } - last_visited_ngran_cell_info_s& set_ngran_cell() - { - set(types::ngran_cell); - return c.get(); - } - unbounded_octstring& set_eutran_cell() - { - set(types::eutran_cell); - return c.get >(); - } - unbounded_octstring& set_utran_cell() - { - set(types::utran_cell); - return c.get >(); - } - unbounded_octstring& set_geran_cell() - { - set(types::geran_cell); - return c.get >(); - } - protocol_ie_single_container_s& set_choice_exts() - { - set(types::choice_exts); - return c.get >(); - } - -private: - types type_; - choice_buffer_t, - unbounded_octstring > - c; - - void destroy_(); }; -// LastVisitedCellItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o last_visited_cell_item_ext_ies_o; +// PDUSessionResourceSetupUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using pdu_session_res_setup_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l last_visited_cell_item_ext_ies_container; +using pdu_session_res_setup_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; -// LastVisitedCellItem ::= SEQUENCE -struct last_visited_cell_item_s { - bool ext = false; - bool ie_exts_present = false; - last_visited_cell_info_c last_visited_cell_info; - last_visited_cell_item_ext_ies_container ie_exts; +// PDUSessionResourceSetupUnsuccessfulTransfer ::= SEQUENCE +struct pdu_session_res_setup_unsuccessful_transfer_s { + bool ext = false; + bool crit_diagnostics_present = false; + bool ie_exts_present = false; + cause_c cause; + crit_diagnostics_s crit_diagnostics; + pdu_session_res_setup_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -15141,116 +14704,148 @@ struct last_visited_cell_item_s { void to_json(json_writer& j) const; }; -// SuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -struct successful_outcome_s { - uint16_t proc_code = 0; - crit_e crit; - ngap_elem_procs_o::successful_outcome_c value; +// PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct path_switch_request_ack_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { add_ngu_up_tnl_info, nulltype } value; + + const char* to_string() const; + }; + typedef enumerated types; + + // choice methods + types type() const { return types::add_ngu_up_tnl_info; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() { return c; } + const up_transport_layer_info_pair_list_l& add_ngu_up_tnl_info() const { return c; } + + private: + up_transport_layer_info_pair_list_l c; + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +// PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE +struct path_switch_request_ack_transfer_s { + bool ext = false; + bool ul_ngu_up_tnl_info_present = false; + bool security_ind_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c ul_ngu_up_tnl_info; + security_ind_s security_ind; + protocol_ext_container_l ie_exts; + // ... + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - bool load_info_obj(const uint16_t& proc_code_); }; -// UnsuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -struct unsuccessful_outcome_s { - uint16_t proc_code = 0; - crit_e crit; - ngap_elem_procs_o::unsuccessful_outcome_c value; +// PathSwitchRequestSetupFailedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using path_switch_request_setup_failed_transfer_ext_ies_o = ngap_protocol_ext_empty_o; + +using path_switch_request_setup_failed_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// PathSwitchRequestSetupFailedTransfer ::= SEQUENCE +struct path_switch_request_setup_failed_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + path_switch_request_setup_failed_transfer_ext_ies_container ie_exts; + // ... + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - bool load_info_obj(const uint16_t& proc_code_); }; -// NGAP-PDU ::= CHOICE -struct ngap_pdu_c { - struct types_opts { - enum options { init_msg, successful_outcome, unsuccessful_outcome, /*...*/ nulltype } value; +// QosFlowAcceptedItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using qos_flow_accepted_item_ext_ies_o = ngap_protocol_ext_empty_o; - std::string to_string() const; - }; - typedef enumerated types; +using qos_flow_accepted_item_ext_ies_container = protocol_ext_container_empty_l; - // choice methods - ngap_pdu_c() = default; - ngap_pdu_c(const ngap_pdu_c& other); - ngap_pdu_c& operator=(const ngap_pdu_c& other); - ~ngap_pdu_c() { destroy_(); } - void set(types::options e = types::nulltype); - types type() const { return type_; } +// QosFlowAcceptedItem ::= SEQUENCE +struct qos_flow_accepted_item_s { + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_accepted_item_ext_ies_container ie_exts; + // ... + + // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; - // getters - init_msg_s& init_msg() - { - assert_choice_type("initiatingMessage", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - successful_outcome_s& successful_outcome() - { - assert_choice_type("successfulOutcome", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - unsuccessful_outcome_s& unsuccessful_outcome() - { - assert_choice_type("unsuccessfulOutcome", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - const init_msg_s& init_msg() const - { - assert_choice_type("initiatingMessage", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - const successful_outcome_s& successful_outcome() const - { - assert_choice_type("successfulOutcome", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - const unsuccessful_outcome_s& unsuccessful_outcome() const - { - assert_choice_type("unsuccessfulOutcome", type_.to_string(), "NGAP-PDU"); - return c.get(); - } - init_msg_s& set_init_msg() - { - set(types::init_msg); - return c.get(); - } - successful_outcome_s& set_successful_outcome() - { - set(types::successful_outcome); - return c.get(); - } - unsuccessful_outcome_s& set_unsuccessful_outcome() - { - set(types::unsuccessful_outcome); - return c.get(); - } +}; -private: - types type_; - choice_buffer_t c; +// UserPlaneSecurityInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using user_plane_security_info_ext_ies_o = ngap_protocol_ext_empty_o; - void destroy_(); +// DL-NGU-TNLInformationReused ::= ENUMERATED +struct dl_ngu_tnl_info_reused_opts { + enum options { true_value, /*...*/ nulltype } value; + + const char* to_string() const; }; +typedef enumerated dl_ngu_tnl_info_reused_e; -// QosFlowInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_info_item_ext_ies_o; +// PathSwitchRequestTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +struct path_switch_request_transfer_ext_ies_o { + // Extension ::= OPEN TYPE + struct ext_c { + struct types_opts { + enum options { add_dl_qos_flow_per_tnl_info, nulltype } value; -typedef protocol_ext_container_empty_l qos_flow_info_item_ext_ies_container; + const char* to_string() const; + }; + typedef enumerated types; -// QosFlowInformationItem ::= SEQUENCE -struct qos_flow_info_item_s { - bool ext = false; - bool dlforwarding_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - dl_forwarding_e dlforwarding; - qos_flow_info_item_ext_ies_container ie_exts; + // choice methods + types type() const { return types::add_dl_qos_flow_per_tnl_info; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + qos_flow_per_tnl_info_list_l& add_dl_qos_flow_per_tnl_info() { return c; } + const qos_flow_per_tnl_info_list_l& add_dl_qos_flow_per_tnl_info() const { return c; } + + private: + qos_flow_per_tnl_info_list_l c; + }; + + // members lookup methods + static uint32_t idx_to_id(uint32_t idx); + static bool is_id_valid(const uint32_t& id); + static crit_e get_crit(const uint32_t& id); + static ext_c get_ext(const uint32_t& id); + static presence_e get_presence(const uint32_t& id); +}; + +// QosFlowAcceptedList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAcceptedItem +using qos_flow_accepted_list_l = dyn_array; + +using user_plane_security_info_ext_ies_container = protocol_ext_container_empty_l; + +// UserPlaneSecurityInformation ::= SEQUENCE +struct user_plane_security_info_s { + bool ext = false; + bool ie_exts_present = false; + security_result_s security_result; + security_ind_s security_ind; + user_plane_security_info_ext_ies_container ie_exts; // ... // sequence methods @@ -15259,23 +14854,36 @@ struct qos_flow_info_item_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o pdu_session_res_info_item_ext_ies_o; +// PathSwitchRequestTransfer ::= SEQUENCE +struct path_switch_request_transfer_s { + bool ext = false; + bool dl_ngu_tnl_info_reused_present = false; + bool user_plane_security_info_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c dl_ngu_up_tnl_info; + dl_ngu_tnl_info_reused_e dl_ngu_tnl_info_reused; + user_plane_security_info_s user_plane_security_info; + qos_flow_accepted_list_l qos_flow_accepted_list; + protocol_ext_container_l ie_exts; + // ... -// QosFlowInformationList ::= SEQUENCE (SIZE (1..64)) OF QosFlowInformationItem -using qos_flow_info_list_l = dyn_array; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; -typedef protocol_ext_container_empty_l pdu_session_res_info_item_ext_ies_container; +// PathSwitchRequestUnsuccessfulTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using path_switch_request_unsuccessful_transfer_ext_ies_o = ngap_protocol_ext_empty_o; -// PDUSessionResourceInformationItem ::= SEQUENCE -struct pdu_session_res_info_item_s { - bool ext = false; - bool drbs_to_qos_flows_map_list_present = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - qos_flow_info_list_l qos_flow_info_list; - drbs_to_qos_flows_map_list_l drbs_to_qos_flows_map_list; - pdu_session_res_info_item_ext_ies_container ie_exts; +using path_switch_request_unsuccessful_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE +struct path_switch_request_unsuccessful_transfer_s { + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + path_switch_request_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -15284,9 +14892,6 @@ struct pdu_session_res_info_item_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceInformationList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceInformationItem -using pdu_session_res_info_list_l = dyn_array; - // ProtocolIE-FieldPair{NGAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES-PAIR}} template struct protocol_ie_field_pair_s { @@ -15307,9 +14912,9 @@ template using protocol_ie_container_pair_l = dyn_seq_of, 0, 65535, true>; // QosFlowSetupResponseItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o qos_flow_setup_resp_item_su_res_ext_ies_o; +using qos_flow_setup_resp_item_su_res_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l qos_flow_setup_resp_item_su_res_ext_ies_container; +using qos_flow_setup_resp_item_su_res_ext_ies_container = protocol_ext_container_empty_l; // QosFlowSetupResponseItemSURes ::= SEQUENCE struct qos_flow_setup_resp_item_su_res_s { @@ -15328,13 +14933,33 @@ struct qos_flow_setup_resp_item_su_res_s { // QosFlowSetupResponseListSURes ::= SEQUENCE (SIZE (1..64)) OF QosFlowSetupResponseItemSURes using qos_flow_setup_resp_list_su_res_l = dyn_array; +// SecondaryRATDataUsageReportTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +using secondary_rat_data_usage_report_transfer_ext_ies_o = ngap_protocol_ext_empty_o; + +using secondary_rat_data_usage_report_transfer_ext_ies_container = protocol_ext_container_empty_l; + +// SecondaryRATDataUsageReportTransfer ::= SEQUENCE +struct secondary_rat_data_usage_report_transfer_s { + bool ext = false; + bool secondary_ratusage_info_present = false; + bool ie_exts_present = false; + secondary_ratusage_info_s secondary_ratusage_info; + secondary_rat_data_usage_report_transfer_ext_ies_container ie_exts; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_o; +using source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_o = ngap_protocol_ext_empty_o; // UEHistoryInformation ::= SEQUENCE (SIZE (1..16)) OF LastVisitedCellItem using ue_history_info_l = dyn_array; -typedef protocol_ext_container_empty_l source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_container; +using source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_container = protocol_ext_container_empty_l; // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE struct source_ngran_node_to_target_ngran_node_transparent_container_s { @@ -15359,9 +14984,9 @@ struct source_ngran_node_to_target_ngran_node_transparent_container_s { }; // TargetNGRANNode-ToSourceNGRANNode-TransparentContainer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -typedef ngap_protocol_ext_empty_o target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_o; +using target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_o = ngap_protocol_ext_empty_o; -typedef protocol_ext_container_empty_l target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_container; +using target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_container = protocol_ext_container_empty_l; // TargetNGRANNode-ToSourceNGRANNode-TransparentContainer ::= SEQUENCE struct target_ngran_node_to_source_ngran_node_transparent_container_s { diff --git a/lib/include/srsran/asn1/rrc.h b/lib/include/srsran/asn1/rrc.h index 0719b5e15..9f6b8ca49 100644 --- a/lib/include/srsran/asn1/rrc.h +++ b/lib/include/srsran/asn1/rrc.h @@ -47,7 +47,7 @@ struct mib_mbms_r14_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dl_bw_mbms_r14_e_; @@ -87,7 +87,7 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { enum options { sys_info_mbms_r14, sib_type1_mbms_r14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -105,34 +105,26 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { // getters sys_info_mbms_r14_s& sys_info_mbms_r14() { - assert_choice_type("systemInformation-MBMS-r14", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_mbms_r14, type_, "c1"); return c.get(); } sib_type1_mbms_r14_s& sib_type1_mbms_r14() { - assert_choice_type("systemInformationBlockType1-MBMS-r14", type_.to_string(), "c1"); + assert_choice_type(types::sib_type1_mbms_r14, type_, "c1"); return c.get(); } const sys_info_mbms_r14_s& sys_info_mbms_r14() const { - assert_choice_type("systemInformation-MBMS-r14", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_mbms_r14, type_, "c1"); return c.get(); } const sib_type1_mbms_r14_s& sib_type1_mbms_r14() const { - assert_choice_type("systemInformationBlockType1-MBMS-r14", type_.to_string(), "c1"); - return c.get(); - } - sys_info_mbms_r14_s& set_sys_info_mbms_r14() - { - set(types::sys_info_mbms_r14); - return c.get(); - } - sib_type1_mbms_r14_s& set_sib_type1_mbms_r14() - { - set(types::sib_type1_mbms_r14); + assert_choice_type(types::sib_type1_mbms_r14, type_, "c1"); return c.get(); } + sys_info_mbms_r14_s& set_sys_info_mbms_r14(); + sib_type1_mbms_r14_s& set_sib_type1_mbms_r14(); private: types type_; @@ -144,7 +136,7 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -159,20 +151,16 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-MBMS-r14"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-MBMS-r14"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -216,7 +204,7 @@ struct pmch_cfg_r12_s { struct types_opts { enum options { normal_r12, higer_order_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -233,34 +221,26 @@ struct pmch_cfg_r12_s { // getters uint8_t& normal_r12() { - assert_choice_type("normal-r12", type_.to_string(), "dataMCS-r12"); + assert_choice_type(types::normal_r12, type_, "dataMCS-r12"); return c.get(); } uint8_t& higer_order_r12() { - assert_choice_type("higerOrder-r12", type_.to_string(), "dataMCS-r12"); + assert_choice_type(types::higer_order_r12, type_, "dataMCS-r12"); return c.get(); } const uint8_t& normal_r12() const { - assert_choice_type("normal-r12", type_.to_string(), "dataMCS-r12"); + assert_choice_type(types::normal_r12, type_, "dataMCS-r12"); return c.get(); } const uint8_t& higer_order_r12() const { - assert_choice_type("higerOrder-r12", type_.to_string(), "dataMCS-r12"); - return c.get(); - } - uint8_t& set_normal_r12() - { - set(types::normal_r12); - return c.get(); - } - uint8_t& set_higer_order_r12() - { - set(types::higer_order_r12); + assert_choice_type(types::higer_order_r12, type_, "dataMCS-r12"); return c.get(); } + uint8_t& set_normal_r12(); + uint8_t& set_higer_order_r12(); private: types type_; @@ -272,7 +252,7 @@ struct pmch_cfg_r12_s { enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mch_sched_period_r12_e_; @@ -280,7 +260,7 @@ struct pmch_cfg_r12_s { enum options { rf1, rf2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mch_sched_period_v1430_e_; @@ -334,7 +314,7 @@ struct pmch_cfg_r9_s { enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mch_sched_period_r9_e_; @@ -434,7 +414,7 @@ struct mbsfn_area_cfg_r9_s { enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated common_sf_alloc_period_r9_e_; @@ -458,7 +438,7 @@ struct mcch_msg_type_c { struct types_opts { enum options { mbsfn_area_cfg_r9, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -479,7 +459,7 @@ struct mcch_msg_type_c { struct types_opts { enum options { mbms_count_request_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -499,7 +479,7 @@ struct mcch_msg_type_c { enum options { c2, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -514,20 +494,16 @@ struct mcch_msg_type_c { // getters c2_c_& c2() { - assert_choice_type("c2", type_.to_string(), "later"); + assert_choice_type(types::c2, type_, "later"); return c; } const c2_c_& c2() const { - assert_choice_type("c2", type_.to_string(), "later"); - return c; - } - c2_c_& set_c2() - { - set(types::c2); + assert_choice_type(types::c2, type_, "later"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c2_c_& set_c2(); + void set_msg_class_ext(); private: types type_; @@ -537,7 +513,7 @@ struct mcch_msg_type_c { enum options { c1, later, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -555,34 +531,26 @@ struct mcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "MCCH-MessageType"); + assert_choice_type(types::c1, type_, "MCCH-MessageType"); return c.get(); } later_c_& later() { - assert_choice_type("later", type_.to_string(), "MCCH-MessageType"); + assert_choice_type(types::later, type_, "MCCH-MessageType"); return c.get(); } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "MCCH-MessageType"); + assert_choice_type(types::c1, type_, "MCCH-MessageType"); return c.get(); } const later_c_& later() const { - assert_choice_type("later", type_.to_string(), "MCCH-MessageType"); - return c.get(); - } - c1_c_& set_c1() - { - set(types::c1); - return c.get(); - } - later_c_& set_later() - { - set(types::later); + assert_choice_type(types::later, type_, "MCCH-MessageType"); return c.get(); } + c1_c_& set_c1(); + later_c_& set_later(); private: types type_; @@ -619,7 +587,7 @@ struct sc_mtch_sched_info_br_r14_s { enum options { psf300, psf400, psf500, psf600, psf800, psf1000, psf1200, psf1600, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r14_e_; @@ -645,7 +613,7 @@ struct sc_mtch_sched_info_br_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r14_e_; @@ -672,7 +640,7 @@ struct sc_mtch_sched_info_br_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -690,244 +658,180 @@ struct sc_mtch_sched_info_br_r14_s { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf4096() { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf8192() { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf4096() const { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf8192() const { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf4096() - { - set(types::sf4096); - return c.get(); - } - uint16_t& set_sf8192() - { - set(types::sf8192); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf2048(); + uint16_t& set_sf4096(); + uint16_t& set_sf8192(); private: types type_; @@ -973,7 +877,7 @@ struct sc_mtch_sched_info_r13_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r13_e_; @@ -999,7 +903,7 @@ struct sc_mtch_sched_info_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r13_e_; @@ -1026,7 +930,7 @@ struct sc_mtch_sched_info_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -1044,244 +948,180 @@ struct sc_mtch_sched_info_r13_s { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf4096() { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } uint16_t& sf8192() { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf4096() const { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } const uint16_t& sf8192() const { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf4096() - { - set(types::sf4096); - return c.get(); - } - uint16_t& set_sf8192() - { - set(types::sf8192); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r13"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf2048(); + uint16_t& set_sf4096(); + uint16_t& set_sf8192(); private: types type_; @@ -1321,7 +1161,7 @@ struct sc_mtch_info_br_r14_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_sc_mtch_r14_e_; @@ -1330,23 +1170,23 @@ struct sc_mtch_info_br_r14_s { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated fdd_r14_e_; struct tdd_r14_opts { enum options { v1, v2, v4, v5, v8, v10, v20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r14_e_; struct types_opts { enum options { fdd_r14, tdd_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1363,34 +1203,26 @@ struct sc_mtch_info_br_r14_s { // getters fdd_r14_e_& fdd_r14() { - assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14"); + assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MTCH-r14"); return c.get(); } tdd_r14_e_& tdd_r14() { - assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14"); + assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MTCH-r14"); return c.get(); } const fdd_r14_e_& fdd_r14() const { - assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14"); + assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MTCH-r14"); return c.get(); } const tdd_r14_e_& tdd_r14() const { - assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14"); - return c.get(); - } - fdd_r14_e_& set_fdd_r14() - { - set(types::fdd_r14); - return c.get(); - } - tdd_r14_e_& set_tdd_r14() - { - set(types::tdd_r14); + assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MTCH-r14"); return c.get(); } + fdd_r14_e_& set_fdd_r14(); + tdd_r14_e_& set_tdd_r14(); private: types type_; @@ -1401,22 +1233,22 @@ struct sc_mtch_info_br_r14_s { struct mpdcch_pdsch_hop_cfg_sc_mtch_r14_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mpdcch_pdsch_hop_cfg_sc_mtch_r14_e_; struct mpdcch_pdsch_cemode_cfg_sc_mtch_r14_opts { enum options { ce_mode_a, ce_mode_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mpdcch_pdsch_cemode_cfg_sc_mtch_r14_e_; struct mpdcch_pdsch_max_bw_sc_mtch_r14_opts { enum options { bw1dot4, bw5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mpdcch_pdsch_max_bw_sc_mtch_r14_e_; struct mpdcch_offset_sc_mtch_r14_opts { @@ -1433,18 +1265,18 @@ struct sc_mtch_info_br_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mpdcch_offset_sc_mtch_r14_e_; struct p_a_r14_opts { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_r14_e_; @@ -1480,9 +1312,9 @@ struct sc_mtch_info_r13_s { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_r13_e_; @@ -1565,7 +1397,7 @@ struct sc_mcch_msg_type_r13_c { struct types_opts { enum options { scptm_cfg_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1586,7 +1418,7 @@ struct sc_mcch_msg_type_r13_c { struct types_opts { enum options { scptm_cfg_br_r14, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1600,20 +1432,16 @@ struct sc_mcch_msg_type_r13_c { // getters scptm_cfg_br_r14_s& scptm_cfg_br_r14() { - assert_choice_type("scptmConfiguration-BR-r14", type_.to_string(), "c2"); + assert_choice_type(types::scptm_cfg_br_r14, type_, "c2"); return c; } const scptm_cfg_br_r14_s& scptm_cfg_br_r14() const { - assert_choice_type("scptmConfiguration-BR-r14", type_.to_string(), "c2"); + assert_choice_type(types::scptm_cfg_br_r14, type_, "c2"); return c; } - scptm_cfg_br_r14_s& set_scptm_cfg_br_r14() - { - set(types::scptm_cfg_br_r14); - return c; - } - void set_spare() { set(types::spare); } + scptm_cfg_br_r14_s& set_scptm_cfg_br_r14(); + void set_spare(); private: types type_; @@ -1623,7 +1451,7 @@ struct sc_mcch_msg_type_r13_c { enum options { c2, msg_class_ext_future_r14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1638,20 +1466,16 @@ struct sc_mcch_msg_type_r13_c { // getters c2_c_& c2() { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } const c2_c_& c2() const { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c; - } - c2_c_& set_c2() - { - set(types::c2); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } - void set_msg_class_ext_future_r14() { set(types::msg_class_ext_future_r14); } + c2_c_& set_c2(); + void set_msg_class_ext_future_r14(); private: types type_; @@ -1661,7 +1485,7 @@ struct sc_mcch_msg_type_r13_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1679,34 +1503,26 @@ struct sc_mcch_msg_type_r13_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-r13"); + assert_choice_type(types::c1, type_, "SC-MCCH-MessageType-r13"); return c.get(); } msg_class_ext_c_& msg_class_ext() { - assert_choice_type("messageClassExtension", type_.to_string(), "SC-MCCH-MessageType-r13"); + assert_choice_type(types::msg_class_ext, type_, "SC-MCCH-MessageType-r13"); return c.get(); } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-r13"); + assert_choice_type(types::c1, type_, "SC-MCCH-MessageType-r13"); return c.get(); } const msg_class_ext_c_& msg_class_ext() const { - assert_choice_type("messageClassExtension", type_.to_string(), "SC-MCCH-MessageType-r13"); - return c.get(); - } - c1_c_& set_c1() - { - set(types::c1); - return c.get(); - } - msg_class_ext_c_& set_msg_class_ext() - { - set(types::msg_class_ext); + assert_choice_type(types::msg_class_ext, type_, "SC-MCCH-MessageType-r13"); return c.get(); } + c1_c_& set_c1(); + msg_class_ext_c_& set_msg_class_ext(); private: types type_; @@ -1742,27 +1558,27 @@ struct mimo_weighted_layers_cap_r13_s { enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rel_weight_two_layers_r13_e_; struct rel_weight_four_layers_r13_opts { enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rel_weight_four_layers_r13_e_; struct rel_weight_eight_layers_r13_opts { enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rel_weight_eight_layers_r13_e_; @@ -1866,7 +1682,7 @@ struct cells_triggered_list_item_c_ { struct types_opts { enum options { fdd, tdd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1883,34 +1699,26 @@ struct cells_triggered_list_item_c_ { // getters uint16_t& fdd() { - assert_choice_type("fdd", type_.to_string(), "physCellIdUTRA"); + assert_choice_type(types::fdd, type_, "physCellIdUTRA"); return c.get(); } uint8_t& tdd() { - assert_choice_type("tdd", type_.to_string(), "physCellIdUTRA"); + assert_choice_type(types::tdd, type_, "physCellIdUTRA"); return c.get(); } const uint16_t& fdd() const { - assert_choice_type("fdd", type_.to_string(), "physCellIdUTRA"); + assert_choice_type(types::fdd, type_, "physCellIdUTRA"); return c.get(); } const uint8_t& tdd() const { - assert_choice_type("tdd", type_.to_string(), "physCellIdUTRA"); - return c.get(); - } - uint16_t& set_fdd() - { - set(types::fdd); - return c.get(); - } - uint8_t& set_tdd() - { - set(types::tdd); + assert_choice_type(types::tdd, type_, "physCellIdUTRA"); return c.get(); } + uint16_t& set_fdd(); + uint8_t& set_tdd(); private: types type_; @@ -1932,7 +1740,7 @@ struct cells_triggered_list_item_c_ { enum options { pci_eutra, pci_utra, pci_geran, pci_cdma2000, wlan_ids_r13, pci_nr_r15, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -1950,94 +1758,70 @@ struct cells_triggered_list_item_c_ { // getters uint16_t& pci_eutra() { - assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_eutra, type_, "CellsTriggeredList-item"); return c.get(); } pci_utra_c_& pci_utra() { - assert_choice_type("physCellIdUTRA", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_utra, type_, "CellsTriggeredList-item"); return c.get(); } pci_geran_s_& pci_geran() { - assert_choice_type("physCellIdGERAN", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_geran, type_, "CellsTriggeredList-item"); return c.get(); } uint16_t& pci_cdma2000() { - assert_choice_type("physCellIdCDMA2000", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_cdma2000, type_, "CellsTriggeredList-item"); return c.get(); } wlan_ids_r12_s& wlan_ids_r13() { - assert_choice_type("wlan-Identifiers-r13", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::wlan_ids_r13, type_, "CellsTriggeredList-item"); return c.get(); } pci_nr_r15_s_& pci_nr_r15() { - assert_choice_type("physCellIdNR-r15", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_nr_r15, type_, "CellsTriggeredList-item"); return c.get(); } const uint16_t& pci_eutra() const { - assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_eutra, type_, "CellsTriggeredList-item"); return c.get(); } const pci_utra_c_& pci_utra() const { - assert_choice_type("physCellIdUTRA", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_utra, type_, "CellsTriggeredList-item"); return c.get(); } const pci_geran_s_& pci_geran() const { - assert_choice_type("physCellIdGERAN", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_geran, type_, "CellsTriggeredList-item"); return c.get(); } const uint16_t& pci_cdma2000() const { - assert_choice_type("physCellIdCDMA2000", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_cdma2000, type_, "CellsTriggeredList-item"); return c.get(); } const wlan_ids_r12_s& wlan_ids_r13() const { - assert_choice_type("wlan-Identifiers-r13", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::wlan_ids_r13, type_, "CellsTriggeredList-item"); return c.get(); } const pci_nr_r15_s_& pci_nr_r15() const { - assert_choice_type("physCellIdNR-r15", type_.to_string(), "CellsTriggeredList-item"); - return c.get(); - } - uint16_t& set_pci_eutra() - { - set(types::pci_eutra); - return c.get(); - } - pci_utra_c_& set_pci_utra() - { - set(types::pci_utra); - return c.get(); - } - pci_geran_s_& set_pci_geran() - { - set(types::pci_geran); - return c.get(); - } - uint16_t& set_pci_cdma2000() - { - set(types::pci_cdma2000); - return c.get(); - } - wlan_ids_r12_s& set_wlan_ids_r13() - { - set(types::wlan_ids_r13); - return c.get(); - } - pci_nr_r15_s_& set_pci_nr_r15() - { - set(types::pci_nr_r15); + assert_choice_type(types::pci_nr_r15, type_, "CellsTriggeredList-item"); return c.get(); } + uint16_t& set_pci_eutra(); + pci_utra_c_& set_pci_utra(); + pci_geran_s_& set_pci_geran(); + uint16_t& set_pci_cdma2000(); + wlan_ids_r12_s& set_wlan_ids_r13(); + pci_nr_r15_s_& set_pci_nr_r15(); private: types type_; @@ -2054,7 +1838,7 @@ struct drb_info_scg_r12_s { struct drb_type_r12_opts { enum options { split, scg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated drb_type_r12_e_; @@ -2087,7 +1871,7 @@ struct tdd_cfg_sl_r12_s { struct sf_assign_sl_r12_opts { enum options { none, sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sf_assign_sl_r12_e_; @@ -2106,7 +1890,7 @@ struct mib_sl_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_bw_r12_e_; @@ -2131,7 +1915,7 @@ struct mib_sl_v2x_r14_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_bw_r14_e_; @@ -2353,7 +2137,7 @@ struct scg_cfg_info_r12_s { struct types_opts { enum options { scg_cfg_info_r12, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2367,26 +2151,22 @@ struct scg_cfg_info_r12_s { // getters scg_cfg_info_r12_ies_s& scg_cfg_info_r12() { - assert_choice_type("scg-ConfigInfo-r12", type_.to_string(), "c1"); + assert_choice_type(types::scg_cfg_info_r12, type_, "c1"); return c; } const scg_cfg_info_r12_ies_s& scg_cfg_info_r12() const { - assert_choice_type("scg-ConfigInfo-r12", type_.to_string(), "c1"); - return c; - } - scg_cfg_info_r12_ies_s& set_scg_cfg_info_r12() - { - set(types::scg_cfg_info_r12); + assert_choice_type(types::scg_cfg_info_r12, type_, "c1"); return c; } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + scg_cfg_info_r12_ies_s& set_scg_cfg_info_r12(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -2404,20 +2184,16 @@ struct scg_cfg_info_r12_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -2539,7 +2315,7 @@ struct sl_precfg_disc_pool_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated disc_period_r13_e_; @@ -2548,7 +2324,7 @@ struct sl_precfg_disc_pool_r13_s { enum options { p25, p50, p75, p100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_probability_r13_e_; @@ -2596,7 +2372,7 @@ struct sl_precfg_general_r12_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_bw_r12_e_; @@ -2637,7 +2413,7 @@ struct sl_precfg_sync_r12_s { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sync_ref_min_hyst_r12_e_; @@ -2645,7 +2421,7 @@ struct sl_precfg_sync_r12_s { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sync_ref_diff_hyst_r12_e_; @@ -2710,7 +2486,7 @@ struct sl_v2x_precfg_comm_pool_r14_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated size_subch_r14_e_; @@ -2718,7 +2494,7 @@ struct sl_v2x_precfg_comm_pool_r14_s { enum options { n1, n3, n5, n8, n10, n15, n20, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_subch_r14_e_; @@ -2780,7 +2556,7 @@ struct sl_precfg_v2x_sync_r14_s { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sync_ref_min_hyst_r14_e_; @@ -2788,7 +2564,7 @@ struct sl_precfg_v2x_sync_r14_s { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sync_ref_diff_hyst_r14_e_; @@ -2849,7 +2625,7 @@ struct sl_v2x_precfg_freq_info_r14_s { struct sync_prio_r14_opts { enum options { gnss, enb, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sync_prio_r14_e_; @@ -2888,7 +2664,7 @@ struct sl_v2x_tx_profile_r15_opts { enum options { rel14, rel15, spare6, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_v2x_tx_profile_r15_e; @@ -3030,7 +2806,7 @@ struct var_meas_idle_cfg_r15_s { enum options { sec10, sec30, sec60, sec120, sec180, sec240, sec300, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated meas_idle_dur_r15_e_; diff --git a/lib/include/srsran/asn1/rrc/bcch_msg.h b/lib/include/srsran/asn1/rrc/bcch_msg.h index d1f506729..525ec40e6 100644 --- a/lib/include/srsran/asn1/rrc/bcch_msg.h +++ b/lib/include/srsran/asn1/rrc/bcch_msg.h @@ -254,7 +254,7 @@ struct plmn_id_info2_r12_c { struct types_opts { enum options { plmn_idx_r12, plmn_id_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -271,34 +271,26 @@ struct plmn_id_info2_r12_c { // getters uint8_t& plmn_idx_r12() { - assert_choice_type("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12"); + assert_choice_type(types::plmn_idx_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } plmn_id_s& plmn_id_r12() { - assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12"); + assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } const uint8_t& plmn_idx_r12() const { - assert_choice_type("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12"); + assert_choice_type(types::plmn_idx_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } const plmn_id_s& plmn_id_r12() const { - assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12"); - return c.get(); - } - uint8_t& set_plmn_idx_r12() - { - set(types::plmn_idx_r12); - return c.get(); - } - plmn_id_s& set_plmn_id_r12() - { - set(types::plmn_id_r12); + assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } + uint8_t& set_plmn_idx_r12(); + plmn_id_s& set_plmn_id_r12(); private: types type_; @@ -319,7 +311,7 @@ struct sys_time_info_cdma2000_s { struct types_opts { enum options { sync_sys_time, async_sys_time, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -336,34 +328,26 @@ struct sys_time_info_cdma2000_s { // getters fixed_bitstring<39>& sync_sys_time() { - assert_choice_type("synchronousSystemTime", type_.to_string(), "cdma-SystemTime"); + assert_choice_type(types::sync_sys_time, type_, "cdma-SystemTime"); return c.get >(); } fixed_bitstring<49>& async_sys_time() { - assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime"); + assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime"); return c.get >(); } const fixed_bitstring<39>& sync_sys_time() const { - assert_choice_type("synchronousSystemTime", type_.to_string(), "cdma-SystemTime"); + assert_choice_type(types::sync_sys_time, type_, "cdma-SystemTime"); return c.get >(); } const fixed_bitstring<49>& async_sys_time() const { - assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime"); - return c.get >(); - } - fixed_bitstring<39>& set_sync_sys_time() - { - set(types::sync_sys_time); - return c.get >(); - } - fixed_bitstring<49>& set_async_sys_time() - { - set(types::async_sys_time); + assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime"); return c.get >(); } + fixed_bitstring<39>& set_sync_sys_time(); + fixed_bitstring<49>& set_async_sys_time(); private: types type_; @@ -444,7 +428,7 @@ struct params_cdma2000_r11_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -458,20 +442,16 @@ struct params_cdma2000_r11_s { // getters sys_time_info_cdma2000_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "systemTimeInfo-r11"); + assert_choice_type(types::explicit_value, type_, "systemTimeInfo-r11"); return c; } const sys_time_info_cdma2000_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "systemTimeInfo-r11"); - return c; - } - sys_time_info_cdma2000_s& set_explicit_value() - { - set(types::explicit_value); + assert_choice_type(types::explicit_value, type_, "systemTimeInfo-r11"); return c; } - void set_default_value() { set(types::default_value); } + sys_time_info_cdma2000_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -553,7 +533,7 @@ struct carrier_freq_nr_r15_s { enum options { khz15, khz30, khz120, khz240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r15_e_; @@ -732,7 +712,7 @@ struct eab_cfg_r11_s { struct eab_category_r11_opts { enum options { a, b, c, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated eab_category_r11_e_; @@ -934,7 +914,7 @@ struct mbms_carrier_type_r14_s { struct carrier_type_r14_opts { enum options { mbms, fembms_mixed, fembms_ded, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated carrier_type_r14_e_; @@ -977,7 +957,7 @@ struct mbsfn_area_info_r9_s { enum options { s1, s2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated non_mbsfn_region_len_e_; @@ -986,7 +966,7 @@ struct mbsfn_area_info_r9_s { enum options { rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_repeat_period_r9_e_; @@ -994,7 +974,7 @@ struct mbsfn_area_info_r9_s { enum options { rf512, rf1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_mod_period_r9_e_; @@ -1002,7 +982,7 @@ struct mbsfn_area_info_r9_s { enum options { n2, n7, n13, n19, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sig_mcs_r9_e_; @@ -1019,7 +999,7 @@ struct mbsfn_area_info_r9_s { enum options { rf1, rf2, rf4, rf8, rf16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mcch_repeat_period_v1430_e_; @@ -1027,7 +1007,7 @@ struct mbsfn_area_info_r9_s { enum options { rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, spare7, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_mod_period_v1430_e_; @@ -1042,9 +1022,9 @@ struct mbsfn_area_info_r9_s { enum options { khz7dot5, khz1dot25, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated subcarrier_spacing_mbms_r14_e_; @@ -1078,7 +1058,7 @@ struct resel_info_relay_r13_s { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated min_hyst_r13_e_; @@ -1101,7 +1081,7 @@ struct sib8_per_plmn_r11_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1115,20 +1095,16 @@ struct sib8_per_plmn_r11_s { // getters params_cdma2000_r11_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "parametersCDMA2000-r11"); + assert_choice_type(types::explicit_value, type_, "parametersCDMA2000-r11"); return c; } const params_cdma2000_r11_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "parametersCDMA2000-r11"); - return c; - } - params_cdma2000_r11_s& set_explicit_value() - { - set(types::explicit_value); + assert_choice_type(types::explicit_value, type_, "parametersCDMA2000-r11"); return c; } - void set_default_value() { set(types::default_value); } + params_cdma2000_r11_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -1198,16 +1174,16 @@ struct uac_barr_info_set_r15_s { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated uac_barr_factor_r15_e_; struct uac_barr_time_r15_opts { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated uac_barr_time_r15_e_; @@ -1230,7 +1206,7 @@ struct uac_barr_per_plmn_r15_s { struct types_opts { enum options { uac_implicit_ac_barr_list_r15, uac_explicit_ac_barr_list_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1247,34 +1223,26 @@ struct uac_barr_per_plmn_r15_s { // getters uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15() { - assert_choice_type("uac-ImplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15"); + assert_choice_type(types::uac_implicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15() { - assert_choice_type("uac-ExplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15"); + assert_choice_type(types::uac_explicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } const uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15() const { - assert_choice_type("uac-ImplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15"); + assert_choice_type(types::uac_implicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } const uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15() const { - assert_choice_type("uac-ExplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15"); - return c.get(); - } - uac_implicit_ac_barr_list_r15_l_& set_uac_implicit_ac_barr_list_r15() - { - set(types::uac_implicit_ac_barr_list_r15); - return c.get(); - } - uac_barr_per_cat_list_r15_l& set_uac_explicit_ac_barr_list_r15() - { - set(types::uac_explicit_ac_barr_list_r15); + assert_choice_type(types::uac_explicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } + uac_implicit_ac_barr_list_r15_l_& set_uac_implicit_ac_barr_list_r15(); + uac_barr_per_cat_list_r15_l& set_uac_explicit_ac_barr_list_r15(); private: types type_; @@ -1328,7 +1296,7 @@ struct cell_resel_info_common_v1460_s { enum options { db6, db9, db12, db15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated s_search_delta_p_r14_e_; @@ -1448,7 +1416,7 @@ struct mbms_notif_cfg_r9_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated notif_repeat_coeff_r9_e_; @@ -1501,7 +1469,7 @@ struct redist_serving_info_r13_s { enum options { min4, min8, min16, min32, infinity, spare3, spare2, spare1, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated t360_r13_e_; @@ -1524,7 +1492,7 @@ struct sc_mcch_sched_info_r14_s { enum options { psf10, psf20, psf100, psf300, psf500, psf1000, psf1200, psf1600, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r14_e_; @@ -1550,7 +1518,7 @@ struct sc_mcch_sched_info_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r14_e_; @@ -1577,7 +1545,7 @@ struct sc_mcch_sched_info_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -1595,244 +1563,180 @@ struct sc_mcch_sched_info_r14_s { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf4096() { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf8192() { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf4096() const { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf8192() const { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf4096() - { - set(types::sf4096); - return c.get(); - } - uint16_t& set_sf8192() - { - set(types::sf8192); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf2048(); + uint16_t& set_sf4096(); + uint16_t& set_sf8192(); private: types type_; @@ -1881,7 +1785,7 @@ struct sl_disc_cfg_relay_ue_r13_s { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_max_r13_e_; @@ -1889,7 +1793,7 @@ struct sl_disc_cfg_relay_ue_r13_s { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_min_r13_e_; @@ -1916,7 +1820,7 @@ struct sl_disc_cfg_remote_ue_r13_s { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_max_r13_e_; @@ -1941,7 +1845,7 @@ using sl_sync_cfg_list_r12_l = dyn_array; struct uac_ac1_select_assist_info_r15_opts { enum options { a, b, c, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated uac_ac1_select_assist_info_r15_e; @@ -2000,7 +1904,7 @@ struct sib_type11_s { struct warning_msg_segment_type_opts { enum options { not_last_segment, last_segment, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated warning_msg_segment_type_e_; @@ -2028,7 +1932,7 @@ struct sib_type12_r9_s { struct warning_msg_segment_type_r9_opts { enum options { not_last_segment, last_segment, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated warning_msg_segment_type_r9_e_; @@ -2078,7 +1982,7 @@ struct sib_type14_r11_s { struct types_opts { enum options { eab_common_r11, eab_per_plmn_list_r11, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2095,34 +1999,26 @@ struct sib_type14_r11_s { // getters eab_cfg_r11_s& eab_common_r11() { - assert_choice_type("eab-Common-r11", type_.to_string(), "eab-Param-r11"); + assert_choice_type(types::eab_common_r11, type_, "eab-Param-r11"); return c.get(); } eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11() { - assert_choice_type("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11"); + assert_choice_type(types::eab_per_plmn_list_r11, type_, "eab-Param-r11"); return c.get(); } const eab_cfg_r11_s& eab_common_r11() const { - assert_choice_type("eab-Common-r11", type_.to_string(), "eab-Param-r11"); + assert_choice_type(types::eab_common_r11, type_, "eab-Param-r11"); return c.get(); } const eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11() const { - assert_choice_type("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11"); - return c.get(); - } - eab_cfg_r11_s& set_eab_common_r11() - { - set(types::eab_common_r11); - return c.get(); - } - eab_per_plmn_list_r11_l_& set_eab_per_plmn_list_r11() - { - set(types::eab_per_plmn_list_r11); + assert_choice_type(types::eab_per_plmn_list_r11, type_, "eab-Param-r11"); return c.get(); } + eab_cfg_r11_s& set_eab_common_r11(); + eab_per_plmn_list_r11_l_& set_eab_per_plmn_list_r11(); private: types type_; @@ -2134,7 +2030,7 @@ struct sib_type14_r11_s { enum options { thresh0, thresh1, thresh2, thresh3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eab_per_rsrp_r15_e_; @@ -2306,7 +2202,7 @@ struct sib_type20_r13_s { enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sc_mcch_repeat_period_r13_e_; @@ -2332,7 +2228,7 @@ struct sib_type20_r13_s { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated sc_mcch_mod_period_r13_e_; @@ -2341,7 +2237,7 @@ struct sib_type20_r13_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_sc_mcch_r14_e_; @@ -2350,23 +2246,23 @@ struct sib_type20_r13_s { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated fdd_r14_e_; struct tdd_r14_opts { enum options { v1, v2, v4, v5, v8, v10, v20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r14_e_; struct types_opts { enum options { fdd_r14, tdd_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2383,34 +2279,26 @@ struct sib_type20_r13_s { // getters fdd_r14_e_& fdd_r14() { - assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14"); + assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } tdd_r14_e_& tdd_r14() { - assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14"); + assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } const fdd_r14_e_& fdd_r14() const { - assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14"); + assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } const tdd_r14_e_& tdd_r14() const { - assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14"); - return c.get(); - } - fdd_r14_e_& set_fdd_r14() - { - set(types::fdd_r14); - return c.get(); - } - tdd_r14_e_& set_tdd_r14() - { - set(types::tdd_r14); + assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } + fdd_r14_e_& set_fdd_r14(); + tdd_r14_e_& set_tdd_r14(); private: types type_; @@ -2421,14 +2309,14 @@ struct sib_type20_r13_s { struct mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts { enum options { off, ce_mode_a, ce_mode_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_; struct sc_mcch_repeat_period_br_r14_opts { enum options { rf32, rf128, rf512, rf1024, rf2048, rf4096, rf8192, rf16384, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sc_mcch_repeat_period_br_r14_e_; @@ -2453,7 +2341,7 @@ struct sib_type20_r13_s { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated sc_mcch_mod_period_br_r14_e_; @@ -2472,7 +2360,7 @@ struct sib_type20_r13_s { enum options { r16, r32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_; @@ -2480,7 +2368,7 @@ struct sib_type20_r13_s { enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_; @@ -2553,7 +2441,7 @@ struct sib_type25_r15_s { struct types_opts { enum options { plmn_common_r15, individual_plmn_list_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2570,34 +2458,26 @@ struct sib_type25_r15_s { // getters uac_ac1_select_assist_info_r15_e& plmn_common_r15() { - assert_choice_type("plmnCommon-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15"); + assert_choice_type(types::plmn_common_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } individual_plmn_list_r15_l_& individual_plmn_list_r15() { - assert_choice_type("individualPLMNList-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15"); + assert_choice_type(types::individual_plmn_list_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } const uac_ac1_select_assist_info_r15_e& plmn_common_r15() const { - assert_choice_type("plmnCommon-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15"); + assert_choice_type(types::plmn_common_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } const individual_plmn_list_r15_l_& individual_plmn_list_r15() const { - assert_choice_type("individualPLMNList-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15"); - return c.get(); - } - uac_ac1_select_assist_info_r15_e& set_plmn_common_r15() - { - set(types::plmn_common_r15); - return c.get(); - } - individual_plmn_list_r15_l_& set_individual_plmn_list_r15() - { - set(types::individual_plmn_list_r15); + assert_choice_type(types::individual_plmn_list_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } + uac_ac1_select_assist_info_r15_e& set_plmn_common_r15(); + individual_plmn_list_r15_l_& set_individual_plmn_list_r15(); private: types type_; @@ -2676,7 +2556,7 @@ struct sib_type3_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_e_; @@ -2686,7 +2566,7 @@ struct sib_type3_s { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_medium_e_; @@ -2694,7 +2574,7 @@ struct sib_type3_s { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_high_e_; @@ -2987,7 +2867,7 @@ struct pos_sys_info_r15_ies_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3004,409 +2884,301 @@ struct pos_sys_info_r15_ies_s { // getters sib_pos_r15_s& pos_sib1_minus1_r15() { - assert_choice_type("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus2_r15() { - assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus3_r15() { - assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus4_r15() { - assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus5_r15() { - assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus6_r15() { - assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus7_r15() { - assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus1_r15() { - assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus2_r15() { - assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus3_r15() { - assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus4_r15() { - assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus5_r15() { - assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus6_r15() { - assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus7_r15() { - assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus8_r15() { - assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus8_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus9_r15() { - assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus9_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus10_r15() { - assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus10_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus11_r15() { - assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus11_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus12_r15() { - assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus12_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus13_r15() { - assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus13_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus14_r15() { - assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus14_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus15_r15() { - assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus15_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus16_r15() { - assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus16_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus17_r15() { - assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus17_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus18_r15() { - assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus18_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus19_r15() { - assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus19_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib3_minus1_r15() { - assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib3_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus1_r15() const { - assert_choice_type("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus2_r15() const { - assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus3_r15() const { - assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus4_r15() const { - assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus5_r15() const { - assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus6_r15() const { - assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus7_r15() const { - assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib1_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus1_r15() const { - assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus2_r15() const { - assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus3_r15() const { - assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus4_r15() const { - assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus5_r15() const { - assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus6_r15() const { - assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus7_r15() const { - assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus8_r15() const { - assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus8_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus9_r15() const { - assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus9_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus10_r15() const { - assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus10_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus11_r15() const { - assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus11_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus12_r15() const { - assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus12_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus13_r15() const { - assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus13_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus14_r15() const { - assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus14_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus15_r15() const { - assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus15_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus16_r15() const { - assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus16_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus17_r15() const { - assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus17_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus18_r15() const { - assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus18_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus19_r15() const { - assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); + assert_choice_type(types::pos_sib2_minus19_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib3_minus1_r15() const { - assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item"); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus1_r15() - { - set(types::pos_sib1_minus1_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus2_r15() - { - set(types::pos_sib1_minus2_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus3_r15() - { - set(types::pos_sib1_minus3_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus4_r15() - { - set(types::pos_sib1_minus4_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus5_r15() - { - set(types::pos_sib1_minus5_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus6_r15() - { - set(types::pos_sib1_minus6_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib1_minus7_r15() - { - set(types::pos_sib1_minus7_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus1_r15() - { - set(types::pos_sib2_minus1_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus2_r15() - { - set(types::pos_sib2_minus2_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus3_r15() - { - set(types::pos_sib2_minus3_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus4_r15() - { - set(types::pos_sib2_minus4_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus5_r15() - { - set(types::pos_sib2_minus5_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus6_r15() - { - set(types::pos_sib2_minus6_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus7_r15() - { - set(types::pos_sib2_minus7_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus8_r15() - { - set(types::pos_sib2_minus8_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus9_r15() - { - set(types::pos_sib2_minus9_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus10_r15() - { - set(types::pos_sib2_minus10_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus11_r15() - { - set(types::pos_sib2_minus11_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus12_r15() - { - set(types::pos_sib2_minus12_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus13_r15() - { - set(types::pos_sib2_minus13_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus14_r15() - { - set(types::pos_sib2_minus14_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus15_r15() - { - set(types::pos_sib2_minus15_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus16_r15() - { - set(types::pos_sib2_minus16_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus17_r15() - { - set(types::pos_sib2_minus17_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus18_r15() - { - set(types::pos_sib2_minus18_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib2_minus19_r15() - { - set(types::pos_sib2_minus19_r15); - return c.get(); - } - sib_pos_r15_s& set_pos_sib3_minus1_r15() - { - set(types::pos_sib3_minus1_r15); + assert_choice_type(types::pos_sib3_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } + sib_pos_r15_s& set_pos_sib1_minus1_r15(); + sib_pos_r15_s& set_pos_sib1_minus2_r15(); + sib_pos_r15_s& set_pos_sib1_minus3_r15(); + sib_pos_r15_s& set_pos_sib1_minus4_r15(); + sib_pos_r15_s& set_pos_sib1_minus5_r15(); + sib_pos_r15_s& set_pos_sib1_minus6_r15(); + sib_pos_r15_s& set_pos_sib1_minus7_r15(); + sib_pos_r15_s& set_pos_sib2_minus1_r15(); + sib_pos_r15_s& set_pos_sib2_minus2_r15(); + sib_pos_r15_s& set_pos_sib2_minus3_r15(); + sib_pos_r15_s& set_pos_sib2_minus4_r15(); + sib_pos_r15_s& set_pos_sib2_minus5_r15(); + sib_pos_r15_s& set_pos_sib2_minus6_r15(); + sib_pos_r15_s& set_pos_sib2_minus7_r15(); + sib_pos_r15_s& set_pos_sib2_minus8_r15(); + sib_pos_r15_s& set_pos_sib2_minus9_r15(); + sib_pos_r15_s& set_pos_sib2_minus10_r15(); + sib_pos_r15_s& set_pos_sib2_minus11_r15(); + sib_pos_r15_s& set_pos_sib2_minus12_r15(); + sib_pos_r15_s& set_pos_sib2_minus13_r15(); + sib_pos_r15_s& set_pos_sib2_minus14_r15(); + sib_pos_r15_s& set_pos_sib2_minus15_r15(); + sib_pos_r15_s& set_pos_sib2_minus16_r15(); + sib_pos_r15_s& set_pos_sib2_minus17_r15(); + sib_pos_r15_s& set_pos_sib2_minus18_r15(); + sib_pos_r15_s& set_pos_sib2_minus19_r15(); + sib_pos_r15_s& set_pos_sib3_minus1_r15(); private: types type_; @@ -3459,7 +3231,7 @@ struct sib_info_item_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3477,349 +3249,257 @@ struct sib_info_item_c { // getters sib_type2_s& sib2() { - assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type3_s& sib3() { - assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type4_s& sib4() { - assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type5_s& sib5() { - assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type6_s& sib6() { - assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type7_s& sib7() { - assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type8_s& sib8() { - assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type9_s& sib9() { - assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type10_s& sib10() { - assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type11_s& sib11() { - assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type12_r9_s& sib12_v920() { - assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type13_r9_s& sib13_v920() { - assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type14_r11_s& sib14_v1130() { - assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type15_r11_s& sib15_v1130() { - assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type16_r11_s& sib16_v1130() { - assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type17_r12_s& sib17_v1250() { - assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type18_r12_s& sib18_v1250() { - assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type19_r12_s& sib19_v1250() { - assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type20_r13_s& sib20_v1310() { - assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type21_r14_s& sib21_v1430() { - assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type24_r15_s& sib24_v1530() { - assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type25_r15_s& sib25_v1530() { - assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type26_r15_s& sib26_v1530() { - assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type2_s& sib2() const { - assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type3_s& sib3() const { - assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type4_s& sib4() const { - assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type5_s& sib5() const { - assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type6_s& sib6() const { - assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type7_s& sib7() const { - assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type8_s& sib8() const { - assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type9_s& sib9() const { - assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type10_s& sib10() const { - assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type11_s& sib11() const { - assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type12_r9_s& sib12_v920() const { - assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type13_r9_s& sib13_v920() const { - assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type14_r11_s& sib14_v1130() const { - assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type15_r11_s& sib15_v1130() const { - assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type16_r11_s& sib16_v1130() const { - assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type17_r12_s& sib17_v1250() const { - assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type18_r12_s& sib18_v1250() const { - assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type19_r12_s& sib19_v1250() const { - assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type20_r13_s& sib20_v1310() const { - assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type21_r14_s& sib21_v1430() const { - assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type24_r15_s& sib24_v1530() const { - assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type25_r15_s& sib25_v1530() const { - assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type26_r15_s& sib26_v1530() const { - assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item"); - return c.get(); - } - sib_type2_s& set_sib2() - { - set(types::sib2); - return c.get(); - } - sib_type3_s& set_sib3() - { - set(types::sib3); - return c.get(); - } - sib_type4_s& set_sib4() - { - set(types::sib4); - return c.get(); - } - sib_type5_s& set_sib5() - { - set(types::sib5); - return c.get(); - } - sib_type6_s& set_sib6() - { - set(types::sib6); - return c.get(); - } - sib_type7_s& set_sib7() - { - set(types::sib7); - return c.get(); - } - sib_type8_s& set_sib8() - { - set(types::sib8); - return c.get(); - } - sib_type9_s& set_sib9() - { - set(types::sib9); - return c.get(); - } - sib_type10_s& set_sib10() - { - set(types::sib10); - return c.get(); - } - sib_type11_s& set_sib11() - { - set(types::sib11); - return c.get(); - } - sib_type12_r9_s& set_sib12_v920() - { - set(types::sib12_v920); - return c.get(); - } - sib_type13_r9_s& set_sib13_v920() - { - set(types::sib13_v920); - return c.get(); - } - sib_type14_r11_s& set_sib14_v1130() - { - set(types::sib14_v1130); - return c.get(); - } - sib_type15_r11_s& set_sib15_v1130() - { - set(types::sib15_v1130); - return c.get(); - } - sib_type16_r11_s& set_sib16_v1130() - { - set(types::sib16_v1130); - return c.get(); - } - sib_type17_r12_s& set_sib17_v1250() - { - set(types::sib17_v1250); - return c.get(); - } - sib_type18_r12_s& set_sib18_v1250() - { - set(types::sib18_v1250); - return c.get(); - } - sib_type19_r12_s& set_sib19_v1250() - { - set(types::sib19_v1250); - return c.get(); - } - sib_type20_r13_s& set_sib20_v1310() - { - set(types::sib20_v1310); - return c.get(); - } - sib_type21_r14_s& set_sib21_v1430() - { - set(types::sib21_v1430); - return c.get(); - } - sib_type24_r15_s& set_sib24_v1530() - { - set(types::sib24_v1530); - return c.get(); - } - sib_type25_r15_s& set_sib25_v1530() - { - set(types::sib25_v1530); - return c.get(); - } - sib_type26_r15_s& set_sib26_v1530() - { - set(types::sib26_v1530); + assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } + sib_type2_s& set_sib2(); + sib_type3_s& set_sib3(); + sib_type4_s& set_sib4(); + sib_type5_s& set_sib5(); + sib_type6_s& set_sib6(); + sib_type7_s& set_sib7(); + sib_type8_s& set_sib8(); + sib_type9_s& set_sib9(); + sib_type10_s& set_sib10(); + sib_type11_s& set_sib11(); + sib_type12_r9_s& set_sib12_v920(); + sib_type13_r9_s& set_sib13_v920(); + sib_type14_r11_s& set_sib14_v1130(); + sib_type15_r11_s& set_sib15_v1130(); + sib_type16_r11_s& set_sib16_v1130(); + sib_type17_r12_s& set_sib17_v1250(); + sib_type18_r12_s& set_sib18_v1250(); + sib_type19_r12_s& set_sib19_v1250(); + sib_type20_r13_s& set_sib20_v1310(); + sib_type21_r14_s& set_sib21_v1430(); + sib_type24_r15_s& set_sib24_v1530(); + sib_type25_r15_s& set_sib25_v1530(); + sib_type26_r15_s& set_sib26_v1530(); private: types type_; @@ -3874,7 +3554,7 @@ struct sys_info_s { struct types_opts { enum options { pos_sys_info_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3888,20 +3568,16 @@ struct sys_info_s { // getters pos_sys_info_r15_ies_s& pos_sys_info_r15() { - assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15"); + assert_choice_type(types::pos_sys_info_r15, type_, "criticalExtensionsFuture-r15"); return c; } const pos_sys_info_r15_ies_s& pos_sys_info_r15() const { - assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15"); - return c; - } - pos_sys_info_r15_ies_s& set_pos_sys_info_r15() - { - set(types::pos_sys_info_r15); + assert_choice_type(types::pos_sys_info_r15, type_, "criticalExtensionsFuture-r15"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + pos_sys_info_r15_ies_s& set_pos_sys_info_r15(); + void set_crit_exts_future(); private: types type_; @@ -3910,7 +3586,7 @@ struct sys_info_s { struct types_opts { enum options { sys_info_r8, crit_exts_future_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3927,34 +3603,26 @@ struct sys_info_s { // getters sys_info_r8_ies_s& sys_info_r8() { - assert_choice_type("systemInformation-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::sys_info_r8, type_, "criticalExtensions"); return c.get(); } crit_exts_future_r15_c_& crit_exts_future_r15() { - assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions"); return c.get(); } const sys_info_r8_ies_s& sys_info_r8() const { - assert_choice_type("systemInformation-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::sys_info_r8, type_, "criticalExtensions"); return c.get(); } const crit_exts_future_r15_c_& crit_exts_future_r15() const { - assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions"); - return c.get(); - } - sys_info_r8_ies_s& set_sys_info_r8() - { - set(types::sys_info_r8); - return c.get(); - } - crit_exts_future_r15_c_& set_crit_exts_future_r15() - { - set(types::crit_exts_future_r15); + assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions"); return c.get(); } + sys_info_r8_ies_s& set_sys_info_r8(); + crit_exts_future_r15_c_& set_crit_exts_future_r15(); private: types type_; @@ -3979,7 +3647,7 @@ struct bcch_dl_sch_msg_type_c { enum options { sys_info, sib_type1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3997,34 +3665,26 @@ struct bcch_dl_sch_msg_type_c { // getters sys_info_s& sys_info() { - assert_choice_type("systemInformation", type_.to_string(), "c1"); + assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } sib_type1_s& sib_type1() { - assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1"); + assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } const sys_info_s& sys_info() const { - assert_choice_type("systemInformation", type_.to_string(), "c1"); + assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } const sib_type1_s& sib_type1() const { - assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1"); - return c.get(); - } - sys_info_s& set_sys_info() - { - set(types::sys_info); - return c.get(); - } - sib_type1_s& set_sib_type1() - { - set(types::sib_type1); + assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } + sys_info_s& set_sys_info(); + sib_type1_s& set_sib_type1(); private: types type_; @@ -4036,7 +3696,7 @@ struct bcch_dl_sch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4051,20 +3711,16 @@ struct bcch_dl_sch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -4094,7 +3750,7 @@ struct bcch_dl_sch_msg_type_br_r13_c { enum options { sys_info_br_r13, sib_type1_br_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4112,34 +3768,26 @@ struct bcch_dl_sch_msg_type_br_r13_c { // getters sys_info_br_r13_s& sys_info_br_r13() { - assert_choice_type("systemInformation-BR-r13", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_br_r13, type_, "c1"); return c.get(); } sib_type1_br_r13_s& sib_type1_br_r13() { - assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1"); + assert_choice_type(types::sib_type1_br_r13, type_, "c1"); return c.get(); } const sys_info_br_r13_s& sys_info_br_r13() const { - assert_choice_type("systemInformation-BR-r13", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_br_r13, type_, "c1"); return c.get(); } const sib_type1_br_r13_s& sib_type1_br_r13() const { - assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1"); - return c.get(); - } - sys_info_br_r13_s& set_sys_info_br_r13() - { - set(types::sys_info_br_r13); - return c.get(); - } - sib_type1_br_r13_s& set_sib_type1_br_r13() - { - set(types::sib_type1_br_r13); + assert_choice_type(types::sib_type1_br_r13, type_, "c1"); return c.get(); } + sys_info_br_r13_s& set_sys_info_br_r13(); + sib_type1_br_r13_s& set_sib_type1_br_r13(); private: types type_; @@ -4151,7 +3799,7 @@ struct bcch_dl_sch_msg_type_br_r13_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4166,20 +3814,16 @@ struct bcch_dl_sch_msg_type_br_r13_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-BR-r13"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-BR-r13"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -4210,7 +3854,7 @@ struct sib_type_mbms_r14_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_mbms_r14_e; @@ -4224,7 +3868,7 @@ struct sched_info_mbms_r14_s { enum options { rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_periodicity_r14_e_; @@ -4245,7 +3889,7 @@ struct non_mbsfn_sf_cfg_r14_s { enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated radio_frame_alloc_period_r14_e_; @@ -4278,7 +3922,7 @@ struct sib_type1_mbms_r14_s { enum options { ms1, ms2, ms5, ms10, ms15, ms20, ms40, ms80, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_win_len_r14_e_; @@ -4419,7 +4063,7 @@ struct sib_type_v12j0_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_v12j0_e; diff --git a/lib/include/srsran/asn1/rrc/common.h b/lib/include/srsran/asn1/rrc/common.h index d6c76c993..c8dd034e7 100644 --- a/lib/include/srsran/asn1/rrc/common.h +++ b/lib/include/srsran/asn1/rrc/common.h @@ -251,7 +251,7 @@ struct plmn_id_info_s { struct cell_reserved_for_oper_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_e_; @@ -270,9 +270,9 @@ struct alpha_r12_opts { enum options { al0, al04, al05, al06, al07, al08, al09, al1, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated alpha_r12_e; @@ -319,7 +319,7 @@ struct bandclass_cdma2000_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated bandclass_cdma2000_e; @@ -327,7 +327,7 @@ typedef enumerated bandclass_cdma2000_e; struct setup_opts { enum options { release, setup, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated setup_e; @@ -354,7 +354,7 @@ struct filt_coef_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated filt_coef_e; @@ -365,7 +365,7 @@ struct mbsfn_sf_cfg_s { enum options { n1, n2, n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated radioframe_alloc_period_e_; @@ -374,7 +374,7 @@ struct mbsfn_sf_cfg_s { enum options { one_frame, four_frames, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -394,34 +394,26 @@ struct mbsfn_sf_cfg_s { // getters fixed_bitstring<6>& one_frame() { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation"); + assert_choice_type(types::one_frame, type_, "subframeAllocation"); return c.get >(); } fixed_bitstring<24>& four_frames() { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation"); + assert_choice_type(types::four_frames, type_, "subframeAllocation"); return c.get >(); } const fixed_bitstring<6>& one_frame() const { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation"); + assert_choice_type(types::one_frame, type_, "subframeAllocation"); return c.get >(); } const fixed_bitstring<24>& four_frames() const { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation"); - return c.get >(); - } - fixed_bitstring<6>& set_one_frame() - { - set(types::one_frame); - return c.get >(); - } - fixed_bitstring<24>& set_four_frames() - { - set(types::four_frames); + assert_choice_type(types::four_frames, type_, "subframeAllocation"); return c.get >(); } + fixed_bitstring<6>& set_one_frame(); + fixed_bitstring<24>& set_four_frames(); private: types type_; @@ -450,7 +442,7 @@ struct mbsfn_sf_cfg_v1430_s { enum options { one_frame_v1430, four_frames_v1430, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -470,34 +462,26 @@ struct mbsfn_sf_cfg_v1430_s { // getters fixed_bitstring<2>& one_frame_v1430() { - assert_choice_type("oneFrame-v1430", type_.to_string(), "subframeAllocation-v1430"); + assert_choice_type(types::one_frame_v1430, type_, "subframeAllocation-v1430"); return c.get >(); } fixed_bitstring<8>& four_frames_v1430() { - assert_choice_type("fourFrames-v1430", type_.to_string(), "subframeAllocation-v1430"); + assert_choice_type(types::four_frames_v1430, type_, "subframeAllocation-v1430"); return c.get >(); } const fixed_bitstring<2>& one_frame_v1430() const { - assert_choice_type("oneFrame-v1430", type_.to_string(), "subframeAllocation-v1430"); + assert_choice_type(types::one_frame_v1430, type_, "subframeAllocation-v1430"); return c.get >(); } const fixed_bitstring<8>& four_frames_v1430() const { - assert_choice_type("fourFrames-v1430", type_.to_string(), "subframeAllocation-v1430"); - return c.get >(); - } - fixed_bitstring<2>& set_one_frame_v1430() - { - set(types::one_frame_v1430); - return c.get >(); - } - fixed_bitstring<8>& set_four_frames_v1430() - { - set(types::four_frames_v1430); + assert_choice_type(types::four_frames_v1430, type_, "subframeAllocation-v1430"); return c.get >(); } + fixed_bitstring<2>& set_one_frame_v1430(); + fixed_bitstring<8>& set_four_frames_v1430(); private: types type_; @@ -530,7 +514,7 @@ struct meas_sf_pattern_r10_c { enum options { sf_cfg1_minus5_r10, sf_cfg0_r10, sf_cfg6_r10, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -550,49 +534,37 @@ struct meas_sf_pattern_r10_c { // getters fixed_bitstring<20>& sf_cfg1_minus5_r10() { - assert_choice_type("subframeConfig1-5-r10", type_.to_string(), "subframePatternTDD-r10"); + assert_choice_type(types::sf_cfg1_minus5_r10, type_, "subframePatternTDD-r10"); return c.get >(); } fixed_bitstring<70>& sf_cfg0_r10() { - assert_choice_type("subframeConfig0-r10", type_.to_string(), "subframePatternTDD-r10"); + assert_choice_type(types::sf_cfg0_r10, type_, "subframePatternTDD-r10"); return c.get >(); } fixed_bitstring<60>& sf_cfg6_r10() { - assert_choice_type("subframeConfig6-r10", type_.to_string(), "subframePatternTDD-r10"); + assert_choice_type(types::sf_cfg6_r10, type_, "subframePatternTDD-r10"); return c.get >(); } const fixed_bitstring<20>& sf_cfg1_minus5_r10() const { - assert_choice_type("subframeConfig1-5-r10", type_.to_string(), "subframePatternTDD-r10"); + assert_choice_type(types::sf_cfg1_minus5_r10, type_, "subframePatternTDD-r10"); return c.get >(); } const fixed_bitstring<70>& sf_cfg0_r10() const { - assert_choice_type("subframeConfig0-r10", type_.to_string(), "subframePatternTDD-r10"); + assert_choice_type(types::sf_cfg0_r10, type_, "subframePatternTDD-r10"); return c.get >(); } const fixed_bitstring<60>& sf_cfg6_r10() const { - assert_choice_type("subframeConfig6-r10", type_.to_string(), "subframePatternTDD-r10"); - return c.get >(); - } - fixed_bitstring<20>& set_sf_cfg1_minus5_r10() - { - set(types::sf_cfg1_minus5_r10); - return c.get >(); - } - fixed_bitstring<70>& set_sf_cfg0_r10() - { - set(types::sf_cfg0_r10); - return c.get >(); - } - fixed_bitstring<60>& set_sf_cfg6_r10() - { - set(types::sf_cfg6_r10); + assert_choice_type(types::sf_cfg6_r10, type_, "subframePatternTDD-r10"); return c.get >(); } + fixed_bitstring<20>& set_sf_cfg1_minus5_r10(); + fixed_bitstring<70>& set_sf_cfg0_r10(); + fixed_bitstring<60>& set_sf_cfg6_r10(); private: types type_; @@ -603,7 +575,7 @@ struct meas_sf_pattern_r10_c { struct types_opts { enum options { sf_pattern_fdd_r10, sf_pattern_tdd_r10, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -622,34 +594,26 @@ struct meas_sf_pattern_r10_c { // getters fixed_bitstring<40>& sf_pattern_fdd_r10() { - assert_choice_type("subframePatternFDD-r10", type_.to_string(), "MeasSubframePattern-r10"); + assert_choice_type(types::sf_pattern_fdd_r10, type_, "MeasSubframePattern-r10"); return c.get >(); } sf_pattern_tdd_r10_c_& sf_pattern_tdd_r10() { - assert_choice_type("subframePatternTDD-r10", type_.to_string(), "MeasSubframePattern-r10"); + assert_choice_type(types::sf_pattern_tdd_r10, type_, "MeasSubframePattern-r10"); return c.get(); } const fixed_bitstring<40>& sf_pattern_fdd_r10() const { - assert_choice_type("subframePatternFDD-r10", type_.to_string(), "MeasSubframePattern-r10"); + assert_choice_type(types::sf_pattern_fdd_r10, type_, "MeasSubframePattern-r10"); return c.get >(); } const sf_pattern_tdd_r10_c_& sf_pattern_tdd_r10() const { - assert_choice_type("subframePatternTDD-r10", type_.to_string(), "MeasSubframePattern-r10"); - return c.get(); - } - fixed_bitstring<40>& set_sf_pattern_fdd_r10() - { - set(types::sf_pattern_fdd_r10); - return c.get >(); - } - sf_pattern_tdd_r10_c_& set_sf_pattern_tdd_r10() - { - set(types::sf_pattern_tdd_r10); + assert_choice_type(types::sf_pattern_tdd_r10, type_, "MeasSubframePattern-r10"); return c.get(); } + fixed_bitstring<40>& set_sf_pattern_fdd_r10(); + sf_pattern_tdd_r10_c_& set_sf_pattern_tdd_r10(); private: types type_; @@ -662,7 +626,7 @@ struct c1_or_crit_ext_opts { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated c1_or_crit_ext_e; @@ -672,7 +636,7 @@ struct ciphering_algorithm_r12_opts { enum options { eea0, eea1, eea2, eea3_v1130, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ciphering_algorithm_r12_e; @@ -682,9 +646,9 @@ struct wlan_band_ind_r13_opts { enum options { band2dot4, band5, band60_v1430, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated wlan_band_ind_r13_e; diff --git a/lib/include/srsran/asn1/rrc/common_ext.h b/lib/include/srsran/asn1/rrc/common_ext.h index 9eca51eb8..fb44490e1 100644 --- a/lib/include/srsran/asn1/rrc/common_ext.h +++ b/lib/include/srsran/asn1/rrc/common_ext.h @@ -57,7 +57,7 @@ struct sl_tx_pwr_r14_c { enum options { minusinfinity_r14, tx_pwr_r14, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -72,20 +72,16 @@ struct sl_tx_pwr_r14_c { // getters int8_t& tx_pwr_r14() { - assert_choice_type("txPower-r14", type_.to_string(), "SL-TxPower-r14"); + assert_choice_type(types::tx_pwr_r14, type_, "SL-TxPower-r14"); return c; } const int8_t& tx_pwr_r14() const { - assert_choice_type("txPower-r14", type_.to_string(), "SL-TxPower-r14"); - return c; - } - void set_minusinfinity_r14() { set(types::minusinfinity_r14); } - int8_t& set_tx_pwr_r14() - { - set(types::tx_pwr_r14); + assert_choice_type(types::tx_pwr_r14, type_, "SL-TxPower-r14"); return c; } + void set_minusinfinity_r14(); + int8_t& set_tx_pwr_r14(); private: types type_; @@ -139,7 +135,7 @@ struct sl_pssch_tx_params_r14_s { enum options { n0, n1, both, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated allowed_retx_num_pssch_r14_e_; @@ -193,9 +189,9 @@ struct sl_restrict_res_reserv_period_r14_opts { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sl_restrict_res_reserv_period_r14_e; @@ -203,7 +199,7 @@ typedef enumerated sl_restrict_res_reser struct sl_type_tx_sync_r14_opts { enum options { gnss, enb, ue, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sl_type_tx_sync_r14_e; @@ -217,7 +213,7 @@ using sl_cbr_pppp_tx_cfg_list_v1530_l = dyn_array; struct sl_cp_len_r12_opts { enum options { normal, extended, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sl_cp_len_r12_e; @@ -229,7 +225,7 @@ struct sl_offset_ind_r12_c { struct types_opts { enum options { small_r12, large_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -246,34 +242,26 @@ struct sl_offset_ind_r12_c { // getters uint16_t& small_r12() { - assert_choice_type("small-r12", type_.to_string(), "SL-OffsetIndicator-r12"); + assert_choice_type(types::small_r12, type_, "SL-OffsetIndicator-r12"); return c.get(); } uint16_t& large_r12() { - assert_choice_type("large-r12", type_.to_string(), "SL-OffsetIndicator-r12"); + assert_choice_type(types::large_r12, type_, "SL-OffsetIndicator-r12"); return c.get(); } const uint16_t& small_r12() const { - assert_choice_type("small-r12", type_.to_string(), "SL-OffsetIndicator-r12"); + assert_choice_type(types::small_r12, type_, "SL-OffsetIndicator-r12"); return c.get(); } const uint16_t& large_r12() const { - assert_choice_type("large-r12", type_.to_string(), "SL-OffsetIndicator-r12"); - return c.get(); - } - uint16_t& set_small_r12() - { - set(types::small_r12); - return c.get(); - } - uint16_t& set_large_r12() - { - set(types::large_r12); + assert_choice_type(types::large_r12, type_, "SL-OffsetIndicator-r12"); return c.get(); } + uint16_t& set_small_r12(); + uint16_t& set_large_r12(); private: types type_; @@ -299,7 +287,7 @@ struct sl_pssch_tx_cfg_r14_s { enum options { kmph60, kmph80, kmph100, kmph120, kmph140, kmph160, kmph180, kmph200, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated thres_ue_speed_r14_e_; @@ -354,7 +342,7 @@ struct sf_bitmap_sl_r12_c { enum options { bs4_r12, bs8_r12, bs12_r12, bs16_r12, bs30_r12, bs40_r12, bs42_r12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -372,109 +360,81 @@ struct sf_bitmap_sl_r12_c { // getters fixed_bitstring<4>& bs4_r12() { - assert_choice_type("bs4-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs4_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<8>& bs8_r12() { - assert_choice_type("bs8-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs8_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<12>& bs12_r12() { - assert_choice_type("bs12-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs12_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<16>& bs16_r12() { - assert_choice_type("bs16-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs16_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<30>& bs30_r12() { - assert_choice_type("bs30-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs30_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<40>& bs40_r12() { - assert_choice_type("bs40-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs40_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } fixed_bitstring<42>& bs42_r12() { - assert_choice_type("bs42-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs42_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<4>& bs4_r12() const { - assert_choice_type("bs4-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs4_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<8>& bs8_r12() const { - assert_choice_type("bs8-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs8_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<12>& bs12_r12() const { - assert_choice_type("bs12-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs12_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<16>& bs16_r12() const { - assert_choice_type("bs16-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs16_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<30>& bs30_r12() const { - assert_choice_type("bs30-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs30_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<40>& bs40_r12() const { - assert_choice_type("bs40-r12", type_.to_string(), "SubframeBitmapSL-r12"); + assert_choice_type(types::bs40_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } const fixed_bitstring<42>& bs42_r12() const { - assert_choice_type("bs42-r12", type_.to_string(), "SubframeBitmapSL-r12"); - return c.get >(); - } - fixed_bitstring<4>& set_bs4_r12() - { - set(types::bs4_r12); - return c.get >(); - } - fixed_bitstring<8>& set_bs8_r12() - { - set(types::bs8_r12); - return c.get >(); - } - fixed_bitstring<12>& set_bs12_r12() - { - set(types::bs12_r12); - return c.get >(); - } - fixed_bitstring<16>& set_bs16_r12() - { - set(types::bs16_r12); - return c.get >(); - } - fixed_bitstring<30>& set_bs30_r12() - { - set(types::bs30_r12); - return c.get >(); - } - fixed_bitstring<40>& set_bs40_r12() - { - set(types::bs40_r12); - return c.get >(); - } - fixed_bitstring<42>& set_bs42_r12() - { - set(types::bs42_r12); + assert_choice_type(types::bs42_r12, type_, "SubframeBitmapSL-r12"); return c.get >(); } + fixed_bitstring<4>& set_bs4_r12(); + fixed_bitstring<8>& set_bs8_r12(); + fixed_bitstring<12>& set_bs12_r12(); + fixed_bitstring<16>& set_bs16_r12(); + fixed_bitstring<30>& set_bs30_r12(); + fixed_bitstring<40>& set_bs40_r12(); + fixed_bitstring<42>& set_bs42_r12(); private: types type_; @@ -489,7 +449,7 @@ struct sf_bitmap_sl_r14_c { enum options { bs10_r14, bs16_r14, bs20_r14, bs30_r14, bs40_r14, bs50_r14, bs60_r14, bs100_r14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -507,124 +467,92 @@ struct sf_bitmap_sl_r14_c { // getters fixed_bitstring<10>& bs10_r14() { - assert_choice_type("bs10-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs10_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<16>& bs16_r14() { - assert_choice_type("bs16-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs16_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<20>& bs20_r14() { - assert_choice_type("bs20-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs20_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<30>& bs30_r14() { - assert_choice_type("bs30-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs30_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<40>& bs40_r14() { - assert_choice_type("bs40-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs40_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<50>& bs50_r14() { - assert_choice_type("bs50-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs50_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<60>& bs60_r14() { - assert_choice_type("bs60-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs60_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } fixed_bitstring<100>& bs100_r14() { - assert_choice_type("bs100-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs100_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<10>& bs10_r14() const { - assert_choice_type("bs10-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs10_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<16>& bs16_r14() const { - assert_choice_type("bs16-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs16_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<20>& bs20_r14() const { - assert_choice_type("bs20-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs20_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<30>& bs30_r14() const { - assert_choice_type("bs30-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs30_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<40>& bs40_r14() const { - assert_choice_type("bs40-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs40_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<50>& bs50_r14() const { - assert_choice_type("bs50-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs50_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<60>& bs60_r14() const { - assert_choice_type("bs60-r14", type_.to_string(), "SubframeBitmapSL-r14"); + assert_choice_type(types::bs60_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } const fixed_bitstring<100>& bs100_r14() const { - assert_choice_type("bs100-r14", type_.to_string(), "SubframeBitmapSL-r14"); - return c.get >(); - } - fixed_bitstring<10>& set_bs10_r14() - { - set(types::bs10_r14); - return c.get >(); - } - fixed_bitstring<16>& set_bs16_r14() - { - set(types::bs16_r14); - return c.get >(); - } - fixed_bitstring<20>& set_bs20_r14() - { - set(types::bs20_r14); - return c.get >(); - } - fixed_bitstring<30>& set_bs30_r14() - { - set(types::bs30_r14); - return c.get >(); - } - fixed_bitstring<40>& set_bs40_r14() - { - set(types::bs40_r14); - return c.get >(); - } - fixed_bitstring<50>& set_bs50_r14() - { - set(types::bs50_r14); - return c.get >(); - } - fixed_bitstring<60>& set_bs60_r14() - { - set(types::bs60_r14); - return c.get >(); - } - fixed_bitstring<100>& set_bs100_r14() - { - set(types::bs100_r14); + assert_choice_type(types::bs100_r14, type_, "SubframeBitmapSL-r14"); return c.get >(); } + fixed_bitstring<10>& set_bs10_r14(); + fixed_bitstring<16>& set_bs16_r14(); + fixed_bitstring<20>& set_bs20_r14(); + fixed_bitstring<30>& set_bs30_r14(); + fixed_bitstring<40>& set_bs40_r14(); + fixed_bitstring<50>& set_bs50_r14(); + fixed_bitstring<60>& set_bs60_r14(); + fixed_bitstring<100>& set_bs100_r14(); private: types type_; @@ -676,7 +604,7 @@ struct sl_comm_res_pool_v2x_r14_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated size_subch_r14_e_; @@ -684,7 +612,7 @@ struct sl_comm_res_pool_v2x_r14_s { enum options { n1, n3, n5, n8, n10, n15, n20, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_subch_r14_e_; @@ -767,7 +695,7 @@ struct sl_sync_cfg_nfreq_r13_s { enum options { w1, w2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated disc_sync_win_r13_e_; @@ -832,9 +760,9 @@ struct sl_comm_tx_pool_sensing_cfg_r14_s { enum options { v0, v0dot2, v0dot4, v0dot6, v0dot8, spare3, spare2, spare1, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated prob_res_keep_r14_e_; struct p2x_sensing_cfg_r14_s_ { @@ -863,7 +791,7 @@ struct sl_comm_tx_pool_sensing_cfg_r14_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_reselect_after_r14_e_; @@ -891,7 +819,7 @@ struct sl_disc_res_pool_r12_s { enum options { rf32, rf64, rf128, rf256, rf512, rf1024, rf16_v1310, spare, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated disc_period_r12_e_; @@ -901,7 +829,7 @@ struct sl_disc_res_pool_r12_s { struct types_opts { enum options { rsrp_based_r12, random_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -915,20 +843,16 @@ struct sl_disc_res_pool_r12_s { // getters sl_pool_sel_cfg_r12_s& rsrp_based_r12() { - assert_choice_type("rsrpBased-r12", type_.to_string(), "poolSelection-r12"); + assert_choice_type(types::rsrp_based_r12, type_, "poolSelection-r12"); return c; } const sl_pool_sel_cfg_r12_s& rsrp_based_r12() const { - assert_choice_type("rsrpBased-r12", type_.to_string(), "poolSelection-r12"); + assert_choice_type(types::rsrp_based_r12, type_, "poolSelection-r12"); return c; } - sl_pool_sel_cfg_r12_s& set_rsrp_based_r12() - { - set(types::rsrp_based_r12); - return c; - } - void set_random_r12() { set(types::random_r12); } + sl_pool_sel_cfg_r12_s& set_rsrp_based_r12(); + void set_random_r12(); private: types type_; @@ -938,7 +862,7 @@ struct sl_disc_res_pool_r12_s { enum options { p25, p50, p75, p100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_probability_r12_e_; @@ -963,7 +887,7 @@ struct sl_disc_res_pool_r12_s { enum options { rf4, rf6, rf7, rf8, rf12, rf14, rf24, rf28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated setup_e_; @@ -979,20 +903,16 @@ struct sl_disc_res_pool_r12_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "discPeriod-v1310"); + assert_choice_type(types::setup, type_, "discPeriod-v1310"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "discPeriod-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discPeriod-v1310"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -1014,20 +934,16 @@ struct sl_disc_res_pool_r12_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "rxParamsAddNeighFreq-r13"); + assert_choice_type(types::setup, type_, "rxParamsAddNeighFreq-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "rxParamsAddNeighFreq-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "rxParamsAddNeighFreq-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1040,7 +956,7 @@ struct sl_disc_res_pool_r12_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_e_; @@ -1078,20 +994,16 @@ struct sl_disc_res_pool_r12_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-r13"); + assert_choice_type(types::setup, type_, "txParamsAddNeighFreq-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "txParamsAddNeighFreq-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1118,20 +1030,16 @@ struct sl_disc_res_pool_r12_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-v1370"); + assert_choice_type(types::setup, type_, "txParamsAddNeighFreq-v1370"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-v1370"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "txParamsAddNeighFreq-v1370"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1172,7 +1080,7 @@ struct sl_zone_cfg_r14_s { enum options { m5, m10, m20, m50, m100, m200, m500, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated zone_len_r14_e_; @@ -1180,7 +1088,7 @@ struct sl_zone_cfg_r14_s { enum options { m5, m10, m20, m50, m100, m200, m500, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated zone_width_r14_e_; @@ -1221,7 +1129,7 @@ struct pci_range_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated range_e_; @@ -1304,7 +1212,7 @@ struct allowed_meas_bw_opts { enum options { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated allowed_meas_bw_e; @@ -1336,7 +1244,7 @@ struct cell_sel_info_nfreq_r13_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_r13_e_; @@ -1390,7 +1298,7 @@ struct sl_disc_tx_res_inter_freq_r13_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1404,22 +1312,18 @@ struct sl_disc_tx_res_inter_freq_r13_c { // getters sl_disc_tx_pool_list_r12_l& disc_tx_pool_common_r13() { - assert_choice_type("discTxPoolCommon-r13", type_.to_string(), "SL-DiscTxResourcesInterFreq-r13"); + assert_choice_type(types::disc_tx_pool_common_r13, type_, "SL-DiscTxResourcesInterFreq-r13"); return c; } const sl_disc_tx_pool_list_r12_l& disc_tx_pool_common_r13() const { - assert_choice_type("discTxPoolCommon-r13", type_.to_string(), "SL-DiscTxResourcesInterFreq-r13"); + assert_choice_type(types::disc_tx_pool_common_r13, type_, "SL-DiscTxResourcesInterFreq-r13"); return c; } - void set_acquire_si_from_carrier_r13() { set(types::acquire_si_from_carrier_r13); } - sl_disc_tx_pool_list_r12_l& set_disc_tx_pool_common_r13() - { - set(types::disc_tx_pool_common_r13); - return c; - } - void set_request_ded_r13() { set(types::request_ded_r13); } - void set_no_tx_on_carrier_r13() { set(types::no_tx_on_carrier_r13); } + void set_acquire_si_from_carrier_r13(); + sl_disc_tx_pool_list_r12_l& set_disc_tx_pool_common_r13(); + void set_request_ded_r13(); + void set_no_tx_on_carrier_r13(); private: types type_; @@ -1437,7 +1341,7 @@ struct meas_idle_carrier_eutra_r15_s { struct report_quantities_opts { enum options { rsrp, rsrq, both, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated report_quantities_e_; struct quality_thres_r15_s_ { @@ -1486,7 +1390,7 @@ struct sl_hop_cfg_comm_r12_s { enum options { ns1, ns2, ns4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_subbands_r12_e_; @@ -1508,7 +1412,7 @@ struct sl_inter_freq_info_v2x_r14_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sl_bw_r14_e_; @@ -1516,7 +1420,7 @@ struct sl_inter_freq_info_v2x_r14_s { struct types_opts { enum options { add_spec_emission_r14, add_spec_emission_v1440, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1533,34 +1437,26 @@ struct sl_inter_freq_info_v2x_r14_s { // getters uint8_t& add_spec_emission_r14() { - assert_choice_type("additionalSpectrumEmission-r14", type_.to_string(), "additionalSpectrumEmissionV2X-r14"); + assert_choice_type(types::add_spec_emission_r14, type_, "additionalSpectrumEmissionV2X-r14"); return c.get(); } uint16_t& add_spec_emission_v1440() { - assert_choice_type("additionalSpectrumEmission-v1440", type_.to_string(), "additionalSpectrumEmissionV2X-r14"); + assert_choice_type(types::add_spec_emission_v1440, type_, "additionalSpectrumEmissionV2X-r14"); return c.get(); } const uint8_t& add_spec_emission_r14() const { - assert_choice_type("additionalSpectrumEmission-r14", type_.to_string(), "additionalSpectrumEmissionV2X-r14"); + assert_choice_type(types::add_spec_emission_r14, type_, "additionalSpectrumEmissionV2X-r14"); return c.get(); } const uint16_t& add_spec_emission_v1440() const { - assert_choice_type("additionalSpectrumEmission-v1440", type_.to_string(), "additionalSpectrumEmissionV2X-r14"); - return c.get(); - } - uint8_t& set_add_spec_emission_r14() - { - set(types::add_spec_emission_r14); - return c.get(); - } - uint16_t& set_add_spec_emission_v1440() - { - set(types::add_spec_emission_v1440); + assert_choice_type(types::add_spec_emission_v1440, type_, "additionalSpectrumEmissionV2X-r14"); return c.get(); } + uint8_t& set_add_spec_emission_r14(); + uint16_t& set_add_spec_emission_v1440(); private: types type_; @@ -1630,7 +1526,7 @@ struct sl_period_comm_r12_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sl_period_comm_r12_e; @@ -1661,7 +1557,7 @@ struct sl_sync_cfg_r12_s { enum options { w1, w2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated disc_sync_win_r12_e_; @@ -1759,7 +1655,7 @@ struct wlan_backhaul_rate_r12_opts { } value; typedef uint64_t number_type; - std::string to_string() const; + const char* to_string() const; uint64_t to_number() const; }; typedef enumerated wlan_backhaul_rate_r12_e; @@ -2025,7 +1921,7 @@ struct sl_gap_pattern_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated gap_period_r13_e_; diff --git a/lib/include/srsran/asn1/rrc/dl_ccch_msg.h b/lib/include/srsran/asn1/rrc/dl_ccch_msg.h index a5292fba9..7ac072608 100644 --- a/lib/include/srsran/asn1/rrc/dl_ccch_msg.h +++ b/lib/include/srsran/asn1/rrc/dl_ccch_msg.h @@ -156,14 +156,14 @@ struct rrc_conn_reject_v1130_ies_s { struct depriorit_type_r11_opts { enum options { freq, e_utra, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated depriorit_type_r11_e_; struct depriorit_timer_r11_opts { enum options { min5, min10, min15, min30, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated depriorit_timer_r11_e_; @@ -248,7 +248,7 @@ struct idle_mode_mob_ctrl_info_s { enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t320_e_; @@ -371,7 +371,7 @@ struct redirected_carrier_info_r15_ies_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -388,94 +388,70 @@ struct redirected_carrier_info_r15_ies_c { // getters uint32_t& eutra_r15() { - assert_choice_type("eutra-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::eutra_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } carrier_freqs_geran_s& geran_r15() { - assert_choice_type("geran-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::geran_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } uint16_t& utra_fdd_r15() { - assert_choice_type("utra-FDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::utra_fdd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } carrier_freq_cdma2000_s& cdma2000_hrpd_r15() { - assert_choice_type("cdma2000-HRPD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::cdma2000_hrpd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } carrier_freq_cdma2000_s& cdma2000_minus1x_rtt_r15() { - assert_choice_type("cdma2000-1xRTT-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::cdma2000_minus1x_rtt_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } carrier_freq_list_utra_tdd_r10_l& utra_tdd_r15() { - assert_choice_type("utra-TDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::utra_tdd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const uint32_t& eutra_r15() const { - assert_choice_type("eutra-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::eutra_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const carrier_freqs_geran_s& geran_r15() const { - assert_choice_type("geran-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::geran_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const uint16_t& utra_fdd_r15() const { - assert_choice_type("utra-FDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::utra_fdd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const carrier_freq_cdma2000_s& cdma2000_hrpd_r15() const { - assert_choice_type("cdma2000-HRPD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::cdma2000_hrpd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const carrier_freq_cdma2000_s& cdma2000_minus1x_rtt_r15() const { - assert_choice_type("cdma2000-1xRTT-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); + assert_choice_type(types::cdma2000_minus1x_rtt_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } const carrier_freq_list_utra_tdd_r10_l& utra_tdd_r15() const { - assert_choice_type("utra-TDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs"); - return c.get(); - } - uint32_t& set_eutra_r15() - { - set(types::eutra_r15); - return c.get(); - } - carrier_freqs_geran_s& set_geran_r15() - { - set(types::geran_r15); - return c.get(); - } - uint16_t& set_utra_fdd_r15() - { - set(types::utra_fdd_r15); - return c.get(); - } - carrier_freq_cdma2000_s& set_cdma2000_hrpd_r15() - { - set(types::cdma2000_hrpd_r15); - return c.get(); - } - carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt_r15() - { - set(types::cdma2000_minus1x_rtt_r15); - return c.get(); - } - carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r15() - { - set(types::utra_tdd_r15); + assert_choice_type(types::utra_tdd_r15, type_, "RedirectedCarrierInfo-r15-IEs"); return c.get(); } + uint32_t& set_eutra_r15(); + carrier_freqs_geran_s& set_geran_r15(); + uint16_t& set_utra_fdd_r15(); + carrier_freq_cdma2000_s& set_cdma2000_hrpd_r15(); + carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt_r15(); + carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r15(); private: types type_; @@ -560,7 +536,7 @@ struct rrc_conn_reest_s { struct types_opts { enum options { rrc_conn_reest_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -574,26 +550,22 @@ struct rrc_conn_reest_s { // getters rrc_conn_reest_r8_ies_s& rrc_conn_reest_r8() { - assert_choice_type("rrcConnectionReestablishment-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_r8, type_, "c1"); return c; } const rrc_conn_reest_r8_ies_s& rrc_conn_reest_r8() const { - assert_choice_type("rrcConnectionReestablishment-r8", type_.to_string(), "c1"); - return c; - } - rrc_conn_reest_r8_ies_s& set_rrc_conn_reest_r8() - { - set(types::rrc_conn_reest_r8); + assert_choice_type(types::rrc_conn_reest_r8, type_, "c1"); return c; } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_reest_r8_ies_s& set_rrc_conn_reest_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -611,20 +583,16 @@ struct rrc_conn_reest_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -647,7 +615,7 @@ struct rrc_conn_reest_reject_s { struct types_opts { enum options { rrc_conn_reest_reject_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -661,20 +629,16 @@ struct rrc_conn_reest_reject_s { // getters rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8() { - assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_reject_r8, type_, "criticalExtensions"); return c; } const rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8() const { - assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_reest_reject_r8_ies_s& set_rrc_conn_reest_reject_r8() - { - set(types::rrc_conn_reest_reject_r8); + assert_choice_type(types::rrc_conn_reest_reject_r8, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_reest_reject_r8_ies_s& set_rrc_conn_reest_reject_r8(); + void set_crit_exts_future(); private: types type_; @@ -697,7 +661,7 @@ struct rrc_conn_reject_s { struct types_opts { enum options { rrc_conn_reject_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -711,22 +675,18 @@ struct rrc_conn_reject_s { // getters rrc_conn_reject_r8_ies_s& rrc_conn_reject_r8() { - assert_choice_type("rrcConnectionReject-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject_r8, type_, "c1"); return c; } const rrc_conn_reject_r8_ies_s& rrc_conn_reject_r8() const { - assert_choice_type("rrcConnectionReject-r8", type_.to_string(), "c1"); - return c; - } - rrc_conn_reject_r8_ies_s& set_rrc_conn_reject_r8() - { - set(types::rrc_conn_reject_r8); + assert_choice_type(types::rrc_conn_reject_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_reject_r8_ies_s& set_rrc_conn_reject_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -744,20 +704,16 @@ struct rrc_conn_reject_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -780,7 +736,7 @@ struct rrc_conn_setup_s { struct types_opts { enum options { rrc_conn_setup_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -794,26 +750,22 @@ struct rrc_conn_setup_s { // getters rrc_conn_setup_r8_ies_s& rrc_conn_setup_r8() { - assert_choice_type("rrcConnectionSetup-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r8, type_, "c1"); return c; } const rrc_conn_setup_r8_ies_s& rrc_conn_setup_r8() const { - assert_choice_type("rrcConnectionSetup-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r8, type_, "c1"); return c; } - rrc_conn_setup_r8_ies_s& set_rrc_conn_setup_r8() - { - set(types::rrc_conn_setup_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_setup_r8_ies_s& set_rrc_conn_setup_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -831,20 +783,16 @@ struct rrc_conn_setup_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -867,7 +815,7 @@ struct rrc_early_data_complete_r15_s { struct types_opts { enum options { rrc_early_data_complete_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -881,20 +829,16 @@ struct rrc_early_data_complete_r15_s { // getters rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15() { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "criticalExtensions"); return c; } const rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15() const { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_early_data_complete_r15_ies_s& set_rrc_early_data_complete_r15() - { - set(types::rrc_early_data_complete_r15); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_early_data_complete_r15_ies_s& set_rrc_early_data_complete_r15(); + void set_crit_exts_future(); private: types type_; @@ -916,7 +860,7 @@ struct dl_ccch_msg_type_c { struct types_opts { enum options { rrc_conn_reest, rrc_conn_reest_reject, rrc_conn_reject, rrc_conn_setup, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -933,64 +877,48 @@ struct dl_ccch_msg_type_c { // getters rrc_conn_reest_s& rrc_conn_reest() { - assert_choice_type("rrcConnectionReestablishment", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest, type_, "c1"); return c.get(); } rrc_conn_reest_reject_s& rrc_conn_reest_reject() { - assert_choice_type("rrcConnectionReestablishmentReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_reject, type_, "c1"); return c.get(); } rrc_conn_reject_s& rrc_conn_reject() { - assert_choice_type("rrcConnectionReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject, type_, "c1"); return c.get(); } rrc_conn_setup_s& rrc_conn_setup() { - assert_choice_type("rrcConnectionSetup", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup, type_, "c1"); return c.get(); } const rrc_conn_reest_s& rrc_conn_reest() const { - assert_choice_type("rrcConnectionReestablishment", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest, type_, "c1"); return c.get(); } const rrc_conn_reest_reject_s& rrc_conn_reest_reject() const { - assert_choice_type("rrcConnectionReestablishmentReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_reject, type_, "c1"); return c.get(); } const rrc_conn_reject_s& rrc_conn_reject() const { - assert_choice_type("rrcConnectionReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject, type_, "c1"); return c.get(); } const rrc_conn_setup_s& rrc_conn_setup() const { - assert_choice_type("rrcConnectionSetup", type_.to_string(), "c1"); - return c.get(); - } - rrc_conn_reest_s& set_rrc_conn_reest() - { - set(types::rrc_conn_reest); - return c.get(); - } - rrc_conn_reest_reject_s& set_rrc_conn_reest_reject() - { - set(types::rrc_conn_reest_reject); - return c.get(); - } - rrc_conn_reject_s& set_rrc_conn_reject() - { - set(types::rrc_conn_reject); - return c.get(); - } - rrc_conn_setup_s& set_rrc_conn_setup() - { - set(types::rrc_conn_setup); + assert_choice_type(types::rrc_conn_setup, type_, "c1"); return c.get(); } + rrc_conn_reest_s& set_rrc_conn_reest(); + rrc_conn_reest_reject_s& set_rrc_conn_reest_reject(); + rrc_conn_reject_s& set_rrc_conn_reject(); + rrc_conn_setup_s& set_rrc_conn_setup(); private: types type_; @@ -1003,7 +931,7 @@ struct dl_ccch_msg_type_c { struct types_opts { enum options { rrc_early_data_complete_r15, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1017,22 +945,18 @@ struct dl_ccch_msg_type_c { // getters rrc_early_data_complete_r15_s& rrc_early_data_complete_r15() { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c2"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "c2"); return c; } const rrc_early_data_complete_r15_s& rrc_early_data_complete_r15() const { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c2"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "c2"); return c; } - rrc_early_data_complete_r15_s& set_rrc_early_data_complete_r15() - { - set(types::rrc_early_data_complete_r15); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_early_data_complete_r15_s& set_rrc_early_data_complete_r15(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -1042,7 +966,7 @@ struct dl_ccch_msg_type_c { enum options { c2, msg_class_ext_future_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1057,20 +981,16 @@ struct dl_ccch_msg_type_c { // getters c2_c_& c2() { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } const c2_c_& c2() const { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c; - } - c2_c_& set_c2() - { - set(types::c2); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } - void set_msg_class_ext_future_r15() { set(types::msg_class_ext_future_r15); } + c2_c_& set_c2(); + void set_msg_class_ext_future_r15(); private: types type_; @@ -1080,7 +1000,7 @@ struct dl_ccch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1098,34 +1018,26 @@ struct dl_ccch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType"); return c.get(); } msg_class_ext_c_& msg_class_ext() { - assert_choice_type("messageClassExtension", type_.to_string(), "DL-CCCH-MessageType"); + assert_choice_type(types::msg_class_ext, type_, "DL-CCCH-MessageType"); return c.get(); } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType"); return c.get(); } const msg_class_ext_c_& msg_class_ext() const { - assert_choice_type("messageClassExtension", type_.to_string(), "DL-CCCH-MessageType"); - return c.get(); - } - c1_c_& set_c1() - { - set(types::c1); - return c.get(); - } - msg_class_ext_c_& set_msg_class_ext() - { - set(types::msg_class_ext); + assert_choice_type(types::msg_class_ext, type_, "DL-CCCH-MessageType"); return c.get(); } + c1_c_& set_c1(); + msg_class_ext_c_& set_msg_class_ext(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/dl_dcch_msg.h b/lib/include/srsran/asn1/rrc/dl_dcch_msg.h index 3f8cfadf8..fb29422de 100644 --- a/lib/include/srsran/asn1/rrc/dl_dcch_msg.h +++ b/lib/include/srsran/asn1/rrc/dl_dcch_msg.h @@ -107,7 +107,7 @@ struct sl_hop_cfg_disc_r12_s { enum options { n1, n5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated c_r12_e_; @@ -145,7 +145,7 @@ struct ip_address_r13_c { enum options { ipv4_r13, ipv6_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -163,34 +163,26 @@ struct ip_address_r13_c { // getters fixed_bitstring<32>& ipv4_r13() { - assert_choice_type("ipv4-r13", type_.to_string(), "IP-Address-r13"); + assert_choice_type(types::ipv4_r13, type_, "IP-Address-r13"); return c.get >(); } fixed_bitstring<128>& ipv6_r13() { - assert_choice_type("ipv6-r13", type_.to_string(), "IP-Address-r13"); + assert_choice_type(types::ipv6_r13, type_, "IP-Address-r13"); return c.get >(); } const fixed_bitstring<32>& ipv4_r13() const { - assert_choice_type("ipv4-r13", type_.to_string(), "IP-Address-r13"); + assert_choice_type(types::ipv4_r13, type_, "IP-Address-r13"); return c.get >(); } const fixed_bitstring<128>& ipv6_r13() const { - assert_choice_type("ipv6-r13", type_.to_string(), "IP-Address-r13"); - return c.get >(); - } - fixed_bitstring<32>& set_ipv4_r13() - { - set(types::ipv4_r13); - return c.get >(); - } - fixed_bitstring<128>& set_ipv6_r13() - { - set(types::ipv6_r13); + assert_choice_type(types::ipv6_r13, type_, "IP-Address-r13"); return c.get >(); } + fixed_bitstring<32>& set_ipv4_r13(); + fixed_bitstring<128>& set_ipv6_r13(); private: types type_; @@ -297,7 +289,7 @@ struct sf_assign_r15_opts { enum options { sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sf_assign_r15_e; @@ -318,7 +310,7 @@ struct ul_pwr_ctrl_common_ps_cell_r12_s { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format3_r12_e_; @@ -326,7 +318,7 @@ struct ul_pwr_ctrl_common_ps_cell_r12_s { enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format1b_cs_r12_e_; @@ -512,7 +504,7 @@ struct sl_disc_tx_ref_carrier_ded_r13_c { struct types_opts { enum options { pcell, scell, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -526,20 +518,16 @@ struct sl_disc_tx_ref_carrier_ded_r13_c { // getters uint8_t& scell() { - assert_choice_type("sCell", type_.to_string(), "SL-DiscTxRefCarrierDedicated-r13"); + assert_choice_type(types::scell, type_, "SL-DiscTxRefCarrierDedicated-r13"); return c; } const uint8_t& scell() const { - assert_choice_type("sCell", type_.to_string(), "SL-DiscTxRefCarrierDedicated-r13"); - return c; - } - void set_pcell() { set(types::pcell); } - uint8_t& set_scell() - { - set(types::scell); + assert_choice_type(types::scell, type_, "SL-DiscTxRefCarrierDedicated-r13"); return c; } + void set_pcell(); + uint8_t& set_scell(); private: types type_; @@ -552,7 +540,7 @@ struct sl_disc_tx_res_r13_c { struct types_opts { enum options { sched_r13, ue_sel_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -569,34 +557,26 @@ struct sl_disc_tx_res_r13_c { // getters sl_disc_tx_cfg_sched_r13_s& sched_r13() { - assert_choice_type("scheduled-r13", type_.to_string(), "setup"); + assert_choice_type(types::sched_r13, type_, "setup"); return c.get(); } sl_disc_tx_pool_ded_r13_s& ue_sel_r13() { - assert_choice_type("ue-Selected-r13", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_r13, type_, "setup"); return c.get(); } const sl_disc_tx_cfg_sched_r13_s& sched_r13() const { - assert_choice_type("scheduled-r13", type_.to_string(), "setup"); + assert_choice_type(types::sched_r13, type_, "setup"); return c.get(); } const sl_disc_tx_pool_ded_r13_s& ue_sel_r13() const { - assert_choice_type("ue-Selected-r13", type_.to_string(), "setup"); - return c.get(); - } - sl_disc_tx_cfg_sched_r13_s& set_sched_r13() - { - set(types::sched_r13); - return c.get(); - } - sl_disc_tx_pool_ded_r13_s& set_ue_sel_r13() - { - set(types::ue_sel_r13); + assert_choice_type(types::ue_sel_r13, type_, "setup"); return c.get(); } + sl_disc_tx_cfg_sched_r13_s& set_sched_r13(); + sl_disc_tx_pool_ded_r13_s& set_ue_sel_r13(); private: types type_; @@ -616,20 +596,16 @@ struct sl_disc_tx_res_r13_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "SL-DiscTxResource-r13"); + assert_choice_type(types::setup, type_, "SL-DiscTxResource-r13"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "SL-DiscTxResource-r13"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SL-DiscTxResource-r13"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -660,20 +636,16 @@ struct tdm_pattern_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "TDM-PatternConfig-r15"); + assert_choice_type(types::setup, type_, "TDM-PatternConfig-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "TDM-PatternConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "TDM-PatternConfig-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -702,7 +674,7 @@ struct wlan_mob_cfg_r13_s { enum options { s10, s30, s60, s120, s240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated assoc_timer_r13_e_; @@ -765,7 +737,7 @@ struct mob_ctrl_info_scg_r12_s { enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t307_r12_e_; @@ -849,7 +821,7 @@ struct rclwi_cfg_r13_s { struct types_opts { enum options { steer_to_wlan_r13, steer_to_lte_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -863,20 +835,16 @@ struct rclwi_cfg_r13_s { // getters steer_to_wlan_r13_s_& steer_to_wlan_r13() { - assert_choice_type("steerToWLAN-r13", type_.to_string(), "command"); + assert_choice_type(types::steer_to_wlan_r13, type_, "command"); return c; } const steer_to_wlan_r13_s_& steer_to_wlan_r13() const { - assert_choice_type("steerToWLAN-r13", type_.to_string(), "command"); - return c; - } - steer_to_wlan_r13_s_& set_steer_to_wlan_r13() - { - set(types::steer_to_wlan_r13); + assert_choice_type(types::steer_to_wlan_r13, type_, "command"); return c; } - void set_steer_to_lte_r13() { set(types::steer_to_lte_r13); } + steer_to_wlan_r13_s_& set_steer_to_wlan_r13(); + void set_steer_to_lte_r13(); private: types type_; @@ -916,20 +884,16 @@ struct rrc_conn_recfg_v1510_ies_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "nr-Config-r15"); + assert_choice_type(types::setup, type_, "nr-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "nr-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "nr-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1043,7 +1007,7 @@ struct sl_v2x_cfg_ded_r14_s { struct types_opts { enum options { sched_r14, ue_sel_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1060,34 +1024,26 @@ struct sl_v2x_cfg_ded_r14_s { // getters sched_r14_s_& sched_r14() { - assert_choice_type("scheduled-r14", type_.to_string(), "setup"); + assert_choice_type(types::sched_r14, type_, "setup"); return c.get(); } ue_sel_r14_s_& ue_sel_r14() { - assert_choice_type("ue-Selected-r14", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_r14, type_, "setup"); return c.get(); } const sched_r14_s_& sched_r14() const { - assert_choice_type("scheduled-r14", type_.to_string(), "setup"); + assert_choice_type(types::sched_r14, type_, "setup"); return c.get(); } const ue_sel_r14_s_& ue_sel_r14() const { - assert_choice_type("ue-Selected-r14", type_.to_string(), "setup"); - return c.get(); - } - sched_r14_s_& set_sched_r14() - { - set(types::sched_r14); - return c.get(); - } - ue_sel_r14_s_& set_ue_sel_r14() - { - set(types::ue_sel_r14); + assert_choice_type(types::ue_sel_r14, type_, "setup"); return c.get(); } + sched_r14_s_& set_sched_r14(); + ue_sel_r14_s_& set_ue_sel_r14(); private: types type_; @@ -1107,20 +1063,16 @@ struct sl_v2x_cfg_ded_r14_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "commTxResources-r14"); + assert_choice_type(types::setup, type_, "commTxResources-r14"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "commTxResources-r14"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "commTxResources-r14"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1141,7 +1093,7 @@ struct sl_v2x_cfg_ded_r14_s { struct types_opts { enum options { sched_v1530, ue_sel_v1530, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1158,34 +1110,26 @@ struct sl_v2x_cfg_ded_r14_s { // getters sched_v1530_s_& sched_v1530() { - assert_choice_type("scheduled-v1530", type_.to_string(), "setup"); + assert_choice_type(types::sched_v1530, type_, "setup"); return c.get(); } ue_sel_v1530_s_& ue_sel_v1530() { - assert_choice_type("ue-Selected-v1530", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_v1530, type_, "setup"); return c.get(); } const sched_v1530_s_& sched_v1530() const { - assert_choice_type("scheduled-v1530", type_.to_string(), "setup"); + assert_choice_type(types::sched_v1530, type_, "setup"); return c.get(); } const ue_sel_v1530_s_& ue_sel_v1530() const { - assert_choice_type("ue-Selected-v1530", type_.to_string(), "setup"); - return c.get(); - } - sched_v1530_s_& set_sched_v1530() - { - set(types::sched_v1530); - return c.get(); - } - ue_sel_v1530_s_& set_ue_sel_v1530() - { - set(types::ue_sel_v1530); + assert_choice_type(types::ue_sel_v1530, type_, "setup"); return c.get(); } + sched_v1530_s_& set_sched_v1530(); + ue_sel_v1530_s_& set_ue_sel_v1530(); private: types type_; @@ -1205,20 +1149,16 @@ struct sl_v2x_cfg_ded_r14_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "commTxResources-v1530"); + assert_choice_type(types::setup, type_, "commTxResources-v1530"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "commTxResources-v1530"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "commTxResources-v1530"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1269,20 +1209,16 @@ struct lwa_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "LWA-Configuration-r13"); + assert_choice_type(types::setup, type_, "LWA-Configuration-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "LWA-Configuration-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "LWA-Configuration-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1306,20 +1242,16 @@ struct lwip_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "LWIP-Configuration-r13"); + assert_choice_type(types::setup, type_, "LWIP-Configuration-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "LWIP-Configuration-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "LWIP-Configuration-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1343,7 +1275,7 @@ struct ran_notif_area_info_r15_c { struct types_opts { enum options { cell_list_r15, ran_area_cfg_list_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1360,34 +1292,26 @@ struct ran_notif_area_info_r15_c { // getters plmn_ran_area_cell_list_r15_l& cell_list_r15() { - assert_choice_type("cellList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15"); + assert_choice_type(types::cell_list_r15, type_, "RAN-NotificationAreaInfo-r15"); return c.get(); } plmn_ran_area_cfg_list_r15_l& ran_area_cfg_list_r15() { - assert_choice_type("ran-AreaConfigList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15"); + assert_choice_type(types::ran_area_cfg_list_r15, type_, "RAN-NotificationAreaInfo-r15"); return c.get(); } const plmn_ran_area_cell_list_r15_l& cell_list_r15() const { - assert_choice_type("cellList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15"); + assert_choice_type(types::cell_list_r15, type_, "RAN-NotificationAreaInfo-r15"); return c.get(); } const plmn_ran_area_cfg_list_r15_l& ran_area_cfg_list_r15() const { - assert_choice_type("ran-AreaConfigList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15"); - return c.get(); - } - plmn_ran_area_cell_list_r15_l& set_cell_list_r15() - { - set(types::cell_list_r15); - return c.get(); - } - plmn_ran_area_cfg_list_r15_l& set_ran_area_cfg_list_r15() - { - set(types::ran_area_cfg_list_r15); + assert_choice_type(types::ran_area_cfg_list_r15, type_, "RAN-NotificationAreaInfo-r15"); return c.get(); } + plmn_ran_area_cell_list_r15_l& set_cell_list_r15(); + plmn_ran_area_cfg_list_r15_l& set_ran_area_cfg_list_r15(); private: types type_; @@ -1413,20 +1337,16 @@ struct rclwi_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RCLWI-Configuration-r13"); + assert_choice_type(types::setup, type_, "RCLWI-Configuration-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RCLWI-Configuration-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RCLWI-Configuration-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1560,7 +1480,7 @@ struct meas_idle_cfg_ded_r15_s { enum options { sec10, sec30, sec60, sec120, sec180, sec240, sec300, spare, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated meas_idle_dur_r15_e_; @@ -1584,7 +1504,7 @@ struct rrc_inactive_cfg_r15_s { enum options { rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ran_paging_cycle_r15_e_; @@ -1592,7 +1512,7 @@ struct rrc_inactive_cfg_r15_s { enum options { min5, min10, min20, min30, min60, min120, min360, min720, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated periodic_rnau_timer_r15_e_; @@ -1680,20 +1600,16 @@ struct scg_cfg_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-r12"); + assert_choice_type(types::setup, type_, "SCG-Configuration-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SCG-Configuration-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1725,7 +1641,7 @@ struct sl_comm_cfg_r12_s { struct types_opts { enum options { sched_r12, ue_sel_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1742,34 +1658,26 @@ struct sl_comm_cfg_r12_s { // getters sched_r12_s_& sched_r12() { - assert_choice_type("scheduled-r12", type_.to_string(), "setup"); + assert_choice_type(types::sched_r12, type_, "setup"); return c.get(); } ue_sel_r12_s_& ue_sel_r12() { - assert_choice_type("ue-Selected-r12", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_r12, type_, "setup"); return c.get(); } const sched_r12_s_& sched_r12() const { - assert_choice_type("scheduled-r12", type_.to_string(), "setup"); + assert_choice_type(types::sched_r12, type_, "setup"); return c.get(); } const ue_sel_r12_s_& ue_sel_r12() const { - assert_choice_type("ue-Selected-r12", type_.to_string(), "setup"); - return c.get(); - } - sched_r12_s_& set_sched_r12() - { - set(types::sched_r12); - return c.get(); - } - ue_sel_r12_s_& set_ue_sel_r12() - { - set(types::ue_sel_r12); + assert_choice_type(types::ue_sel_r12, type_, "setup"); return c.get(); } + sched_r12_s_& set_sched_r12(); + ue_sel_r12_s_& set_ue_sel_r12(); private: types type_; @@ -1789,20 +1697,16 @@ struct sl_comm_cfg_r12_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "commTxResources-r12"); + assert_choice_type(types::setup, type_, "commTxResources-r12"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "commTxResources-r12"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "commTxResources-r12"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1828,7 +1732,7 @@ struct sl_comm_cfg_r12_s { struct types_opts { enum options { sched_v1310, ue_sel_v1310, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1845,34 +1749,26 @@ struct sl_comm_cfg_r12_s { // getters sched_v1310_s_& sched_v1310() { - assert_choice_type("scheduled-v1310", type_.to_string(), "setup"); + assert_choice_type(types::sched_v1310, type_, "setup"); return c.get(); } ue_sel_v1310_s_& ue_sel_v1310() { - assert_choice_type("ue-Selected-v1310", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_v1310, type_, "setup"); return c.get(); } const sched_v1310_s_& sched_v1310() const { - assert_choice_type("scheduled-v1310", type_.to_string(), "setup"); + assert_choice_type(types::sched_v1310, type_, "setup"); return c.get(); } const ue_sel_v1310_s_& ue_sel_v1310() const { - assert_choice_type("ue-Selected-v1310", type_.to_string(), "setup"); - return c.get(); - } - sched_v1310_s_& set_sched_v1310() - { - set(types::sched_v1310); - return c.get(); - } - ue_sel_v1310_s_& set_ue_sel_v1310() - { - set(types::ue_sel_v1310); + assert_choice_type(types::ue_sel_v1310, type_, "setup"); return c.get(); } + sched_v1310_s_& set_sched_v1310(); + ue_sel_v1310_s_& set_ue_sel_v1310(); private: types type_; @@ -1892,20 +1788,16 @@ struct sl_comm_cfg_r12_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "commTxResources-v1310"); + assert_choice_type(types::setup, type_, "commTxResources-v1310"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "commTxResources-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "commTxResources-v1310"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1955,7 +1847,7 @@ struct sl_disc_cfg_r12_s { struct types_opts { enum options { sched_r12, ue_sel_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1972,34 +1864,26 @@ struct sl_disc_cfg_r12_s { // getters sched_r12_s_& sched_r12() { - assert_choice_type("scheduled-r12", type_.to_string(), "setup"); + assert_choice_type(types::sched_r12, type_, "setup"); return c.get(); } ue_sel_r12_s_& ue_sel_r12() { - assert_choice_type("ue-Selected-r12", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_r12, type_, "setup"); return c.get(); } const sched_r12_s_& sched_r12() const { - assert_choice_type("scheduled-r12", type_.to_string(), "setup"); + assert_choice_type(types::sched_r12, type_, "setup"); return c.get(); } const ue_sel_r12_s_& ue_sel_r12() const { - assert_choice_type("ue-Selected-r12", type_.to_string(), "setup"); - return c.get(); - } - sched_r12_s_& set_sched_r12() - { - set(types::sched_r12); - return c.get(); - } - ue_sel_r12_s_& set_ue_sel_r12() - { - set(types::ue_sel_r12); + assert_choice_type(types::ue_sel_r12, type_, "setup"); return c.get(); } + sched_r12_s_& set_sched_r12(); + ue_sel_r12_s_& set_ue_sel_r12(); private: types type_; @@ -2019,20 +1903,16 @@ struct sl_disc_cfg_r12_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "discTxResources-r12"); + assert_choice_type(types::setup, type_, "discTxResources-r12"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "discTxResources-r12"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discTxResources-r12"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -2054,20 +1934,16 @@ struct sl_disc_cfg_r12_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "discTF-IndexList-v1260"); + assert_choice_type(types::setup, type_, "discTF-IndexList-v1260"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "discTF-IndexList-v1260"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discTF-IndexList-v1260"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2081,7 +1957,7 @@ struct sl_disc_cfg_r12_s { struct types_opts { enum options { sched_r13, ue_sel_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2098,34 +1974,26 @@ struct sl_disc_cfg_r12_s { // getters sl_disc_tx_cfg_sched_r13_s& sched_r13() { - assert_choice_type("scheduled-r13", type_.to_string(), "setup"); + assert_choice_type(types::sched_r13, type_, "setup"); return c.get(); } ue_sel_r13_s_& ue_sel_r13() { - assert_choice_type("ue-Selected-r13", type_.to_string(), "setup"); + assert_choice_type(types::ue_sel_r13, type_, "setup"); return c.get(); } const sl_disc_tx_cfg_sched_r13_s& sched_r13() const { - assert_choice_type("scheduled-r13", type_.to_string(), "setup"); + assert_choice_type(types::sched_r13, type_, "setup"); return c.get(); } const ue_sel_r13_s_& ue_sel_r13() const { - assert_choice_type("ue-Selected-r13", type_.to_string(), "setup"); - return c.get(); - } - sl_disc_tx_cfg_sched_r13_s& set_sched_r13() - { - set(types::sched_r13); - return c.get(); - } - ue_sel_r13_s_& set_ue_sel_r13() - { - set(types::ue_sel_r13); + assert_choice_type(types::ue_sel_r13, type_, "setup"); return c.get(); } + sl_disc_tx_cfg_sched_r13_s& set_sched_r13(); + ue_sel_r13_s_& set_ue_sel_r13(); private: types type_; @@ -2145,20 +2013,16 @@ struct sl_disc_cfg_r12_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "discTxResourcesPS-r13"); + assert_choice_type(types::setup, type_, "discTxResourcesPS-r13"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "discTxResourcesPS-r13"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discTxResourcesPS-r13"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -2185,20 +2049,16 @@ struct sl_disc_cfg_r12_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "discTxInterFreqInfo-r13"); + assert_choice_type(types::setup, type_, "discTxInterFreqInfo-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "discTxInterFreqInfo-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discTxInterFreqInfo-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2217,20 +2077,16 @@ struct sl_disc_cfg_r12_s { // getters sl_gap_cfg_r13_s& setup() { - assert_choice_type("setup", type_.to_string(), "discRxGapConfig-r13"); + assert_choice_type(types::setup, type_, "discRxGapConfig-r13"); return c; } const sl_gap_cfg_r13_s& setup() const { - assert_choice_type("setup", type_.to_string(), "discRxGapConfig-r13"); - return c; - } - void set_release() { set(types::release); } - sl_gap_cfg_r13_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discRxGapConfig-r13"); return c; } + void set_release(); + sl_gap_cfg_r13_s& set_setup(); private: types type_; @@ -2249,20 +2105,16 @@ struct sl_disc_cfg_r12_s { // getters sl_gap_cfg_r13_s& setup() { - assert_choice_type("setup", type_.to_string(), "discTxGapConfig-r13"); + assert_choice_type(types::setup, type_, "discTxGapConfig-r13"); return c; } const sl_gap_cfg_r13_s& setup() const { - assert_choice_type("setup", type_.to_string(), "discTxGapConfig-r13"); - return c; - } - void set_release() { set(types::release); } - sl_gap_cfg_r13_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discTxGapConfig-r13"); return c; } + void set_release(); + sl_gap_cfg_r13_s& set_setup(); private: types type_; @@ -2281,20 +2133,16 @@ struct sl_disc_cfg_r12_s { // getters sl_disc_sys_info_to_report_freq_list_r13_l& setup() { - assert_choice_type("setup", type_.to_string(), "discSysInfoToReportConfig-r13"); + assert_choice_type(types::setup, type_, "discSysInfoToReportConfig-r13"); return c; } const sl_disc_sys_info_to_report_freq_list_r13_l& setup() const { - assert_choice_type("setup", type_.to_string(), "discSysInfoToReportConfig-r13"); - return c; - } - void set_release() { set(types::release); } - sl_disc_sys_info_to_report_freq_list_r13_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "discSysInfoToReportConfig-r13"); return c; } + void set_release(); + sl_disc_sys_info_to_report_freq_list_r13_l& set_setup(); private: types type_; @@ -2328,7 +2176,7 @@ struct sl_sync_tx_ctrl_r12_s { struct network_ctrl_sync_tx_r12_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated network_ctrl_sync_tx_r12_e_; @@ -2353,7 +2201,7 @@ struct rrc_conn_recfg_v1250_ies_s { enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t350_r12_e_; @@ -2375,20 +2223,16 @@ struct rrc_conn_recfg_v1250_ies_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "wlan-OffloadInfo-r12"); + assert_choice_type(types::setup, type_, "wlan-OffloadInfo-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "wlan-OffloadInfo-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "wlan-OffloadInfo-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2421,7 +2265,7 @@ struct rrc_conn_release_v1530_ies_s { enum options { epc, fivegc, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cn_type_r15_e_; @@ -2540,7 +2384,7 @@ struct idc_cfg_r11_s { enum options { n2, n5, n10, n15, n20, n30, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated autonomous_denial_sfs_r11_e_; @@ -2548,7 +2392,7 @@ struct idc_cfg_r11_s { enum options { sf200, sf500, sf1000, sf2000, spare4, spare3, spare2, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated autonomous_denial_validity_r11_e_; @@ -2570,20 +2414,16 @@ struct idc_cfg_r11_s { // getters candidate_serving_freq_list_nr_r15_l& setup() { - assert_choice_type("setup", type_.to_string(), "idc-Indication-MRDC-r15"); + assert_choice_type(types::setup, type_, "idc-Indication-MRDC-r15"); return c; } const candidate_serving_freq_list_nr_r15_l& setup() const { - assert_choice_type("setup", type_.to_string(), "idc-Indication-MRDC-r15"); - return c; - } - void set_release() { set(types::release); } - candidate_serving_freq_list_nr_r15_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "idc-Indication-MRDC-r15"); return c; } + void set_release(); + candidate_serving_freq_list_nr_r15_l& set_setup(); private: types type_; @@ -2644,9 +2484,9 @@ struct pwr_pref_ind_cfg_r11_c { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated pwr_pref_ind_timer_r11_e_; @@ -2665,20 +2505,16 @@ struct pwr_pref_ind_cfg_r11_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "PowerPrefIndicationConfig-r11"); + assert_choice_type(types::setup, type_, "PowerPrefIndicationConfig-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "PowerPrefIndicationConfig-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "PowerPrefIndicationConfig-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2837,9 +2673,9 @@ struct other_cfg_r9_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated bw_pref_ind_timer_r14_e_; struct delay_budget_report_cfg_r14_c_ { @@ -2848,9 +2684,9 @@ struct other_cfg_r9_s { enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated delay_budget_report_prohibit_timer_r14_e_; @@ -2869,20 +2705,16 @@ struct other_cfg_r9_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig-r14"); + assert_choice_type(types::setup, type_, "delayBudgetReportingConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "delayBudgetReportingConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2912,9 +2744,9 @@ struct other_cfg_r9_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rlm_report_timer_r14_e_; @@ -2934,20 +2766,16 @@ struct other_cfg_r9_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "rlm-ReportConfig-r14"); + assert_choice_type(types::setup, type_, "rlm-ReportConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "rlm-ReportConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "rlm-ReportConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2977,9 +2805,9 @@ struct other_cfg_r9_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated overheat_ind_prohibit_timer_r14_e_; @@ -2998,20 +2826,16 @@ struct other_cfg_r9_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "overheatingAssistanceConfig-r14"); + assert_choice_type(types::setup, type_, "overheatingAssistanceConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "overheatingAssistanceConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "overheatingAssistanceConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3022,7 +2846,7 @@ struct other_cfg_r9_s { struct service_type_r15_opts { enum options { qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated service_type_r15_e_; @@ -3042,20 +2866,16 @@ struct other_cfg_r9_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "measConfigAppLayer-r15"); + assert_choice_type(types::setup, type_, "measConfigAppLayer-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "measConfigAppLayer-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "measConfigAppLayer-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3153,7 +2973,7 @@ struct carrier_info_nr_r15_s { enum options { khz15, khz30, khz120, khz240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r15_e_; @@ -3258,7 +3078,7 @@ struct rrc_conn_release_v920_ies_s { struct types_opts { enum options { geran_r9, utra_fdd_r9, utra_tdd_r9, /*...*/ utra_tdd_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3275,64 +3095,48 @@ struct rrc_conn_release_v920_ies_s { // getters cell_info_list_geran_r9_l& geran_r9() { - assert_choice_type("geran-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::geran_r9, type_, "cellInfoList-r9"); return c.get(); } cell_info_list_utra_fdd_r9_l& utra_fdd_r9() { - assert_choice_type("utra-FDD-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::utra_fdd_r9, type_, "cellInfoList-r9"); return c.get(); } cell_info_list_utra_tdd_r9_l& utra_tdd_r9() { - assert_choice_type("utra-TDD-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::utra_tdd_r9, type_, "cellInfoList-r9"); return c.get(); } cell_info_list_utra_tdd_r10_l& utra_tdd_r10() { - assert_choice_type("utra-TDD-r10", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::utra_tdd_r10, type_, "cellInfoList-r9"); return c.get(); } const cell_info_list_geran_r9_l& geran_r9() const { - assert_choice_type("geran-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::geran_r9, type_, "cellInfoList-r9"); return c.get(); } const cell_info_list_utra_fdd_r9_l& utra_fdd_r9() const { - assert_choice_type("utra-FDD-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::utra_fdd_r9, type_, "cellInfoList-r9"); return c.get(); } const cell_info_list_utra_tdd_r9_l& utra_tdd_r9() const { - assert_choice_type("utra-TDD-r9", type_.to_string(), "cellInfoList-r9"); + assert_choice_type(types::utra_tdd_r9, type_, "cellInfoList-r9"); return c.get(); } const cell_info_list_utra_tdd_r10_l& utra_tdd_r10() const { - assert_choice_type("utra-TDD-r10", type_.to_string(), "cellInfoList-r9"); - return c.get(); - } - cell_info_list_geran_r9_l& set_geran_r9() - { - set(types::geran_r9); - return c.get(); - } - cell_info_list_utra_fdd_r9_l& set_utra_fdd_r9() - { - set(types::utra_fdd_r9); - return c.get(); - } - cell_info_list_utra_tdd_r9_l& set_utra_tdd_r9() - { - set(types::utra_tdd_r9); - return c.get(); - } - cell_info_list_utra_tdd_r10_l& set_utra_tdd_r10() - { - set(types::utra_tdd_r10); + assert_choice_type(types::utra_tdd_r10, type_, "cellInfoList-r9"); return c.get(); } + cell_info_list_geran_r9_l& set_geran_r9(); + cell_info_list_utra_fdd_r9_l& set_utra_fdd_r9(); + cell_info_list_utra_tdd_r9_l& set_utra_tdd_r9(); + cell_info_list_utra_tdd_r10_l& set_utra_tdd_r10(); private: types type_; @@ -3379,7 +3183,7 @@ struct si_or_psi_geran_c { struct types_opts { enum options { si, psi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3396,34 +3200,26 @@ struct si_or_psi_geran_c { // getters sys_info_list_geran_l& si() { - assert_choice_type("si", type_.to_string(), "SI-OrPSI-GERAN"); + assert_choice_type(types::si, type_, "SI-OrPSI-GERAN"); return c.get(); } sys_info_list_geran_l& psi() { - assert_choice_type("psi", type_.to_string(), "SI-OrPSI-GERAN"); + assert_choice_type(types::psi, type_, "SI-OrPSI-GERAN"); return c.get(); } const sys_info_list_geran_l& si() const { - assert_choice_type("si", type_.to_string(), "SI-OrPSI-GERAN"); + assert_choice_type(types::si, type_, "SI-OrPSI-GERAN"); return c.get(); } const sys_info_list_geran_l& psi() const { - assert_choice_type("psi", type_.to_string(), "SI-OrPSI-GERAN"); - return c.get(); - } - sys_info_list_geran_l& set_si() - { - set(types::si); - return c.get(); - } - sys_info_list_geran_l& set_psi() - { - set(types::psi); + assert_choice_type(types::psi, type_, "SI-OrPSI-GERAN"); return c.get(); } + sys_info_list_geran_l& set_si(); + sys_info_list_geran_l& set_psi(); private: types type_; @@ -3452,7 +3248,7 @@ struct area_cfg_r10_c { struct types_opts { enum options { cell_global_id_list_r10, tac_list_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3469,34 +3265,26 @@ struct area_cfg_r10_c { // getters cell_global_id_list_r10_l& cell_global_id_list_r10() { - assert_choice_type("cellGlobalIdList-r10", type_.to_string(), "AreaConfiguration-r10"); + assert_choice_type(types::cell_global_id_list_r10, type_, "AreaConfiguration-r10"); return c.get(); } tac_list_r10_l& tac_list_r10() { - assert_choice_type("trackingAreaCodeList-r10", type_.to_string(), "AreaConfiguration-r10"); + assert_choice_type(types::tac_list_r10, type_, "AreaConfiguration-r10"); return c.get(); } const cell_global_id_list_r10_l& cell_global_id_list_r10() const { - assert_choice_type("cellGlobalIdList-r10", type_.to_string(), "AreaConfiguration-r10"); + assert_choice_type(types::cell_global_id_list_r10, type_, "AreaConfiguration-r10"); return c.get(); } const tac_list_r10_l& tac_list_r10() const { - assert_choice_type("trackingAreaCodeList-r10", type_.to_string(), "AreaConfiguration-r10"); - return c.get(); - } - cell_global_id_list_r10_l& set_cell_global_id_list_r10() - { - set(types::cell_global_id_list_r10); - return c.get(); - } - tac_list_r10_l& set_tac_list_r10() - { - set(types::tac_list_r10); + assert_choice_type(types::tac_list_r10, type_, "AreaConfiguration-r10"); return c.get(); } + cell_global_id_list_r10_l& set_cell_global_id_list_r10(); + tac_list_r10_l& set_tac_list_r10(); private: types type_; @@ -3523,7 +3311,7 @@ struct cell_change_order_s { enum options { ms100, ms200, ms500, ms1000, ms2000, ms4000, ms8000, ms10000_v1310, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t304_e_; @@ -3539,7 +3327,7 @@ struct cell_change_order_s { struct types_opts { enum options { geran, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3599,7 +3387,7 @@ struct e_csfb_r9_s { struct mob_cdma2000_hrpd_r9_opts { enum options { ho, redirection, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mob_cdma2000_hrpd_r9_e_; @@ -3634,7 +3422,7 @@ struct ho_s { /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated target_rat_type_e_; @@ -3683,7 +3471,7 @@ struct logging_dur_r10_opts { enum options { min10, min20, min40, min60, min90, min120, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated logging_dur_r10_e; @@ -3693,7 +3481,7 @@ struct logging_interv_r10_opts { enum options { ms1280, ms2560, ms5120, ms10240, ms20480, ms30720, ms40960, ms61440, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated logging_interv_r10_e; @@ -3730,7 +3518,7 @@ struct rn_sf_cfg_r10_s { struct types_opts { enum options { sf_cfg_pattern_fdd_r10, sf_cfg_pattern_tdd_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3747,34 +3535,26 @@ struct rn_sf_cfg_r10_s { // getters fixed_bitstring<8>& sf_cfg_pattern_fdd_r10() { - assert_choice_type("subframeConfigPatternFDD-r10", type_.to_string(), "subframeConfigPattern-r10"); + assert_choice_type(types::sf_cfg_pattern_fdd_r10, type_, "subframeConfigPattern-r10"); return c.get >(); } uint8_t& sf_cfg_pattern_tdd_r10() { - assert_choice_type("subframeConfigPatternTDD-r10", type_.to_string(), "subframeConfigPattern-r10"); + assert_choice_type(types::sf_cfg_pattern_tdd_r10, type_, "subframeConfigPattern-r10"); return c.get(); } const fixed_bitstring<8>& sf_cfg_pattern_fdd_r10() const { - assert_choice_type("subframeConfigPatternFDD-r10", type_.to_string(), "subframeConfigPattern-r10"); + assert_choice_type(types::sf_cfg_pattern_fdd_r10, type_, "subframeConfigPattern-r10"); return c.get >(); } const uint8_t& sf_cfg_pattern_tdd_r10() const { - assert_choice_type("subframeConfigPatternTDD-r10", type_.to_string(), "subframeConfigPattern-r10"); - return c.get(); - } - fixed_bitstring<8>& set_sf_cfg_pattern_fdd_r10() - { - set(types::sf_cfg_pattern_fdd_r10); - return c.get >(); - } - uint8_t& set_sf_cfg_pattern_tdd_r10() - { - set(types::sf_cfg_pattern_tdd_r10); + assert_choice_type(types::sf_cfg_pattern_tdd_r10, type_, "subframeConfigPattern-r10"); return c.get(); } + fixed_bitstring<8>& set_sf_cfg_pattern_fdd_r10(); + uint8_t& set_sf_cfg_pattern_tdd_r10(); private: types type_; @@ -3786,7 +3566,7 @@ struct rn_sf_cfg_r10_s { struct res_alloc_type_r10_opts { enum options { type0, type1, type2_localized, type2_distributed, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated res_alloc_type_r10_e_; struct res_block_assign_r10_c_ { @@ -3795,7 +3575,7 @@ struct rn_sf_cfg_r10_s { enum options { nrb6_r10, nrb15_r10, nrb25_r10, nrb50_r10, nrb75_r10, nrb100_r10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3813,94 +3593,70 @@ struct rn_sf_cfg_r10_s { // getters fixed_bitstring<6>& nrb6_r10() { - assert_choice_type("nrb6-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb6_r10, type_, "type01-r10"); return c.get >(); } fixed_bitstring<8>& nrb15_r10() { - assert_choice_type("nrb15-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb15_r10, type_, "type01-r10"); return c.get >(); } fixed_bitstring<13>& nrb25_r10() { - assert_choice_type("nrb25-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb25_r10, type_, "type01-r10"); return c.get >(); } fixed_bitstring<17>& nrb50_r10() { - assert_choice_type("nrb50-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb50_r10, type_, "type01-r10"); return c.get >(); } fixed_bitstring<19>& nrb75_r10() { - assert_choice_type("nrb75-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb75_r10, type_, "type01-r10"); return c.get >(); } fixed_bitstring<25>& nrb100_r10() { - assert_choice_type("nrb100-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb100_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<6>& nrb6_r10() const { - assert_choice_type("nrb6-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb6_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<8>& nrb15_r10() const { - assert_choice_type("nrb15-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb15_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<13>& nrb25_r10() const { - assert_choice_type("nrb25-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb25_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<17>& nrb50_r10() const { - assert_choice_type("nrb50-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb50_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<19>& nrb75_r10() const { - assert_choice_type("nrb75-r10", type_.to_string(), "type01-r10"); + assert_choice_type(types::nrb75_r10, type_, "type01-r10"); return c.get >(); } const fixed_bitstring<25>& nrb100_r10() const { - assert_choice_type("nrb100-r10", type_.to_string(), "type01-r10"); - return c.get >(); - } - fixed_bitstring<6>& set_nrb6_r10() - { - set(types::nrb6_r10); - return c.get >(); - } - fixed_bitstring<8>& set_nrb15_r10() - { - set(types::nrb15_r10); - return c.get >(); - } - fixed_bitstring<13>& set_nrb25_r10() - { - set(types::nrb25_r10); - return c.get >(); - } - fixed_bitstring<17>& set_nrb50_r10() - { - set(types::nrb50_r10); - return c.get >(); - } - fixed_bitstring<19>& set_nrb75_r10() - { - set(types::nrb75_r10); - return c.get >(); - } - fixed_bitstring<25>& set_nrb100_r10() - { - set(types::nrb100_r10); + assert_choice_type(types::nrb100_r10, type_, "type01-r10"); return c.get >(); } + fixed_bitstring<6>& set_nrb6_r10(); + fixed_bitstring<8>& set_nrb15_r10(); + fixed_bitstring<13>& set_nrb25_r10(); + fixed_bitstring<17>& set_nrb50_r10(); + fixed_bitstring<19>& set_nrb75_r10(); + fixed_bitstring<25>& set_nrb100_r10(); private: types type_; @@ -3913,7 +3669,7 @@ struct rn_sf_cfg_r10_s { enum options { nrb6_r10, nrb15_r10, nrb25_r10, nrb50_r10, nrb75_r10, nrb100_r10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3931,94 +3687,70 @@ struct rn_sf_cfg_r10_s { // getters fixed_bitstring<5>& nrb6_r10() { - assert_choice_type("nrb6-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb6_r10, type_, "type2-r10"); return c.get >(); } fixed_bitstring<7>& nrb15_r10() { - assert_choice_type("nrb15-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb15_r10, type_, "type2-r10"); return c.get >(); } fixed_bitstring<9>& nrb25_r10() { - assert_choice_type("nrb25-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb25_r10, type_, "type2-r10"); return c.get >(); } fixed_bitstring<11>& nrb50_r10() { - assert_choice_type("nrb50-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb50_r10, type_, "type2-r10"); return c.get >(); } fixed_bitstring<12>& nrb75_r10() { - assert_choice_type("nrb75-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb75_r10, type_, "type2-r10"); return c.get >(); } fixed_bitstring<13>& nrb100_r10() { - assert_choice_type("nrb100-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb100_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<5>& nrb6_r10() const { - assert_choice_type("nrb6-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb6_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<7>& nrb15_r10() const { - assert_choice_type("nrb15-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb15_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<9>& nrb25_r10() const { - assert_choice_type("nrb25-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb25_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<11>& nrb50_r10() const { - assert_choice_type("nrb50-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb50_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<12>& nrb75_r10() const { - assert_choice_type("nrb75-r10", type_.to_string(), "type2-r10"); + assert_choice_type(types::nrb75_r10, type_, "type2-r10"); return c.get >(); } const fixed_bitstring<13>& nrb100_r10() const { - assert_choice_type("nrb100-r10", type_.to_string(), "type2-r10"); - return c.get >(); - } - fixed_bitstring<5>& set_nrb6_r10() - { - set(types::nrb6_r10); - return c.get >(); - } - fixed_bitstring<7>& set_nrb15_r10() - { - set(types::nrb15_r10); - return c.get >(); - } - fixed_bitstring<9>& set_nrb25_r10() - { - set(types::nrb25_r10); - return c.get >(); - } - fixed_bitstring<11>& set_nrb50_r10() - { - set(types::nrb50_r10); - return c.get >(); - } - fixed_bitstring<12>& set_nrb75_r10() - { - set(types::nrb75_r10); - return c.get >(); - } - fixed_bitstring<13>& set_nrb100_r10() - { - set(types::nrb100_r10); + assert_choice_type(types::nrb100_r10, type_, "type2-r10"); return c.get >(); } + fixed_bitstring<5>& set_nrb6_r10(); + fixed_bitstring<7>& set_nrb15_r10(); + fixed_bitstring<9>& set_nrb25_r10(); + fixed_bitstring<11>& set_nrb50_r10(); + fixed_bitstring<12>& set_nrb75_r10(); + fixed_bitstring<13>& set_nrb100_r10(); private: types type_; @@ -4030,9 +3762,9 @@ struct rn_sf_cfg_r10_s { enum options { type01_r10, type2_r10, /*...*/ nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated types; @@ -4049,34 +3781,26 @@ struct rn_sf_cfg_r10_s { // getters type01_r10_c_& type01_r10() { - assert_choice_type("type01-r10", type_.to_string(), "resourceBlockAssignment-r10"); + assert_choice_type(types::type01_r10, type_, "resourceBlockAssignment-r10"); return c.get(); } type2_r10_c_& type2_r10() { - assert_choice_type("type2-r10", type_.to_string(), "resourceBlockAssignment-r10"); + assert_choice_type(types::type2_r10, type_, "resourceBlockAssignment-r10"); return c.get(); } const type01_r10_c_& type01_r10() const { - assert_choice_type("type01-r10", type_.to_string(), "resourceBlockAssignment-r10"); + assert_choice_type(types::type01_r10, type_, "resourceBlockAssignment-r10"); return c.get(); } const type2_r10_c_& type2_r10() const { - assert_choice_type("type2-r10", type_.to_string(), "resourceBlockAssignment-r10"); - return c.get(); - } - type01_r10_c_& set_type01_r10() - { - set(types::type01_r10); - return c.get(); - } - type2_r10_c_& set_type2_r10() - { - set(types::type2_r10); + assert_choice_type(types::type2_r10, type_, "resourceBlockAssignment-r10"); return c.get(); } + type01_r10_c_& set_type01_r10(); + type2_r10_c_& set_type2_r10(); private: types type_; @@ -4088,13 +3812,13 @@ struct rn_sf_cfg_r10_s { struct no_interleaving_r10_opts { enum options { crs, dmrs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated no_interleaving_r10_e_; struct types_opts { enum options { interleaving_r10, no_interleaving_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4108,20 +3832,16 @@ struct rn_sf_cfg_r10_s { // getters no_interleaving_r10_e_& no_interleaving_r10() { - assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10"); + assert_choice_type(types::no_interleaving_r10, type_, "demodulationRS-r10"); return c; } const no_interleaving_r10_e_& no_interleaving_r10() const { - assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10"); - return c; - } - void set_interleaving_r10() { set(types::interleaving_r10); } - no_interleaving_r10_e_& set_no_interleaving_r10() - { - set(types::no_interleaving_r10); + assert_choice_type(types::no_interleaving_r10, type_, "demodulationRS-r10"); return c; } + void set_interleaving_r10(); + no_interleaving_r10_e_& set_no_interleaving_r10(); private: types type_; @@ -4144,7 +3864,7 @@ struct rn_sf_cfg_r10_s { enum options { ch_sel_mux_bundling, fallback_for_format3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4162,34 +3882,26 @@ struct rn_sf_cfg_r10_s { // getters ch_sel_mux_bundling_s_& ch_sel_mux_bundling() { - assert_choice_type("channelSelectionMultiplexingBundling", type_.to_string(), "tdd"); + assert_choice_type(types::ch_sel_mux_bundling, type_, "tdd"); return c.get(); } fallback_for_format3_s_& fallback_for_format3() { - assert_choice_type("fallbackForFormat3", type_.to_string(), "tdd"); + assert_choice_type(types::fallback_for_format3, type_, "tdd"); return c.get(); } const ch_sel_mux_bundling_s_& ch_sel_mux_bundling() const { - assert_choice_type("channelSelectionMultiplexingBundling", type_.to_string(), "tdd"); + assert_choice_type(types::ch_sel_mux_bundling, type_, "tdd"); return c.get(); } const fallback_for_format3_s_& fallback_for_format3() const { - assert_choice_type("fallbackForFormat3", type_.to_string(), "tdd"); - return c.get(); - } - ch_sel_mux_bundling_s_& set_ch_sel_mux_bundling() - { - set(types::ch_sel_mux_bundling); - return c.get(); - } - fallback_for_format3_s_& set_fallback_for_format3() - { - set(types::fallback_for_format3); + assert_choice_type(types::fallback_for_format3, type_, "tdd"); return c.get(); } + ch_sel_mux_bundling_s_& set_ch_sel_mux_bundling(); + fallback_for_format3_s_& set_fallback_for_format3(); private: types type_; @@ -4205,7 +3917,7 @@ struct rn_sf_cfg_r10_s { struct types_opts { enum options { tdd, fdd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4222,34 +3934,26 @@ struct rn_sf_cfg_r10_s { // getters tdd_c_& tdd() { - assert_choice_type("tdd", type_.to_string(), "pucch-Config-r10"); + assert_choice_type(types::tdd, type_, "pucch-Config-r10"); return c.get(); } fdd_s_& fdd() { - assert_choice_type("fdd", type_.to_string(), "pucch-Config-r10"); + assert_choice_type(types::fdd, type_, "pucch-Config-r10"); return c.get(); } const tdd_c_& tdd() const { - assert_choice_type("tdd", type_.to_string(), "pucch-Config-r10"); + assert_choice_type(types::tdd, type_, "pucch-Config-r10"); return c.get(); } const fdd_s_& fdd() const { - assert_choice_type("fdd", type_.to_string(), "pucch-Config-r10"); - return c.get(); - } - tdd_c_& set_tdd() - { - set(types::tdd); - return c.get(); - } - fdd_s_& set_fdd() - { - set(types::fdd); + assert_choice_type(types::fdd, type_, "pucch-Config-r10"); return c.get(); } + tdd_c_& set_tdd(); + fdd_s_& set_fdd(); private: types type_; @@ -4352,7 +4056,7 @@ struct redirected_carrier_info_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4369,124 +4073,92 @@ struct redirected_carrier_info_c { // getters uint32_t& eutra() { - assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::eutra, type_, "RedirectedCarrierInfo"); return c.get(); } carrier_freqs_geran_s& geran() { - assert_choice_type("geran", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::geran, type_, "RedirectedCarrierInfo"); return c.get(); } uint16_t& utra_fdd() { - assert_choice_type("utra-FDD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_fdd, type_, "RedirectedCarrierInfo"); return c.get(); } uint16_t& utra_tdd() { - assert_choice_type("utra-TDD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_tdd, type_, "RedirectedCarrierInfo"); return c.get(); } carrier_freq_cdma2000_s& cdma2000_hrpd() { - assert_choice_type("cdma2000-HRPD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::cdma2000_hrpd, type_, "RedirectedCarrierInfo"); return c.get(); } carrier_freq_cdma2000_s& cdma2000_minus1x_rtt() { - assert_choice_type("cdma2000-1xRTT", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::cdma2000_minus1x_rtt, type_, "RedirectedCarrierInfo"); return c.get(); } carrier_freq_list_utra_tdd_r10_l& utra_tdd_r10() { - assert_choice_type("utra-TDD-r10", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_tdd_r10, type_, "RedirectedCarrierInfo"); return c.get(); } carrier_info_nr_r15_s& nr_r15() { - assert_choice_type("nr-r15", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::nr_r15, type_, "RedirectedCarrierInfo"); return c.get(); } const uint32_t& eutra() const { - assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::eutra, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_freqs_geran_s& geran() const { - assert_choice_type("geran", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::geran, type_, "RedirectedCarrierInfo"); return c.get(); } const uint16_t& utra_fdd() const { - assert_choice_type("utra-FDD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_fdd, type_, "RedirectedCarrierInfo"); return c.get(); } const uint16_t& utra_tdd() const { - assert_choice_type("utra-TDD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_tdd, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_freq_cdma2000_s& cdma2000_hrpd() const { - assert_choice_type("cdma2000-HRPD", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::cdma2000_hrpd, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_freq_cdma2000_s& cdma2000_minus1x_rtt() const { - assert_choice_type("cdma2000-1xRTT", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::cdma2000_minus1x_rtt, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_freq_list_utra_tdd_r10_l& utra_tdd_r10() const { - assert_choice_type("utra-TDD-r10", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::utra_tdd_r10, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_info_nr_r15_s& nr_r15() const { - assert_choice_type("nr-r15", type_.to_string(), "RedirectedCarrierInfo"); - return c.get(); - } - uint32_t& set_eutra() - { - set(types::eutra); - return c.get(); - } - carrier_freqs_geran_s& set_geran() - { - set(types::geran); - return c.get(); - } - uint16_t& set_utra_fdd() - { - set(types::utra_fdd); - return c.get(); - } - uint16_t& set_utra_tdd() - { - set(types::utra_tdd); - return c.get(); - } - carrier_freq_cdma2000_s& set_cdma2000_hrpd() - { - set(types::cdma2000_hrpd); - return c.get(); - } - carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt() - { - set(types::cdma2000_minus1x_rtt); - return c.get(); - } - carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r10() - { - set(types::utra_tdd_r10); - return c.get(); - } - carrier_info_nr_r15_s& set_nr_r15() - { - set(types::nr_r15); + assert_choice_type(types::nr_r15, type_, "RedirectedCarrierInfo"); return c.get(); } + uint32_t& set_eutra(); + carrier_freqs_geran_s& set_geran(); + uint16_t& set_utra_fdd(); + uint16_t& set_utra_tdd(); + carrier_freq_cdma2000_s& set_cdma2000_hrpd(); + carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt(); + carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r10(); + carrier_info_nr_r15_s& set_nr_r15(); private: types type_; @@ -4503,7 +4175,7 @@ private: struct release_cause_opts { enum options { load_balancing_ta_urequired, other, cs_fallback_high_prio_v1020, rrc_suspend_v1320, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated release_cause_e; @@ -4551,7 +4223,7 @@ struct dl_info_transfer_r15_ies_s { struct types_opts { enum options { ded_info_nas_r15, ded_info_cdma2000_minus1_xrtt_r15, ded_info_cdma2000_hrpd_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4568,49 +4240,37 @@ struct dl_info_transfer_r15_ies_s { // getters dyn_octstring& ded_info_nas_r15() { - assert_choice_type("dedicatedInfoNAS-r15", type_.to_string(), "dedicatedInfoType-r15"); + assert_choice_type(types::ded_info_nas_r15, type_, "dedicatedInfoType-r15"); return c.get(); } dyn_octstring& ded_info_cdma2000_minus1_xrtt_r15() { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT-r15", type_.to_string(), "dedicatedInfoType-r15"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt_r15, type_, "dedicatedInfoType-r15"); return c.get(); } dyn_octstring& ded_info_cdma2000_hrpd_r15() { - assert_choice_type("dedicatedInfoCDMA2000-HRPD-r15", type_.to_string(), "dedicatedInfoType-r15"); + assert_choice_type(types::ded_info_cdma2000_hrpd_r15, type_, "dedicatedInfoType-r15"); return c.get(); } const dyn_octstring& ded_info_nas_r15() const { - assert_choice_type("dedicatedInfoNAS-r15", type_.to_string(), "dedicatedInfoType-r15"); + assert_choice_type(types::ded_info_nas_r15, type_, "dedicatedInfoType-r15"); return c.get(); } const dyn_octstring& ded_info_cdma2000_minus1_xrtt_r15() const { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT-r15", type_.to_string(), "dedicatedInfoType-r15"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt_r15, type_, "dedicatedInfoType-r15"); return c.get(); } const dyn_octstring& ded_info_cdma2000_hrpd_r15() const { - assert_choice_type("dedicatedInfoCDMA2000-HRPD-r15", type_.to_string(), "dedicatedInfoType-r15"); - return c.get(); - } - dyn_octstring& set_ded_info_nas_r15() - { - set(types::ded_info_nas_r15); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_minus1_xrtt_r15() - { - set(types::ded_info_cdma2000_minus1_xrtt_r15); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_hrpd_r15() - { - set(types::ded_info_cdma2000_hrpd_r15); + assert_choice_type(types::ded_info_cdma2000_hrpd_r15, type_, "dedicatedInfoType-r15"); return c.get(); } + dyn_octstring& set_ded_info_nas_r15(); + dyn_octstring& set_ded_info_cdma2000_minus1_xrtt_r15(); + dyn_octstring& set_ded_info_cdma2000_hrpd_r15(); private: types type_; @@ -4639,7 +4299,7 @@ struct dl_info_transfer_r8_ies_s { struct types_opts { enum options { ded_info_nas, ded_info_cdma2000_minus1_xrtt, ded_info_cdma2000_hrpd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4656,49 +4316,37 @@ struct dl_info_transfer_r8_ies_s { // getters dyn_octstring& ded_info_nas() { - assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_nas, type_, "dedicatedInfoType"); return c.get(); } dyn_octstring& ded_info_cdma2000_minus1_xrtt() { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt, type_, "dedicatedInfoType"); return c.get(); } dyn_octstring& ded_info_cdma2000_hrpd() { - assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_hrpd, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_nas() const { - assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_nas, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_cdma2000_minus1_xrtt() const { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_cdma2000_hrpd() const { - assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType"); - return c.get(); - } - dyn_octstring& set_ded_info_nas() - { - set(types::ded_info_nas); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_minus1_xrtt() - { - set(types::ded_info_cdma2000_minus1_xrtt); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_hrpd() - { - set(types::ded_info_cdma2000_hrpd); + assert_choice_type(types::ded_info_cdma2000_hrpd, type_, "dedicatedInfoType"); return c.get(); } + dyn_octstring& set_ded_info_nas(); + dyn_octstring& set_ded_info_cdma2000_minus1_xrtt(); + dyn_octstring& set_ded_info_cdma2000_hrpd(); private: types type_; @@ -4759,7 +4407,7 @@ struct mob_from_eutra_cmd_r8_ies_s { struct types_opts { enum options { ho, cell_change_order, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4776,34 +4424,26 @@ struct mob_from_eutra_cmd_r8_ies_s { // getters ho_s& ho() { - assert_choice_type("handover", type_.to_string(), "purpose"); + assert_choice_type(types::ho, type_, "purpose"); return c.get(); } cell_change_order_s& cell_change_order() { - assert_choice_type("cellChangeOrder", type_.to_string(), "purpose"); + assert_choice_type(types::cell_change_order, type_, "purpose"); return c.get(); } const ho_s& ho() const { - assert_choice_type("handover", type_.to_string(), "purpose"); + assert_choice_type(types::ho, type_, "purpose"); return c.get(); } const cell_change_order_s& cell_change_order() const { - assert_choice_type("cellChangeOrder", type_.to_string(), "purpose"); - return c.get(); - } - ho_s& set_ho() - { - set(types::ho); - return c.get(); - } - cell_change_order_s& set_cell_change_order() - { - set(types::cell_change_order); + assert_choice_type(types::cell_change_order, type_, "purpose"); return c.get(); } + ho_s& set_ho(); + cell_change_order_s& set_cell_change_order(); private: types type_; @@ -4830,7 +4470,7 @@ struct mob_from_eutra_cmd_r9_ies_s { struct types_opts { enum options { ho, cell_change_order, e_csfb_r9, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4847,49 +4487,37 @@ struct mob_from_eutra_cmd_r9_ies_s { // getters ho_s& ho() { - assert_choice_type("handover", type_.to_string(), "purpose"); + assert_choice_type(types::ho, type_, "purpose"); return c.get(); } cell_change_order_s& cell_change_order() { - assert_choice_type("cellChangeOrder", type_.to_string(), "purpose"); + assert_choice_type(types::cell_change_order, type_, "purpose"); return c.get(); } e_csfb_r9_s& e_csfb_r9() { - assert_choice_type("e-CSFB-r9", type_.to_string(), "purpose"); + assert_choice_type(types::e_csfb_r9, type_, "purpose"); return c.get(); } const ho_s& ho() const { - assert_choice_type("handover", type_.to_string(), "purpose"); + assert_choice_type(types::ho, type_, "purpose"); return c.get(); } const cell_change_order_s& cell_change_order() const { - assert_choice_type("cellChangeOrder", type_.to_string(), "purpose"); + assert_choice_type(types::cell_change_order, type_, "purpose"); return c.get(); } const e_csfb_r9_s& e_csfb_r9() const { - assert_choice_type("e-CSFB-r9", type_.to_string(), "purpose"); - return c.get(); - } - ho_s& set_ho() - { - set(types::ho); - return c.get(); - } - cell_change_order_s& set_cell_change_order() - { - set(types::cell_change_order); - return c.get(); - } - e_csfb_r9_s& set_e_csfb_r9() - { - set(types::e_csfb_r9); + assert_choice_type(types::e_csfb_r9, type_, "purpose"); return c.get(); } + ho_s& set_ho(); + cell_change_order_s& set_cell_change_order(); + e_csfb_r9_s& set_e_csfb_r9(); private: types type_; @@ -5007,7 +4635,7 @@ struct csfb_params_resp_cdma2000_s { enum options { csfb_params_resp_cdma2000_r8, crit_exts_future, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -5022,20 +4650,16 @@ struct csfb_params_resp_cdma2000_s { // getters csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8() { - assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::csfb_params_resp_cdma2000_r8, type_, "criticalExtensions"); return c; } const csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8() const { - assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::csfb_params_resp_cdma2000_r8, type_, "criticalExtensions"); return c; } - csfb_params_resp_cdma2000_r8_ies_s& set_csfb_params_resp_cdma2000_r8() - { - set(types::csfb_params_resp_cdma2000_r8); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + csfb_params_resp_cdma2000_r8_ies_s& set_csfb_params_resp_cdma2000_r8(); + void set_crit_exts_future(); private: types type_; @@ -5059,7 +4683,7 @@ struct counter_check_s { struct types_opts { enum options { counter_check_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5073,22 +4697,18 @@ struct counter_check_s { // getters counter_check_r8_ies_s& counter_check_r8() { - assert_choice_type("counterCheck-r8", type_.to_string(), "c1"); + assert_choice_type(types::counter_check_r8, type_, "c1"); return c; } const counter_check_r8_ies_s& counter_check_r8() const { - assert_choice_type("counterCheck-r8", type_.to_string(), "c1"); - return c; - } - counter_check_r8_ies_s& set_counter_check_r8() - { - set(types::counter_check_r8); + assert_choice_type(types::counter_check_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + counter_check_r8_ies_s& set_counter_check_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5106,20 +4726,16 @@ struct counter_check_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5143,7 +4759,7 @@ struct dl_info_transfer_s { struct types_opts { enum options { dl_info_transfer_r8, dl_info_transfer_r15, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5160,36 +4776,28 @@ struct dl_info_transfer_s { // getters dl_info_transfer_r8_ies_s& dl_info_transfer_r8() { - assert_choice_type("dlInformationTransfer-r8", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r8, type_, "c1"); return c.get(); } dl_info_transfer_r15_ies_s& dl_info_transfer_r15() { - assert_choice_type("dlInformationTransfer-r15", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r15, type_, "c1"); return c.get(); } const dl_info_transfer_r8_ies_s& dl_info_transfer_r8() const { - assert_choice_type("dlInformationTransfer-r8", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r8, type_, "c1"); return c.get(); } const dl_info_transfer_r15_ies_s& dl_info_transfer_r15() const { - assert_choice_type("dlInformationTransfer-r15", type_.to_string(), "c1"); - return c.get(); - } - dl_info_transfer_r8_ies_s& set_dl_info_transfer_r8() - { - set(types::dl_info_transfer_r8); - return c.get(); - } - dl_info_transfer_r15_ies_s& set_dl_info_transfer_r15() - { - set(types::dl_info_transfer_r15); + assert_choice_type(types::dl_info_transfer_r15, type_, "c1"); return c.get(); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + dl_info_transfer_r8_ies_s& set_dl_info_transfer_r8(); + dl_info_transfer_r15_ies_s& set_dl_info_transfer_r15(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5209,20 +4817,16 @@ struct dl_info_transfer_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5246,7 +4850,7 @@ struct ho_from_eutra_prep_request_s { struct types_opts { enum options { ho_from_eutra_prep_request_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5260,22 +4864,18 @@ struct ho_from_eutra_prep_request_s { // getters ho_from_eutra_prep_request_r8_ies_s& ho_from_eutra_prep_request_r8() { - assert_choice_type("handoverFromEUTRAPreparationRequest-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_from_eutra_prep_request_r8, type_, "c1"); return c; } const ho_from_eutra_prep_request_r8_ies_s& ho_from_eutra_prep_request_r8() const { - assert_choice_type("handoverFromEUTRAPreparationRequest-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_from_eutra_prep_request_r8, type_, "c1"); return c; } - ho_from_eutra_prep_request_r8_ies_s& set_ho_from_eutra_prep_request_r8() - { - set(types::ho_from_eutra_prep_request_r8); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_from_eutra_prep_request_r8_ies_s& set_ho_from_eutra_prep_request_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5293,20 +4893,16 @@ struct ho_from_eutra_prep_request_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5330,7 +4926,7 @@ struct logged_meas_cfg_r10_s { struct types_opts { enum options { logged_meas_cfg_r10, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5344,22 +4940,18 @@ struct logged_meas_cfg_r10_s { // getters logged_meas_cfg_r10_ies_s& logged_meas_cfg_r10() { - assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::logged_meas_cfg_r10, type_, "c1"); return c; } const logged_meas_cfg_r10_ies_s& logged_meas_cfg_r10() const { - assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::logged_meas_cfg_r10, type_, "c1"); return c; } - logged_meas_cfg_r10_ies_s& set_logged_meas_cfg_r10() - { - set(types::logged_meas_cfg_r10); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + logged_meas_cfg_r10_ies_s& set_logged_meas_cfg_r10(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5377,20 +4969,16 @@ struct logged_meas_cfg_r10_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5413,7 +5001,7 @@ struct mob_from_eutra_cmd_s { struct types_opts { enum options { mob_from_eutra_cmd_r8, mob_from_eutra_cmd_r9, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5430,36 +5018,28 @@ struct mob_from_eutra_cmd_s { // getters mob_from_eutra_cmd_r8_ies_s& mob_from_eutra_cmd_r8() { - assert_choice_type("mobilityFromEUTRACommand-r8", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd_r8, type_, "c1"); return c.get(); } mob_from_eutra_cmd_r9_ies_s& mob_from_eutra_cmd_r9() { - assert_choice_type("mobilityFromEUTRACommand-r9", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd_r9, type_, "c1"); return c.get(); } const mob_from_eutra_cmd_r8_ies_s& mob_from_eutra_cmd_r8() const { - assert_choice_type("mobilityFromEUTRACommand-r8", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd_r8, type_, "c1"); return c.get(); } const mob_from_eutra_cmd_r9_ies_s& mob_from_eutra_cmd_r9() const { - assert_choice_type("mobilityFromEUTRACommand-r9", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd_r9, type_, "c1"); return c.get(); } - mob_from_eutra_cmd_r8_ies_s& set_mob_from_eutra_cmd_r8() - { - set(types::mob_from_eutra_cmd_r8); - return c.get(); - } - mob_from_eutra_cmd_r9_ies_s& set_mob_from_eutra_cmd_r9() - { - set(types::mob_from_eutra_cmd_r9); - return c.get(); - } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + mob_from_eutra_cmd_r8_ies_s& set_mob_from_eutra_cmd_r8(); + mob_from_eutra_cmd_r9_ies_s& set_mob_from_eutra_cmd_r9(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5479,20 +5059,16 @@ struct mob_from_eutra_cmd_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5516,7 +5092,7 @@ struct rn_recfg_r10_s { struct types_opts { enum options { rn_recfg_r10, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5530,22 +5106,18 @@ struct rn_recfg_r10_s { // getters rn_recfg_r10_ies_s& rn_recfg_r10() { - assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_r10, type_, "c1"); return c; } const rn_recfg_r10_ies_s& rn_recfg_r10() const { - assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1"); - return c; - } - rn_recfg_r10_ies_s& set_rn_recfg_r10() - { - set(types::rn_recfg_r10); + assert_choice_type(types::rn_recfg_r10, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rn_recfg_r10_ies_s& set_rn_recfg_r10(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5563,20 +5135,16 @@ struct rn_recfg_r10_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5600,7 +5168,7 @@ struct rrc_conn_recfg_s { struct types_opts { enum options { rrc_conn_recfg_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5614,26 +5182,22 @@ struct rrc_conn_recfg_s { // getters rrc_conn_recfg_r8_ies_s& rrc_conn_recfg_r8() { - assert_choice_type("rrcConnectionReconfiguration-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r8, type_, "c1"); return c; } const rrc_conn_recfg_r8_ies_s& rrc_conn_recfg_r8() const { - assert_choice_type("rrcConnectionReconfiguration-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r8, type_, "c1"); return c; } - rrc_conn_recfg_r8_ies_s& set_rrc_conn_recfg_r8() - { - set(types::rrc_conn_recfg_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_recfg_r8_ies_s& set_rrc_conn_recfg_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5651,20 +5215,16 @@ struct rrc_conn_recfg_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5688,7 +5248,7 @@ struct rrc_conn_release_s { struct types_opts { enum options { rrc_conn_release_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5702,22 +5262,18 @@ struct rrc_conn_release_s { // getters rrc_conn_release_r8_ies_s& rrc_conn_release_r8() { - assert_choice_type("rrcConnectionRelease-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release_r8, type_, "c1"); return c; } const rrc_conn_release_r8_ies_s& rrc_conn_release_r8() const { - assert_choice_type("rrcConnectionRelease-r8", type_.to_string(), "c1"); - return c; - } - rrc_conn_release_r8_ies_s& set_rrc_conn_release_r8() - { - set(types::rrc_conn_release_r8); + assert_choice_type(types::rrc_conn_release_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_release_r8_ies_s& set_rrc_conn_release_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5735,20 +5291,16 @@ struct rrc_conn_release_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5772,7 +5324,7 @@ struct rrc_conn_resume_r13_s { struct types_opts { enum options { rrc_conn_resume_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5786,22 +5338,18 @@ struct rrc_conn_resume_r13_s { // getters rrc_conn_resume_r13_ies_s& rrc_conn_resume_r13() { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c; } const rrc_conn_resume_r13_ies_s& rrc_conn_resume_r13() const { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); - return c; - } - rrc_conn_resume_r13_ies_s& set_rrc_conn_resume_r13() - { - set(types::rrc_conn_resume_r13); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_resume_r13_ies_s& set_rrc_conn_resume_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5819,20 +5367,16 @@ struct rrc_conn_resume_r13_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5856,7 +5400,7 @@ struct ue_info_request_r9_s { struct types_opts { enum options { ue_info_request_r9, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5870,22 +5414,18 @@ struct ue_info_request_r9_s { // getters ue_info_request_r9_ies_s& ue_info_request_r9() { - assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_request_r9, type_, "c1"); return c; } const ue_info_request_r9_ies_s& ue_info_request_r9() const { - assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1"); - return c; - } - ue_info_request_r9_ies_s& set_ue_info_request_r9() - { - set(types::ue_info_request_r9); + assert_choice_type(types::ue_info_request_r9, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_info_request_r9_ies_s& set_ue_info_request_r9(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5903,20 +5443,16 @@ struct ue_info_request_r9_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5958,7 +5494,7 @@ struct dl_dcch_msg_type_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -5976,202 +5512,150 @@ struct dl_dcch_msg_type_c { // getters csfb_params_resp_cdma2000_s& csfb_params_resp_cdma2000() { - assert_choice_type("csfbParametersResponseCDMA2000", type_.to_string(), "c1"); + assert_choice_type(types::csfb_params_resp_cdma2000, type_, "c1"); return c.get(); } dl_info_transfer_s& dl_info_transfer() { - assert_choice_type("dlInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer, type_, "c1"); return c.get(); } ho_from_eutra_prep_request_s& ho_from_eutra_prep_request() { - assert_choice_type("handoverFromEUTRAPreparationRequest", type_.to_string(), "c1"); + assert_choice_type(types::ho_from_eutra_prep_request, type_, "c1"); return c.get(); } mob_from_eutra_cmd_s& mob_from_eutra_cmd() { - assert_choice_type("mobilityFromEUTRACommand", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd, type_, "c1"); return c.get(); } rrc_conn_recfg_s& rrc_conn_recfg() { - assert_choice_type("rrcConnectionReconfiguration", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg, type_, "c1"); return c.get(); } rrc_conn_release_s& rrc_conn_release() { - assert_choice_type("rrcConnectionRelease", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release, type_, "c1"); return c.get(); } security_mode_cmd_s& security_mode_cmd() { - assert_choice_type("securityModeCommand", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd, type_, "c1"); return c.get(); } ue_cap_enquiry_s& ue_cap_enquiry() { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry, type_, "c1"); return c.get(); } counter_check_s& counter_check() { - assert_choice_type("counterCheck", type_.to_string(), "c1"); + assert_choice_type(types::counter_check, type_, "c1"); return c.get(); } ue_info_request_r9_s& ue_info_request_r9() { - assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_request_r9, type_, "c1"); return c.get(); } logged_meas_cfg_r10_s& logged_meas_cfg_r10() { - assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::logged_meas_cfg_r10, type_, "c1"); return c.get(); } rn_recfg_r10_s& rn_recfg_r10() { - assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_r10, type_, "c1"); return c.get(); } rrc_conn_resume_r13_s& rrc_conn_resume_r13() { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c.get(); } const csfb_params_resp_cdma2000_s& csfb_params_resp_cdma2000() const { - assert_choice_type("csfbParametersResponseCDMA2000", type_.to_string(), "c1"); + assert_choice_type(types::csfb_params_resp_cdma2000, type_, "c1"); return c.get(); } const dl_info_transfer_s& dl_info_transfer() const { - assert_choice_type("dlInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer, type_, "c1"); return c.get(); } const ho_from_eutra_prep_request_s& ho_from_eutra_prep_request() const { - assert_choice_type("handoverFromEUTRAPreparationRequest", type_.to_string(), "c1"); + assert_choice_type(types::ho_from_eutra_prep_request, type_, "c1"); return c.get(); } const mob_from_eutra_cmd_s& mob_from_eutra_cmd() const { - assert_choice_type("mobilityFromEUTRACommand", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_eutra_cmd, type_, "c1"); return c.get(); } const rrc_conn_recfg_s& rrc_conn_recfg() const { - assert_choice_type("rrcConnectionReconfiguration", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg, type_, "c1"); return c.get(); } const rrc_conn_release_s& rrc_conn_release() const { - assert_choice_type("rrcConnectionRelease", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release, type_, "c1"); return c.get(); } const security_mode_cmd_s& security_mode_cmd() const { - assert_choice_type("securityModeCommand", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd, type_, "c1"); return c.get(); } const ue_cap_enquiry_s& ue_cap_enquiry() const { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry, type_, "c1"); return c.get(); } const counter_check_s& counter_check() const { - assert_choice_type("counterCheck", type_.to_string(), "c1"); + assert_choice_type(types::counter_check, type_, "c1"); return c.get(); } const ue_info_request_r9_s& ue_info_request_r9() const { - assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_request_r9, type_, "c1"); return c.get(); } const logged_meas_cfg_r10_s& logged_meas_cfg_r10() const { - assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::logged_meas_cfg_r10, type_, "c1"); return c.get(); } const rn_recfg_r10_s& rn_recfg_r10() const { - assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_r10, type_, "c1"); return c.get(); } const rrc_conn_resume_r13_s& rrc_conn_resume_r13() const { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c.get(); } - csfb_params_resp_cdma2000_s& set_csfb_params_resp_cdma2000() - { - set(types::csfb_params_resp_cdma2000); - return c.get(); - } - dl_info_transfer_s& set_dl_info_transfer() - { - set(types::dl_info_transfer); - return c.get(); - } - ho_from_eutra_prep_request_s& set_ho_from_eutra_prep_request() - { - set(types::ho_from_eutra_prep_request); - return c.get(); - } - mob_from_eutra_cmd_s& set_mob_from_eutra_cmd() - { - set(types::mob_from_eutra_cmd); - return c.get(); - } - rrc_conn_recfg_s& set_rrc_conn_recfg() - { - set(types::rrc_conn_recfg); - return c.get(); - } - rrc_conn_release_s& set_rrc_conn_release() - { - set(types::rrc_conn_release); - return c.get(); - } - security_mode_cmd_s& set_security_mode_cmd() - { - set(types::security_mode_cmd); - return c.get(); - } - ue_cap_enquiry_s& set_ue_cap_enquiry() - { - set(types::ue_cap_enquiry); - return c.get(); - } - counter_check_s& set_counter_check() - { - set(types::counter_check); - return c.get(); - } - ue_info_request_r9_s& set_ue_info_request_r9() - { - set(types::ue_info_request_r9); - return c.get(); - } - logged_meas_cfg_r10_s& set_logged_meas_cfg_r10() - { - set(types::logged_meas_cfg_r10); - return c.get(); - } - rn_recfg_r10_s& set_rn_recfg_r10() - { - set(types::rn_recfg_r10); - return c.get(); - } - rrc_conn_resume_r13_s& set_rrc_conn_resume_r13() - { - set(types::rrc_conn_resume_r13); - return c.get(); - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + csfb_params_resp_cdma2000_s& set_csfb_params_resp_cdma2000(); + dl_info_transfer_s& set_dl_info_transfer(); + ho_from_eutra_prep_request_s& set_ho_from_eutra_prep_request(); + mob_from_eutra_cmd_s& set_mob_from_eutra_cmd(); + rrc_conn_recfg_s& set_rrc_conn_recfg(); + rrc_conn_release_s& set_rrc_conn_release(); + security_mode_cmd_s& set_security_mode_cmd(); + ue_cap_enquiry_s& set_ue_cap_enquiry(); + counter_check_s& set_counter_check(); + ue_info_request_r9_s& set_ue_info_request_r9(); + logged_meas_cfg_r10_s& set_logged_meas_cfg_r10(); + rn_recfg_r10_s& set_rn_recfg_r10(); + rrc_conn_resume_r13_s& set_rrc_conn_resume_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -6196,7 +5680,7 @@ struct dl_dcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -6211,20 +5695,16 @@ struct dl_dcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -6293,20 +5773,16 @@ struct scg_cfg_v13c0_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); + assert_choice_type(types::setup, type_, "SCG-Configuration-v13c0"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SCG-Configuration-v13c0"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6388,20 +5864,16 @@ struct scg_cfg_v12f0_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); + assert_choice_type(types::setup, type_, "SCG-Configuration-v12f0"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SCG-Configuration-v12f0"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/ho_cmd.h b/lib/include/srsran/asn1/rrc/ho_cmd.h index 9148989c6..8665b2e3d 100644 --- a/lib/include/srsran/asn1/rrc/ho_cmd.h +++ b/lib/include/srsran/asn1/rrc/ho_cmd.h @@ -124,7 +124,7 @@ struct scg_cfg_r12_s { struct types_opts { enum options { scg_cfg_r12, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -138,26 +138,22 @@ struct scg_cfg_r12_s { // getters scg_cfg_r12_ies_s& scg_cfg_r12() { - assert_choice_type("scg-Config-r12", type_.to_string(), "c1"); + assert_choice_type(types::scg_cfg_r12, type_, "c1"); return c; } const scg_cfg_r12_ies_s& scg_cfg_r12() const { - assert_choice_type("scg-Config-r12", type_.to_string(), "c1"); + assert_choice_type(types::scg_cfg_r12, type_, "c1"); return c; } - scg_cfg_r12_ies_s& set_scg_cfg_r12() - { - set(types::scg_cfg_r12); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + scg_cfg_r12_ies_s& set_scg_cfg_r12(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -175,20 +171,16 @@ struct scg_cfg_r12_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -444,7 +436,7 @@ struct ho_cmd_s { struct types_opts { enum options { ho_cmd_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -458,26 +450,22 @@ struct ho_cmd_s { // getters ho_cmd_r8_ies_s& ho_cmd_r8() { - assert_choice_type("handoverCommand-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_cmd_r8, type_, "c1"); return c; } const ho_cmd_r8_ies_s& ho_cmd_r8() const { - assert_choice_type("handoverCommand-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_cmd_r8, type_, "c1"); return c; } - ho_cmd_r8_ies_s& set_ho_cmd_r8() - { - set(types::ho_cmd_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_cmd_r8_ies_s& set_ho_cmd_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -495,20 +483,16 @@ struct ho_cmd_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -637,7 +621,7 @@ struct ho_prep_info_v920_ies_s { struct ue_cfg_release_r9_opts { enum options { rel9, rel10, rel11, rel12, v10j0, v11e0, v1280, rel13, /*...*/ rel14, rel15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_cfg_release_r9_e_; @@ -724,7 +708,7 @@ struct rrm_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_inactive_time_e_; @@ -769,7 +753,7 @@ struct ho_prep_info_s { struct types_opts { enum options { ho_prep_info_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -783,26 +767,22 @@ struct ho_prep_info_s { // getters ho_prep_info_r8_ies_s& ho_prep_info_r8() { - assert_choice_type("handoverPreparationInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_prep_info_r8, type_, "c1"); return c; } const ho_prep_info_r8_ies_s& ho_prep_info_r8() const { - assert_choice_type("handoverPreparationInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ho_prep_info_r8, type_, "c1"); return c; } - ho_prep_info_r8_ies_s& set_ho_prep_info_r8() - { - set(types::ho_prep_info_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_prep_info_r8_ies_s& set_ho_prep_info_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -820,20 +800,16 @@ struct ho_prep_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -919,20 +895,16 @@ struct var_meas_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "speedStatePars"); + assert_choice_type(types::setup, type_, "speedStatePars"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "speedStatePars"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "speedStatePars"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/meascfg.h b/lib/include/srsran/asn1/rrc/meascfg.h index 3bf2a370e..50df4845b 100644 --- a/lib/include/srsran/asn1/rrc/meascfg.h +++ b/lib/include/srsran/asn1/rrc/meascfg.h @@ -76,7 +76,7 @@ struct q_offset_range_opts { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated q_offset_range_e; @@ -90,18 +90,18 @@ struct speed_state_scale_factors_s { enum options { odot25, odot5, odot75, ldot0, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sf_medium_e_; struct sf_high_opts { enum options { odot25, odot5, odot75, ldot0, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sf_high_e_; @@ -120,7 +120,7 @@ struct band_ind_geran_opts { enum options { dcs1800, pcs1900, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated band_ind_geran_e; @@ -152,7 +152,7 @@ struct carrier_freqs_geran_s { struct types_opts { enum options { explicit_list_of_arfcns, equally_spaced_arfcns, variable_bit_map_of_arfcns, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -171,49 +171,37 @@ struct carrier_freqs_geran_s { // getters explicit_list_of_arfcns_l& explicit_list_of_arfcns() { - assert_choice_type("explicitListOfARFCNs", type_.to_string(), "followingARFCNs"); + assert_choice_type(types::explicit_list_of_arfcns, type_, "followingARFCNs"); return c.get(); } equally_spaced_arfcns_s_& equally_spaced_arfcns() { - assert_choice_type("equallySpacedARFCNs", type_.to_string(), "followingARFCNs"); + assert_choice_type(types::equally_spaced_arfcns, type_, "followingARFCNs"); return c.get(); } bounded_octstring<1, 16>& variable_bit_map_of_arfcns() { - assert_choice_type("variableBitMapOfARFCNs", type_.to_string(), "followingARFCNs"); + assert_choice_type(types::variable_bit_map_of_arfcns, type_, "followingARFCNs"); return c.get >(); } const explicit_list_of_arfcns_l& explicit_list_of_arfcns() const { - assert_choice_type("explicitListOfARFCNs", type_.to_string(), "followingARFCNs"); + assert_choice_type(types::explicit_list_of_arfcns, type_, "followingARFCNs"); return c.get(); } const equally_spaced_arfcns_s_& equally_spaced_arfcns() const { - assert_choice_type("equallySpacedARFCNs", type_.to_string(), "followingARFCNs"); + assert_choice_type(types::equally_spaced_arfcns, type_, "followingARFCNs"); return c.get(); } const bounded_octstring<1, 16>& variable_bit_map_of_arfcns() const { - assert_choice_type("variableBitMapOfARFCNs", type_.to_string(), "followingARFCNs"); - return c.get >(); - } - explicit_list_of_arfcns_l& set_explicit_list_of_arfcns() - { - set(types::explicit_list_of_arfcns); - return c.get(); - } - equally_spaced_arfcns_s_& set_equally_spaced_arfcns() - { - set(types::equally_spaced_arfcns); - return c.get(); - } - bounded_octstring<1, 16>& set_variable_bit_map_of_arfcns() - { - set(types::variable_bit_map_of_arfcns); + assert_choice_type(types::variable_bit_map_of_arfcns, type_, "followingARFCNs"); return c.get >(); } + explicit_list_of_arfcns_l& set_explicit_list_of_arfcns(); + equally_spaced_arfcns_s_& set_equally_spaced_arfcns(); + bounded_octstring<1, 16>& set_variable_bit_map_of_arfcns(); private: types type_; @@ -240,9 +228,9 @@ struct cell_resel_sub_prio_r13_opts { enum options { odot2, odot4, odot6, odot8, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated cell_resel_sub_prio_r13_e; @@ -253,7 +241,7 @@ struct mtc_ssb_nr_r15_s { enum options { sf5_r15, sf10_r15, sf20_r15, sf40_r15, sf80_r15, sf160_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -273,94 +261,70 @@ struct mtc_ssb_nr_r15_s { // getters uint8_t& sf5_r15() { - assert_choice_type("sf5-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf5_r15, type_, "periodicityAndOffset-r15"); return c.get(); } uint8_t& sf10_r15() { - assert_choice_type("sf10-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf10_r15, type_, "periodicityAndOffset-r15"); return c.get(); } uint8_t& sf20_r15() { - assert_choice_type("sf20-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf20_r15, type_, "periodicityAndOffset-r15"); return c.get(); } uint8_t& sf40_r15() { - assert_choice_type("sf40-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf40_r15, type_, "periodicityAndOffset-r15"); return c.get(); } uint8_t& sf80_r15() { - assert_choice_type("sf80-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf80_r15, type_, "periodicityAndOffset-r15"); return c.get(); } uint8_t& sf160_r15() { - assert_choice_type("sf160-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf160_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf5_r15() const { - assert_choice_type("sf5-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf5_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf10_r15() const { - assert_choice_type("sf10-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf10_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf20_r15() const { - assert_choice_type("sf20-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf20_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf40_r15() const { - assert_choice_type("sf40-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf40_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf80_r15() const { - assert_choice_type("sf80-r15", type_.to_string(), "periodicityAndOffset-r15"); + assert_choice_type(types::sf80_r15, type_, "periodicityAndOffset-r15"); return c.get(); } const uint8_t& sf160_r15() const { - assert_choice_type("sf160-r15", type_.to_string(), "periodicityAndOffset-r15"); - return c.get(); - } - uint8_t& set_sf5_r15() - { - set(types::sf5_r15); - return c.get(); - } - uint8_t& set_sf10_r15() - { - set(types::sf10_r15); - return c.get(); - } - uint8_t& set_sf20_r15() - { - set(types::sf20_r15); - return c.get(); - } - uint8_t& set_sf40_r15() - { - set(types::sf40_r15); - return c.get(); - } - uint8_t& set_sf80_r15() - { - set(types::sf80_r15); - return c.get(); - } - uint8_t& set_sf160_r15() - { - set(types::sf160_r15); + assert_choice_type(types::sf160_r15, type_, "periodicityAndOffset-r15"); return c.get(); } + uint8_t& set_sf5_r15(); + uint8_t& set_sf10_r15(); + uint8_t& set_sf20_r15(); + uint8_t& set_sf40_r15(); + uint8_t& set_sf80_r15(); + uint8_t& set_sf160_r15(); private: types type_; @@ -372,7 +336,7 @@ struct mtc_ssb_nr_r15_s { enum options { sf1, sf2, sf3, sf4, sf5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ssb_dur_r15_e_; @@ -413,7 +377,7 @@ struct ssb_to_measure_r15_c { struct types_opts { enum options { short_bitmap_r15, medium_bitmap_r15, long_bitmap_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -432,49 +396,37 @@ struct ssb_to_measure_r15_c { // getters fixed_bitstring<4>& short_bitmap_r15() { - assert_choice_type("shortBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); + assert_choice_type(types::short_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } fixed_bitstring<8>& medium_bitmap_r15() { - assert_choice_type("mediumBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); + assert_choice_type(types::medium_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } fixed_bitstring<64>& long_bitmap_r15() { - assert_choice_type("longBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); + assert_choice_type(types::long_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } const fixed_bitstring<4>& short_bitmap_r15() const { - assert_choice_type("shortBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); + assert_choice_type(types::short_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } const fixed_bitstring<8>& medium_bitmap_r15() const { - assert_choice_type("mediumBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); + assert_choice_type(types::medium_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } const fixed_bitstring<64>& long_bitmap_r15() const { - assert_choice_type("longBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15"); - return c.get >(); - } - fixed_bitstring<4>& set_short_bitmap_r15() - { - set(types::short_bitmap_r15); - return c.get >(); - } - fixed_bitstring<8>& set_medium_bitmap_r15() - { - set(types::medium_bitmap_r15); - return c.get >(); - } - fixed_bitstring<64>& set_long_bitmap_r15() - { - set(types::long_bitmap_r15); + assert_choice_type(types::long_bitmap_r15, type_, "SSB-ToMeasure-r15"); return c.get >(); } + fixed_bitstring<4>& set_short_bitmap_r15(); + fixed_bitstring<8>& set_medium_bitmap_r15(); + fixed_bitstring<64>& set_long_bitmap_r15(); private: types type_; @@ -506,7 +458,7 @@ struct mob_state_params_s { enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_eval_e_; @@ -514,7 +466,7 @@ struct mob_state_params_s { enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_hyst_normal_e_; @@ -722,20 +674,16 @@ struct bt_name_list_cfg_r15_c { // getters bt_name_list_r15_l& setup() { - assert_choice_type("setup", type_.to_string(), "BT-NameListConfig-r15"); + assert_choice_type(types::setup, type_, "BT-NameListConfig-r15"); return c; } const bt_name_list_r15_l& setup() const { - assert_choice_type("setup", type_.to_string(), "BT-NameListConfig-r15"); - return c; - } - void set_release() { set(types::release); } - bt_name_list_r15_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "BT-NameListConfig-r15"); return c; } + void set_release(); + bt_name_list_r15_l& set_setup(); private: types type_; @@ -750,7 +698,7 @@ struct cdma2000_type_opts { enum options { type1_xrtt, type_hrpd, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cdma2000_type_e; @@ -791,7 +739,7 @@ struct meas_cycle_scell_r10_opts { enum options { sf160, sf256, sf320, sf512, sf640, sf1024, sf1280, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated meas_cycle_scell_r10_e; @@ -804,7 +752,7 @@ struct meas_ds_cfg_r12_c { enum options { ms40_r12, ms80_r12, ms160_r12, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -824,49 +772,37 @@ struct meas_ds_cfg_r12_c { // getters uint8_t& ms40_r12() { - assert_choice_type("ms40-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); + assert_choice_type(types::ms40_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } uint8_t& ms80_r12() { - assert_choice_type("ms80-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); + assert_choice_type(types::ms80_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } uint8_t& ms160_r12() { - assert_choice_type("ms160-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); + assert_choice_type(types::ms160_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } const uint8_t& ms40_r12() const { - assert_choice_type("ms40-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); + assert_choice_type(types::ms40_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } const uint8_t& ms80_r12() const { - assert_choice_type("ms80-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); + assert_choice_type(types::ms80_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } const uint8_t& ms160_r12() const { - assert_choice_type("ms160-r12", type_.to_string(), "dmtc-PeriodOffset-r12"); - return c.get(); - } - uint8_t& set_ms40_r12() - { - set(types::ms40_r12); - return c.get(); - } - uint8_t& set_ms80_r12() - { - set(types::ms80_r12); - return c.get(); - } - uint8_t& set_ms160_r12() - { - set(types::ms160_r12); + assert_choice_type(types::ms160_r12, type_, "dmtc-PeriodOffset-r12"); return c.get(); } + uint8_t& set_ms40_r12(); + uint8_t& set_ms80_r12(); + uint8_t& set_ms160_r12(); private: types type_; @@ -878,7 +814,7 @@ struct meas_ds_cfg_r12_c { struct types_opts { enum options { dur_fdd_r12, dur_tdd_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -897,34 +833,26 @@ struct meas_ds_cfg_r12_c { // getters uint8_t& dur_fdd_r12() { - assert_choice_type("durationFDD-r12", type_.to_string(), "ds-OccasionDuration-r12"); + assert_choice_type(types::dur_fdd_r12, type_, "ds-OccasionDuration-r12"); return c.get(); } uint8_t& dur_tdd_r12() { - assert_choice_type("durationTDD-r12", type_.to_string(), "ds-OccasionDuration-r12"); + assert_choice_type(types::dur_tdd_r12, type_, "ds-OccasionDuration-r12"); return c.get(); } const uint8_t& dur_fdd_r12() const { - assert_choice_type("durationFDD-r12", type_.to_string(), "ds-OccasionDuration-r12"); + assert_choice_type(types::dur_fdd_r12, type_, "ds-OccasionDuration-r12"); return c.get(); } const uint8_t& dur_tdd_r12() const { - assert_choice_type("durationTDD-r12", type_.to_string(), "ds-OccasionDuration-r12"); - return c.get(); - } - uint8_t& set_dur_fdd_r12() - { - set(types::dur_fdd_r12); - return c.get(); - } - uint8_t& set_dur_tdd_r12() - { - set(types::dur_tdd_r12); + assert_choice_type(types::dur_tdd_r12, type_, "ds-OccasionDuration-r12"); return c.get(); } + uint8_t& set_dur_fdd_r12(); + uint8_t& set_dur_tdd_r12(); private: types type_; @@ -957,20 +885,16 @@ struct meas_ds_cfg_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasDS-Config-r12"); + assert_choice_type(types::setup, type_, "MeasDS-Config-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasDS-Config-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasDS-Config-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1007,7 +931,7 @@ struct meas_gap_cfg_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1024,304 +948,224 @@ struct meas_gap_cfg_c { // getters uint8_t& gp0() { - assert_choice_type("gp0", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp0, type_, "gapOffset"); return c.get(); } uint8_t& gp1() { - assert_choice_type("gp1", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp1, type_, "gapOffset"); return c.get(); } uint8_t& gp2_r14() { - assert_choice_type("gp2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp2_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp3_r14() { - assert_choice_type("gp3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp3_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp_ncsg0_r14() { - assert_choice_type("gp-ncsg0-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg0_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp_ncsg1_r14() { - assert_choice_type("gp-ncsg1-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg1_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp_ncsg2_r14() { - assert_choice_type("gp-ncsg2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg2_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp_ncsg3_r14() { - assert_choice_type("gp-ncsg3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg3_r14, type_, "gapOffset"); return c.get(); } uint16_t& gp_non_uniform1_r14() { - assert_choice_type("gp-nonUniform1-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform1_r14, type_, "gapOffset"); return c.get(); } uint16_t& gp_non_uniform2_r14() { - assert_choice_type("gp-nonUniform2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform2_r14, type_, "gapOffset"); return c.get(); } uint16_t& gp_non_uniform3_r14() { - assert_choice_type("gp-nonUniform3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform3_r14, type_, "gapOffset"); return c.get(); } uint16_t& gp_non_uniform4_r14() { - assert_choice_type("gp-nonUniform4-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform4_r14, type_, "gapOffset"); return c.get(); } uint8_t& gp4_r15() { - assert_choice_type("gp4-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp4_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp5_r15() { - assert_choice_type("gp5-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp5_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp6_r15() { - assert_choice_type("gp6-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp6_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp7_r15() { - assert_choice_type("gp7-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp7_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp8_r15() { - assert_choice_type("gp8-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp8_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp9_r15() { - assert_choice_type("gp9-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp9_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp10_r15() { - assert_choice_type("gp10-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp10_r15, type_, "gapOffset"); return c.get(); } uint8_t& gp11_r15() { - assert_choice_type("gp11-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp11_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp0() const { - assert_choice_type("gp0", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp0, type_, "gapOffset"); return c.get(); } const uint8_t& gp1() const { - assert_choice_type("gp1", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp1, type_, "gapOffset"); return c.get(); } const uint8_t& gp2_r14() const { - assert_choice_type("gp2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp2_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp3_r14() const { - assert_choice_type("gp3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp3_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp_ncsg0_r14() const { - assert_choice_type("gp-ncsg0-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg0_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp_ncsg1_r14() const { - assert_choice_type("gp-ncsg1-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg1_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp_ncsg2_r14() const { - assert_choice_type("gp-ncsg2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg2_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp_ncsg3_r14() const { - assert_choice_type("gp-ncsg3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_ncsg3_r14, type_, "gapOffset"); return c.get(); } const uint16_t& gp_non_uniform1_r14() const { - assert_choice_type("gp-nonUniform1-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform1_r14, type_, "gapOffset"); return c.get(); } const uint16_t& gp_non_uniform2_r14() const { - assert_choice_type("gp-nonUniform2-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform2_r14, type_, "gapOffset"); return c.get(); } const uint16_t& gp_non_uniform3_r14() const { - assert_choice_type("gp-nonUniform3-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform3_r14, type_, "gapOffset"); return c.get(); } const uint16_t& gp_non_uniform4_r14() const { - assert_choice_type("gp-nonUniform4-r14", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp_non_uniform4_r14, type_, "gapOffset"); return c.get(); } const uint8_t& gp4_r15() const { - assert_choice_type("gp4-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp4_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp5_r15() const { - assert_choice_type("gp5-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp5_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp6_r15() const { - assert_choice_type("gp6-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp6_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp7_r15() const { - assert_choice_type("gp7-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp7_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp8_r15() const { - assert_choice_type("gp8-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp8_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp9_r15() const { - assert_choice_type("gp9-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp9_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp10_r15() const { - assert_choice_type("gp10-r15", type_.to_string(), "gapOffset"); + assert_choice_type(types::gp10_r15, type_, "gapOffset"); return c.get(); } const uint8_t& gp11_r15() const { - assert_choice_type("gp11-r15", type_.to_string(), "gapOffset"); - return c.get(); - } - uint8_t& set_gp0() - { - set(types::gp0); - return c.get(); - } - uint8_t& set_gp1() - { - set(types::gp1); - return c.get(); - } - uint8_t& set_gp2_r14() - { - set(types::gp2_r14); - return c.get(); - } - uint8_t& set_gp3_r14() - { - set(types::gp3_r14); - return c.get(); - } - uint8_t& set_gp_ncsg0_r14() - { - set(types::gp_ncsg0_r14); - return c.get(); - } - uint8_t& set_gp_ncsg1_r14() - { - set(types::gp_ncsg1_r14); - return c.get(); - } - uint8_t& set_gp_ncsg2_r14() - { - set(types::gp_ncsg2_r14); - return c.get(); - } - uint8_t& set_gp_ncsg3_r14() - { - set(types::gp_ncsg3_r14); - return c.get(); - } - uint16_t& set_gp_non_uniform1_r14() - { - set(types::gp_non_uniform1_r14); - return c.get(); - } - uint16_t& set_gp_non_uniform2_r14() - { - set(types::gp_non_uniform2_r14); - return c.get(); - } - uint16_t& set_gp_non_uniform3_r14() - { - set(types::gp_non_uniform3_r14); - return c.get(); - } - uint16_t& set_gp_non_uniform4_r14() - { - set(types::gp_non_uniform4_r14); - return c.get(); - } - uint8_t& set_gp4_r15() - { - set(types::gp4_r15); - return c.get(); - } - uint8_t& set_gp5_r15() - { - set(types::gp5_r15); - return c.get(); - } - uint8_t& set_gp6_r15() - { - set(types::gp6_r15); - return c.get(); - } - uint8_t& set_gp7_r15() - { - set(types::gp7_r15); - return c.get(); - } - uint8_t& set_gp8_r15() - { - set(types::gp8_r15); - return c.get(); - } - uint8_t& set_gp9_r15() - { - set(types::gp9_r15); - return c.get(); - } - uint8_t& set_gp10_r15() - { - set(types::gp10_r15); - return c.get(); - } - uint8_t& set_gp11_r15() - { - set(types::gp11_r15); + assert_choice_type(types::gp11_r15, type_, "gapOffset"); return c.get(); } + uint8_t& set_gp0(); + uint8_t& set_gp1(); + uint8_t& set_gp2_r14(); + uint8_t& set_gp3_r14(); + uint8_t& set_gp_ncsg0_r14(); + uint8_t& set_gp_ncsg1_r14(); + uint8_t& set_gp_ncsg2_r14(); + uint8_t& set_gp_ncsg3_r14(); + uint16_t& set_gp_non_uniform1_r14(); + uint16_t& set_gp_non_uniform2_r14(); + uint16_t& set_gp_non_uniform3_r14(); + uint16_t& set_gp_non_uniform4_r14(); + uint8_t& set_gp4_r15(); + uint8_t& set_gp5_r15(); + uint8_t& set_gp6_r15(); + uint8_t& set_gp7_r15(); + uint8_t& set_gp8_r15(); + uint8_t& set_gp9_r15(); + uint8_t& set_gp10_r15(); + uint8_t& set_gp11_r15(); private: types type_; @@ -1345,20 +1189,16 @@ struct meas_gap_cfg_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasGapConfig"); + assert_choice_type(types::setup, type_, "MeasGapConfig"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasGapConfig"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasGapConfig"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1384,7 +1224,7 @@ struct meas_sensing_cfg_r15_s { enum options { ms20, ms50, ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sensing_periodicity_r15_e_; @@ -1424,20 +1264,16 @@ struct meas_sf_pattern_cfg_neigh_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasSubframePatternConfigNeigh-r10"); + assert_choice_type(types::setup, type_, "MeasSubframePatternConfigNeigh-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasSubframePatternConfigNeigh-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasSubframePatternConfigNeigh-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1481,7 +1317,7 @@ struct rmtc_cfg_r13_c { enum options { ms40, ms80, ms160, ms320, ms640, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated rmtc_period_r13_e_; @@ -1489,7 +1325,7 @@ struct rmtc_cfg_r13_c { enum options { sym1, sym14, sym28, sym42, sym70, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated meas_dur_r13_e_; @@ -1516,20 +1352,16 @@ struct rmtc_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RMTC-Config-r13"); + assert_choice_type(types::setup, type_, "RMTC-Config-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RMTC-Config-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RMTC-Config-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1542,7 +1374,7 @@ struct rs_cfg_ssb_nr_r15_s { enum options { khz15, khz30, khz120, khz240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r15_e_; @@ -1561,20 +1393,16 @@ struct rs_cfg_ssb_nr_r15_s { // getters ssb_to_measure_r15_c& setup() { - assert_choice_type("setup", type_.to_string(), "ssb-ToMeasure-r15"); + assert_choice_type(types::setup, type_, "ssb-ToMeasure-r15"); return c; } const ssb_to_measure_r15_c& setup() const { - assert_choice_type("setup", type_.to_string(), "ssb-ToMeasure-r15"); - return c; - } - void set_release() { set(types::release); } - ssb_to_measure_r15_c& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ssb-ToMeasure-r15"); return c; } + void set_release(); + ssb_to_measure_r15_c& set_setup(); private: types type_; @@ -1613,20 +1441,16 @@ struct rsrq_range_cfg_r12_c { // getters int8_t& setup() { - assert_choice_type("setup", type_.to_string(), "RSRQ-RangeConfig-r12"); + assert_choice_type(types::setup, type_, "RSRQ-RangeConfig-r12"); return c; } const int8_t& setup() const { - assert_choice_type("setup", type_.to_string(), "RSRQ-RangeConfig-r12"); - return c; - } - void set_release() { set(types::release); } - int8_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RSRQ-RangeConfig-r12"); return c; } + void set_release(); + int8_t& set_setup(); private: types type_; @@ -1656,7 +1480,7 @@ struct report_interv_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated report_interv_e; @@ -1700,7 +1524,7 @@ struct thres_eutra_c { struct types_opts { enum options { thres_rsrp, thres_rsrq, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1719,34 +1543,26 @@ struct thres_eutra_c { // getters uint8_t& thres_rsrp() { - assert_choice_type("threshold-RSRP", type_.to_string(), "ThresholdEUTRA"); + assert_choice_type(types::thres_rsrp, type_, "ThresholdEUTRA"); return c.get(); } uint8_t& thres_rsrq() { - assert_choice_type("threshold-RSRQ", type_.to_string(), "ThresholdEUTRA"); + assert_choice_type(types::thres_rsrq, type_, "ThresholdEUTRA"); return c.get(); } const uint8_t& thres_rsrp() const { - assert_choice_type("threshold-RSRP", type_.to_string(), "ThresholdEUTRA"); + assert_choice_type(types::thres_rsrp, type_, "ThresholdEUTRA"); return c.get(); } const uint8_t& thres_rsrq() const { - assert_choice_type("threshold-RSRQ", type_.to_string(), "ThresholdEUTRA"); - return c.get(); - } - uint8_t& set_thres_rsrp() - { - set(types::thres_rsrp); - return c.get(); - } - uint8_t& set_thres_rsrq() - { - set(types::thres_rsrq); + assert_choice_type(types::thres_rsrq, type_, "ThresholdEUTRA"); return c.get(); } + uint8_t& set_thres_rsrp(); + uint8_t& set_thres_rsrq(); private: types type_; @@ -1760,7 +1576,7 @@ struct thres_nr_r15_c { struct types_opts { enum options { nr_rsrp_r15, nr_rsrq_r15, nr_sinr_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1779,49 +1595,37 @@ struct thres_nr_r15_c { // getters uint8_t& nr_rsrp_r15() { - assert_choice_type("nr-RSRP-r15", type_.to_string(), "ThresholdNR-r15"); + assert_choice_type(types::nr_rsrp_r15, type_, "ThresholdNR-r15"); return c.get(); } uint8_t& nr_rsrq_r15() { - assert_choice_type("nr-RSRQ-r15", type_.to_string(), "ThresholdNR-r15"); + assert_choice_type(types::nr_rsrq_r15, type_, "ThresholdNR-r15"); return c.get(); } uint8_t& nr_sinr_r15() { - assert_choice_type("nr-SINR-r15", type_.to_string(), "ThresholdNR-r15"); + assert_choice_type(types::nr_sinr_r15, type_, "ThresholdNR-r15"); return c.get(); } const uint8_t& nr_rsrp_r15() const { - assert_choice_type("nr-RSRP-r15", type_.to_string(), "ThresholdNR-r15"); + assert_choice_type(types::nr_rsrp_r15, type_, "ThresholdNR-r15"); return c.get(); } const uint8_t& nr_rsrq_r15() const { - assert_choice_type("nr-RSRQ-r15", type_.to_string(), "ThresholdNR-r15"); + assert_choice_type(types::nr_rsrq_r15, type_, "ThresholdNR-r15"); return c.get(); } const uint8_t& nr_sinr_r15() const { - assert_choice_type("nr-SINR-r15", type_.to_string(), "ThresholdNR-r15"); - return c.get(); - } - uint8_t& set_nr_rsrp_r15() - { - set(types::nr_rsrp_r15); - return c.get(); - } - uint8_t& set_nr_rsrq_r15() - { - set(types::nr_rsrq_r15); - return c.get(); - } - uint8_t& set_nr_sinr_r15() - { - set(types::nr_sinr_r15); + assert_choice_type(types::nr_sinr_r15, type_, "ThresholdNR-r15"); return c.get(); } + uint8_t& set_nr_rsrp_r15(); + uint8_t& set_nr_rsrq_r15(); + uint8_t& set_nr_sinr_r15(); private: types type_; @@ -1836,7 +1640,7 @@ struct thres_utra_c { enum options { utra_rscp, utra_ec_n0, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1856,34 +1660,26 @@ struct thres_utra_c { // getters int8_t& utra_rscp() { - assert_choice_type("utra-RSCP", type_.to_string(), "ThresholdUTRA"); + assert_choice_type(types::utra_rscp, type_, "ThresholdUTRA"); return c.get(); } uint8_t& utra_ec_n0() { - assert_choice_type("utra-EcN0", type_.to_string(), "ThresholdUTRA"); + assert_choice_type(types::utra_ec_n0, type_, "ThresholdUTRA"); return c.get(); } const int8_t& utra_rscp() const { - assert_choice_type("utra-RSCP", type_.to_string(), "ThresholdUTRA"); + assert_choice_type(types::utra_rscp, type_, "ThresholdUTRA"); return c.get(); } const uint8_t& utra_ec_n0() const { - assert_choice_type("utra-EcN0", type_.to_string(), "ThresholdUTRA"); - return c.get(); - } - int8_t& set_utra_rscp() - { - set(types::utra_rscp); - return c.get(); - } - uint8_t& set_utra_ec_n0() - { - set(types::utra_ec_n0); + assert_choice_type(types::utra_ec_n0, type_, "ThresholdUTRA"); return c.get(); } + int8_t& set_utra_rscp(); + uint8_t& set_utra_ec_n0(); private: types type_; @@ -1915,7 +1711,7 @@ struct time_to_trigger_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated time_to_trigger_e; @@ -1948,7 +1744,7 @@ struct ul_delay_cfg_r13_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated delay_thres_r13_e_; @@ -1970,20 +1766,16 @@ struct ul_delay_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "UL-DelayConfig-r13"); + assert_choice_type(types::setup, type_, "UL-DelayConfig-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "UL-DelayConfig-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "UL-DelayConfig-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1995,7 +1787,7 @@ struct wlan_carrier_info_r13_s { struct country_code_r13_opts { enum options { united_states, europe, japan, global, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated country_code_r13_e_; @@ -2036,20 +1828,16 @@ struct wlan_name_list_cfg_r15_c { // getters wlan_name_list_r15_l& setup() { - assert_choice_type("setup", type_.to_string(), "WLAN-NameListConfig-r15"); + assert_choice_type(types::setup, type_, "WLAN-NameListConfig-r15"); return c; } const wlan_name_list_r15_l& setup() const { - assert_choice_type("setup", type_.to_string(), "WLAN-NameListConfig-r15"); - return c; - } - void set_release() { set(types::release); } - wlan_name_list_r15_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "WLAN-NameListConfig-r15"); return c; } + void set_release(); + wlan_name_list_r15_l& set_setup(); private: types type_; @@ -2102,7 +1890,7 @@ struct meas_obj_eutra_s { enum options { ms0, ms50, ms100, ms200, ms300, ms400, ms500, ms1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated setup_e_; @@ -2120,20 +1908,16 @@ struct meas_obj_eutra_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "t312-r12"); + assert_choice_type(types::setup, type_, "t312-r12"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "t312-r12"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "t312-r12"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -2243,20 +2027,16 @@ struct meas_obj_nr_r15_s { // getters uint16_t& setup() { - assert_choice_type("setup", type_.to_string(), "bandNR-r15"); + assert_choice_type(types::setup, type_, "bandNR-r15"); return c; } const uint16_t& setup() const { - assert_choice_type("setup", type_.to_string(), "bandNR-r15"); - return c; - } - void set_release() { set(types::release); } - uint16_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "bandNR-r15"); return c; } + void set_release(); + uint16_t& set_setup(); private: types type_; @@ -2303,7 +2083,7 @@ struct meas_obj_utra_s { struct types_opts { enum options { cells_to_add_mod_list_utra_fdd, cells_to_add_mod_list_utra_tdd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2322,34 +2102,26 @@ struct meas_obj_utra_s { // getters cells_to_add_mod_list_utra_fdd_l& cells_to_add_mod_list_utra_fdd() { - assert_choice_type("cellsToAddModListUTRA-FDD", type_.to_string(), "cellsToAddModList"); + assert_choice_type(types::cells_to_add_mod_list_utra_fdd, type_, "cellsToAddModList"); return c.get(); } cells_to_add_mod_list_utra_tdd_l& cells_to_add_mod_list_utra_tdd() { - assert_choice_type("cellsToAddModListUTRA-TDD", type_.to_string(), "cellsToAddModList"); + assert_choice_type(types::cells_to_add_mod_list_utra_tdd, type_, "cellsToAddModList"); return c.get(); } const cells_to_add_mod_list_utra_fdd_l& cells_to_add_mod_list_utra_fdd() const { - assert_choice_type("cellsToAddModListUTRA-FDD", type_.to_string(), "cellsToAddModList"); + assert_choice_type(types::cells_to_add_mod_list_utra_fdd, type_, "cellsToAddModList"); return c.get(); } const cells_to_add_mod_list_utra_tdd_l& cells_to_add_mod_list_utra_tdd() const { - assert_choice_type("cellsToAddModListUTRA-TDD", type_.to_string(), "cellsToAddModList"); - return c.get(); - } - cells_to_add_mod_list_utra_fdd_l& set_cells_to_add_mod_list_utra_fdd() - { - set(types::cells_to_add_mod_list_utra_fdd); - return c.get(); - } - cells_to_add_mod_list_utra_tdd_l& set_cells_to_add_mod_list_utra_tdd() - { - set(types::cells_to_add_mod_list_utra_tdd); + assert_choice_type(types::cells_to_add_mod_list_utra_tdd, type_, "cellsToAddModList"); return c.get(); } + cells_to_add_mod_list_utra_fdd_l& set_cells_to_add_mod_list_utra_fdd(); + cells_to_add_mod_list_utra_tdd_l& set_cells_to_add_mod_list_utra_tdd(); private: types type_; @@ -2361,7 +2133,7 @@ struct meas_obj_utra_s { struct types_opts { enum options { utra_fdd, utra_tdd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2380,34 +2152,26 @@ struct meas_obj_utra_s { // getters uint16_t& utra_fdd() { - assert_choice_type("utra-FDD", type_.to_string(), "cellForWhichToReportCGI"); + assert_choice_type(types::utra_fdd, type_, "cellForWhichToReportCGI"); return c.get(); } uint8_t& utra_tdd() { - assert_choice_type("utra-TDD", type_.to_string(), "cellForWhichToReportCGI"); + assert_choice_type(types::utra_tdd, type_, "cellForWhichToReportCGI"); return c.get(); } const uint16_t& utra_fdd() const { - assert_choice_type("utra-FDD", type_.to_string(), "cellForWhichToReportCGI"); + assert_choice_type(types::utra_fdd, type_, "cellForWhichToReportCGI"); return c.get(); } const uint8_t& utra_tdd() const { - assert_choice_type("utra-TDD", type_.to_string(), "cellForWhichToReportCGI"); - return c.get(); - } - uint16_t& set_utra_fdd() - { - set(types::utra_fdd); - return c.get(); - } - uint8_t& set_utra_tdd() - { - set(types::utra_tdd); + assert_choice_type(types::utra_tdd, type_, "cellForWhichToReportCGI"); return c.get(); } + uint16_t& set_utra_fdd(); + uint8_t& set_utra_tdd(); private: types type_; @@ -2450,7 +2214,7 @@ struct meas_obj_wlan_r13_s { struct types_opts { enum options { band_ind_list_wlan_r13, carrier_info_list_wlan_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2469,34 +2233,26 @@ struct meas_obj_wlan_r13_s { // getters band_ind_list_wlan_r13_l_& band_ind_list_wlan_r13() { - assert_choice_type("bandIndicatorListWLAN-r13", type_.to_string(), "carrierFreq-r13"); + assert_choice_type(types::band_ind_list_wlan_r13, type_, "carrierFreq-r13"); return c.get(); } carrier_info_list_wlan_r13_l_& carrier_info_list_wlan_r13() { - assert_choice_type("carrierInfoListWLAN-r13", type_.to_string(), "carrierFreq-r13"); + assert_choice_type(types::carrier_info_list_wlan_r13, type_, "carrierFreq-r13"); return c.get(); } const band_ind_list_wlan_r13_l_& band_ind_list_wlan_r13() const { - assert_choice_type("bandIndicatorListWLAN-r13", type_.to_string(), "carrierFreq-r13"); + assert_choice_type(types::band_ind_list_wlan_r13, type_, "carrierFreq-r13"); return c.get(); } const carrier_info_list_wlan_r13_l_& carrier_info_list_wlan_r13() const { - assert_choice_type("carrierInfoListWLAN-r13", type_.to_string(), "carrierFreq-r13"); - return c.get(); - } - band_ind_list_wlan_r13_l_& set_band_ind_list_wlan_r13() - { - set(types::band_ind_list_wlan_r13); - return c.get(); - } - carrier_info_list_wlan_r13_l_& set_carrier_info_list_wlan_r13() - { - set(types::carrier_info_list_wlan_r13); + assert_choice_type(types::carrier_info_list_wlan_r13, type_, "carrierFreq-r13"); return c.get(); } + band_ind_list_wlan_r13_l_& set_band_ind_list_wlan_r13(); + carrier_info_list_wlan_r13_l_& set_carrier_info_list_wlan_r13(); private: types type_; @@ -2601,7 +2357,7 @@ struct eutra_event_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2620,184 +2376,136 @@ struct eutra_event_s { // getters event_a1_s_& event_a1() { - assert_choice_type("eventA1", type_.to_string(), "eventId"); + assert_choice_type(types::event_a1, type_, "eventId"); return c.get(); } event_a2_s_& event_a2() { - assert_choice_type("eventA2", type_.to_string(), "eventId"); + assert_choice_type(types::event_a2, type_, "eventId"); return c.get(); } event_a3_s_& event_a3() { - assert_choice_type("eventA3", type_.to_string(), "eventId"); + assert_choice_type(types::event_a3, type_, "eventId"); return c.get(); } event_a4_s_& event_a4() { - assert_choice_type("eventA4", type_.to_string(), "eventId"); + assert_choice_type(types::event_a4, type_, "eventId"); return c.get(); } event_a5_s_& event_a5() { - assert_choice_type("eventA5", type_.to_string(), "eventId"); + assert_choice_type(types::event_a5, type_, "eventId"); return c.get(); } event_a6_r10_s_& event_a6_r10() { - assert_choice_type("eventA6-r10", type_.to_string(), "eventId"); + assert_choice_type(types::event_a6_r10, type_, "eventId"); return c.get(); } event_c1_r12_s_& event_c1_r12() { - assert_choice_type("eventC1-r12", type_.to_string(), "eventId"); + assert_choice_type(types::event_c1_r12, type_, "eventId"); return c.get(); } event_c2_r12_s_& event_c2_r12() { - assert_choice_type("eventC2-r12", type_.to_string(), "eventId"); + assert_choice_type(types::event_c2_r12, type_, "eventId"); return c.get(); } event_v1_r14_s_& event_v1_r14() { - assert_choice_type("eventV1-r14", type_.to_string(), "eventId"); + assert_choice_type(types::event_v1_r14, type_, "eventId"); return c.get(); } event_v2_r14_s_& event_v2_r14() { - assert_choice_type("eventV2-r14", type_.to_string(), "eventId"); + assert_choice_type(types::event_v2_r14, type_, "eventId"); return c.get(); } event_h1_r15_s_& event_h1_r15() { - assert_choice_type("eventH1-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_h1_r15, type_, "eventId"); return c.get(); } event_h2_r15_s_& event_h2_r15() { - assert_choice_type("eventH2-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_h2_r15, type_, "eventId"); return c.get(); } const event_a1_s_& event_a1() const { - assert_choice_type("eventA1", type_.to_string(), "eventId"); + assert_choice_type(types::event_a1, type_, "eventId"); return c.get(); } const event_a2_s_& event_a2() const { - assert_choice_type("eventA2", type_.to_string(), "eventId"); + assert_choice_type(types::event_a2, type_, "eventId"); return c.get(); } const event_a3_s_& event_a3() const { - assert_choice_type("eventA3", type_.to_string(), "eventId"); + assert_choice_type(types::event_a3, type_, "eventId"); return c.get(); } const event_a4_s_& event_a4() const { - assert_choice_type("eventA4", type_.to_string(), "eventId"); + assert_choice_type(types::event_a4, type_, "eventId"); return c.get(); } const event_a5_s_& event_a5() const { - assert_choice_type("eventA5", type_.to_string(), "eventId"); + assert_choice_type(types::event_a5, type_, "eventId"); return c.get(); } const event_a6_r10_s_& event_a6_r10() const { - assert_choice_type("eventA6-r10", type_.to_string(), "eventId"); + assert_choice_type(types::event_a6_r10, type_, "eventId"); return c.get(); } const event_c1_r12_s_& event_c1_r12() const { - assert_choice_type("eventC1-r12", type_.to_string(), "eventId"); + assert_choice_type(types::event_c1_r12, type_, "eventId"); return c.get(); } const event_c2_r12_s_& event_c2_r12() const { - assert_choice_type("eventC2-r12", type_.to_string(), "eventId"); + assert_choice_type(types::event_c2_r12, type_, "eventId"); return c.get(); } const event_v1_r14_s_& event_v1_r14() const { - assert_choice_type("eventV1-r14", type_.to_string(), "eventId"); + assert_choice_type(types::event_v1_r14, type_, "eventId"); return c.get(); } const event_v2_r14_s_& event_v2_r14() const { - assert_choice_type("eventV2-r14", type_.to_string(), "eventId"); + assert_choice_type(types::event_v2_r14, type_, "eventId"); return c.get(); } const event_h1_r15_s_& event_h1_r15() const { - assert_choice_type("eventH1-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_h1_r15, type_, "eventId"); return c.get(); } const event_h2_r15_s_& event_h2_r15() const { - assert_choice_type("eventH2-r15", type_.to_string(), "eventId"); - return c.get(); - } - event_a1_s_& set_event_a1() - { - set(types::event_a1); - return c.get(); - } - event_a2_s_& set_event_a2() - { - set(types::event_a2); - return c.get(); - } - event_a3_s_& set_event_a3() - { - set(types::event_a3); - return c.get(); - } - event_a4_s_& set_event_a4() - { - set(types::event_a4); - return c.get(); - } - event_a5_s_& set_event_a5() - { - set(types::event_a5); - return c.get(); - } - event_a6_r10_s_& set_event_a6_r10() - { - set(types::event_a6_r10); - return c.get(); - } - event_c1_r12_s_& set_event_c1_r12() - { - set(types::event_c1_r12); - return c.get(); - } - event_c2_r12_s_& set_event_c2_r12() - { - set(types::event_c2_r12); - return c.get(); - } - event_v1_r14_s_& set_event_v1_r14() - { - set(types::event_v1_r14); - return c.get(); - } - event_v2_r14_s_& set_event_v2_r14() - { - set(types::event_v2_r14); - return c.get(); - } - event_h1_r15_s_& set_event_h1_r15() - { - set(types::event_h1_r15); - return c.get(); - } - event_h2_r15_s_& set_event_h2_r15() - { - set(types::event_h2_r15); + assert_choice_type(types::event_h2_r15, type_, "eventId"); return c.get(); } + event_a1_s_& set_event_a1(); + event_a2_s_& set_event_a2(); + event_a3_s_& set_event_a3(); + event_a4_s_& set_event_a4(); + event_a5_s_& set_event_a5(); + event_a6_r10_s_& set_event_a6_r10(); + event_c1_r12_s_& set_event_c1_r12(); + event_c2_r12_s_& set_event_c2_r12(); + event_v1_r14_s_& set_event_v1_r14(); + event_v2_r14_s_& set_event_v2_r14(); + event_h1_r15_s_& set_event_h1_r15(); + event_h2_r15_s_& set_event_h2_r15(); private: types type_; @@ -2839,7 +2547,7 @@ struct report_cfg_eutra_s { struct purpose_opts { enum options { report_strongest_cells, report_cgi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated purpose_e_; @@ -2849,7 +2557,7 @@ struct report_cfg_eutra_s { struct types_opts { enum options { event, periodical, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2868,34 +2576,26 @@ struct report_cfg_eutra_s { // getters event_s_& event() { - assert_choice_type("event", type_.to_string(), "triggerType"); + assert_choice_type(types::event, type_, "triggerType"); return c.get(); } periodical_s_& periodical() { - assert_choice_type("periodical", type_.to_string(), "triggerType"); + assert_choice_type(types::periodical, type_, "triggerType"); return c.get(); } const event_s_& event() const { - assert_choice_type("event", type_.to_string(), "triggerType"); + assert_choice_type(types::event, type_, "triggerType"); return c.get(); } const periodical_s_& periodical() const { - assert_choice_type("periodical", type_.to_string(), "triggerType"); - return c.get(); - } - event_s_& set_event() - { - set(types::event); - return c.get(); - } - periodical_s_& set_periodical() - { - set(types::periodical); + assert_choice_type(types::periodical, type_, "triggerType"); return c.get(); } + event_s_& set_event(); + periodical_s_& set_periodical(); private: types type_; @@ -2906,20 +2606,20 @@ struct report_cfg_eutra_s { struct trigger_quant_opts { enum options { rsrp, rsrq, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated trigger_quant_e_; struct report_quant_opts { enum options { same_as_trigger_quant, both, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated report_quant_e_; struct report_amount_opts { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -2938,20 +2638,16 @@ struct report_cfg_eutra_s { // getters time_to_trigger_e& setup() { - assert_choice_type("setup", type_.to_string(), "alternativeTimeToTrigger-r12"); + assert_choice_type(types::setup, type_, "alternativeTimeToTrigger-r12"); return c; } const time_to_trigger_e& setup() const { - assert_choice_type("setup", type_.to_string(), "alternativeTimeToTrigger-r12"); - return c; - } - void set_release() { set(types::release); } - time_to_trigger_e& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "alternativeTimeToTrigger-r12"); return c; } + void set_release(); + time_to_trigger_e& set_setup(); private: types type_; @@ -2962,7 +2658,7 @@ struct report_cfg_eutra_s { struct report_quant_v1310_opts { enum options { rsrp_andsinr, rsrq_andsinr, all, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated report_quant_v1310_e_; @@ -2988,20 +2684,16 @@ struct report_cfg_eutra_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "rs-sinr-Config-r13"); + assert_choice_type(types::setup, type_, "rs-sinr-Config-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "rs-sinr-Config-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "rs-sinr-Config-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3010,7 +2702,7 @@ struct report_cfg_eutra_s { struct purpose_v1430_opts { enum options { report_location, sidelink, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated purpose_v1430_e_; @@ -3088,7 +2780,7 @@ struct report_cfg_inter_rat_s { struct types_opts { enum options { b1_thres_utra, b1_thres_geran, b1_thres_cdma2000, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3107,49 +2799,37 @@ struct report_cfg_inter_rat_s { // getters thres_utra_c& b1_thres_utra() { - assert_choice_type("b1-ThresholdUTRA", type_.to_string(), "b1-Threshold"); + assert_choice_type(types::b1_thres_utra, type_, "b1-Threshold"); return c.get(); } uint8_t& b1_thres_geran() { - assert_choice_type("b1-ThresholdGERAN", type_.to_string(), "b1-Threshold"); + assert_choice_type(types::b1_thres_geran, type_, "b1-Threshold"); return c.get(); } uint8_t& b1_thres_cdma2000() { - assert_choice_type("b1-ThresholdCDMA2000", type_.to_string(), "b1-Threshold"); + assert_choice_type(types::b1_thres_cdma2000, type_, "b1-Threshold"); return c.get(); } const thres_utra_c& b1_thres_utra() const { - assert_choice_type("b1-ThresholdUTRA", type_.to_string(), "b1-Threshold"); + assert_choice_type(types::b1_thres_utra, type_, "b1-Threshold"); return c.get(); } const uint8_t& b1_thres_geran() const { - assert_choice_type("b1-ThresholdGERAN", type_.to_string(), "b1-Threshold"); + assert_choice_type(types::b1_thres_geran, type_, "b1-Threshold"); return c.get(); } const uint8_t& b1_thres_cdma2000() const { - assert_choice_type("b1-ThresholdCDMA2000", type_.to_string(), "b1-Threshold"); - return c.get(); - } - thres_utra_c& set_b1_thres_utra() - { - set(types::b1_thres_utra); - return c.get(); - } - uint8_t& set_b1_thres_geran() - { - set(types::b1_thres_geran); - return c.get(); - } - uint8_t& set_b1_thres_cdma2000() - { - set(types::b1_thres_cdma2000); + assert_choice_type(types::b1_thres_cdma2000, type_, "b1-Threshold"); return c.get(); } + thres_utra_c& set_b1_thres_utra(); + uint8_t& set_b1_thres_geran(); + uint8_t& set_b1_thres_cdma2000(); private: types type_; @@ -3166,7 +2846,7 @@ struct report_cfg_inter_rat_s { struct types_opts { enum options { b2_thres2_utra, b2_thres2_geran, b2_thres2_cdma2000, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3185,49 +2865,37 @@ struct report_cfg_inter_rat_s { // getters thres_utra_c& b2_thres2_utra() { - assert_choice_type("b2-Threshold2UTRA", type_.to_string(), "b2-Threshold2"); + assert_choice_type(types::b2_thres2_utra, type_, "b2-Threshold2"); return c.get(); } uint8_t& b2_thres2_geran() { - assert_choice_type("b2-Threshold2GERAN", type_.to_string(), "b2-Threshold2"); + assert_choice_type(types::b2_thres2_geran, type_, "b2-Threshold2"); return c.get(); } uint8_t& b2_thres2_cdma2000() { - assert_choice_type("b2-Threshold2CDMA2000", type_.to_string(), "b2-Threshold2"); + assert_choice_type(types::b2_thres2_cdma2000, type_, "b2-Threshold2"); return c.get(); } const thres_utra_c& b2_thres2_utra() const { - assert_choice_type("b2-Threshold2UTRA", type_.to_string(), "b2-Threshold2"); + assert_choice_type(types::b2_thres2_utra, type_, "b2-Threshold2"); return c.get(); } const uint8_t& b2_thres2_geran() const { - assert_choice_type("b2-Threshold2GERAN", type_.to_string(), "b2-Threshold2"); + assert_choice_type(types::b2_thres2_geran, type_, "b2-Threshold2"); return c.get(); } const uint8_t& b2_thres2_cdma2000() const { - assert_choice_type("b2-Threshold2CDMA2000", type_.to_string(), "b2-Threshold2"); - return c.get(); - } - thres_utra_c& set_b2_thres2_utra() - { - set(types::b2_thres2_utra); - return c.get(); - } - uint8_t& set_b2_thres2_geran() - { - set(types::b2_thres2_geran); - return c.get(); - } - uint8_t& set_b2_thres2_cdma2000() - { - set(types::b2_thres2_cdma2000); + assert_choice_type(types::b2_thres2_cdma2000, type_, "b2-Threshold2"); return c.get(); } + thres_utra_c& set_b2_thres2_utra(); + uint8_t& set_b2_thres2_geran(); + uint8_t& set_b2_thres2_cdma2000(); private: types type_; @@ -3272,7 +2940,7 @@ struct report_cfg_inter_rat_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3291,109 +2959,81 @@ struct report_cfg_inter_rat_s { // getters event_b1_s_& event_b1() { - assert_choice_type("eventB1", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1, type_, "eventId"); return c.get(); } event_b2_s_& event_b2() { - assert_choice_type("eventB2", type_.to_string(), "eventId"); + assert_choice_type(types::event_b2, type_, "eventId"); return c.get(); } event_w1_r13_s_& event_w1_r13() { - assert_choice_type("eventW1-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w1_r13, type_, "eventId"); return c.get(); } event_w2_r13_s_& event_w2_r13() { - assert_choice_type("eventW2-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w2_r13, type_, "eventId"); return c.get(); } event_w3_r13_s_& event_w3_r13() { - assert_choice_type("eventW3-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w3_r13, type_, "eventId"); return c.get(); } event_b1_nr_r15_s_& event_b1_nr_r15() { - assert_choice_type("eventB1-NR-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1_nr_r15, type_, "eventId"); return c.get(); } event_b2_nr_r15_s_& event_b2_nr_r15() { - assert_choice_type("eventB2-NR-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_b2_nr_r15, type_, "eventId"); return c.get(); } const event_b1_s_& event_b1() const { - assert_choice_type("eventB1", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1, type_, "eventId"); return c.get(); } const event_b2_s_& event_b2() const { - assert_choice_type("eventB2", type_.to_string(), "eventId"); + assert_choice_type(types::event_b2, type_, "eventId"); return c.get(); } const event_w1_r13_s_& event_w1_r13() const { - assert_choice_type("eventW1-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w1_r13, type_, "eventId"); return c.get(); } const event_w2_r13_s_& event_w2_r13() const { - assert_choice_type("eventW2-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w2_r13, type_, "eventId"); return c.get(); } const event_w3_r13_s_& event_w3_r13() const { - assert_choice_type("eventW3-r13", type_.to_string(), "eventId"); + assert_choice_type(types::event_w3_r13, type_, "eventId"); return c.get(); } const event_b1_nr_r15_s_& event_b1_nr_r15() const { - assert_choice_type("eventB1-NR-r15", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1_nr_r15, type_, "eventId"); return c.get(); } const event_b2_nr_r15_s_& event_b2_nr_r15() const { - assert_choice_type("eventB2-NR-r15", type_.to_string(), "eventId"); - return c.get(); - } - event_b1_s_& set_event_b1() - { - set(types::event_b1); - return c.get(); - } - event_b2_s_& set_event_b2() - { - set(types::event_b2); - return c.get(); - } - event_w1_r13_s_& set_event_w1_r13() - { - set(types::event_w1_r13); - return c.get(); - } - event_w2_r13_s_& set_event_w2_r13() - { - set(types::event_w2_r13); - return c.get(); - } - event_w3_r13_s_& set_event_w3_r13() - { - set(types::event_w3_r13); - return c.get(); - } - event_b1_nr_r15_s_& set_event_b1_nr_r15() - { - set(types::event_b1_nr_r15); - return c.get(); - } - event_b2_nr_r15_s_& set_event_b2_nr_r15() - { - set(types::event_b2_nr_r15); + assert_choice_type(types::event_b2_nr_r15, type_, "eventId"); return c.get(); } + event_b1_s_& set_event_b1(); + event_b2_s_& set_event_b2(); + event_w1_r13_s_& set_event_w1_r13(); + event_w2_r13_s_& set_event_w2_r13(); + event_w3_r13_s_& set_event_w3_r13(); + event_b1_nr_r15_s_& set_event_b1_nr_r15(); + event_b2_nr_r15_s_& set_event_b2_nr_r15(); private: types type_; @@ -3418,7 +3058,7 @@ struct report_cfg_inter_rat_s { struct purpose_opts { enum options { report_strongest_cells, report_strongest_cells_for_son, report_cgi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated purpose_e_; @@ -3428,7 +3068,7 @@ struct report_cfg_inter_rat_s { struct types_opts { enum options { event, periodical, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3447,34 +3087,26 @@ struct report_cfg_inter_rat_s { // getters event_s_& event() { - assert_choice_type("event", type_.to_string(), "triggerType"); + assert_choice_type(types::event, type_, "triggerType"); return c.get(); } periodical_s_& periodical() { - assert_choice_type("periodical", type_.to_string(), "triggerType"); + assert_choice_type(types::periodical, type_, "triggerType"); return c.get(); } const event_s_& event() const { - assert_choice_type("event", type_.to_string(), "triggerType"); + assert_choice_type(types::event, type_, "triggerType"); return c.get(); } const periodical_s_& periodical() const { - assert_choice_type("periodical", type_.to_string(), "triggerType"); - return c.get(); - } - event_s_& set_event() - { - set(types::event); - return c.get(); - } - periodical_s_& set_periodical() - { - set(types::periodical); + assert_choice_type(types::periodical, type_, "triggerType"); return c.get(); } + event_s_& set_event(); + periodical_s_& set_periodical(); private: types type_; @@ -3486,7 +3118,7 @@ struct report_cfg_inter_rat_s { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -3505,20 +3137,16 @@ struct report_cfg_inter_rat_s { // getters int8_t& setup() { - assert_choice_type("setup", type_.to_string(), "b2-Threshold1-v1250"); + assert_choice_type(types::setup, type_, "b2-Threshold1-v1250"); return c; } const int8_t& setup() const { - assert_choice_type("setup", type_.to_string(), "b2-Threshold1-v1250"); - return c; - } - void set_release() { set(types::release); } - int8_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "b2-Threshold1-v1250"); return c; } + void set_release(); + int8_t& set_setup(); private: types type_; @@ -3527,7 +3155,7 @@ struct report_cfg_inter_rat_s { struct report_sftd_meas_r15_opts { enum options { pscell, neighbor_cells, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated report_sftd_meas_r15_e_; @@ -3629,7 +3257,7 @@ struct meas_obj_to_add_mod_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -3649,94 +3277,70 @@ struct meas_obj_to_add_mod_s { // getters meas_obj_eutra_s& meas_obj_eutra() { - assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_eutra, type_, "measObject"); return c.get(); } meas_obj_utra_s& meas_obj_utra() { - assert_choice_type("measObjectUTRA", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_utra, type_, "measObject"); return c.get(); } meas_obj_geran_s& meas_obj_geran() { - assert_choice_type("measObjectGERAN", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_geran, type_, "measObject"); return c.get(); } meas_obj_cdma2000_s& meas_obj_cdma2000() { - assert_choice_type("measObjectCDMA2000", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_cdma2000, type_, "measObject"); return c.get(); } meas_obj_wlan_r13_s& meas_obj_wlan_r13() { - assert_choice_type("measObjectWLAN-r13", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_wlan_r13, type_, "measObject"); return c.get(); } meas_obj_nr_r15_s& meas_obj_nr_r15() { - assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_nr_r15, type_, "measObject"); return c.get(); } const meas_obj_eutra_s& meas_obj_eutra() const { - assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_eutra, type_, "measObject"); return c.get(); } const meas_obj_utra_s& meas_obj_utra() const { - assert_choice_type("measObjectUTRA", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_utra, type_, "measObject"); return c.get(); } const meas_obj_geran_s& meas_obj_geran() const { - assert_choice_type("measObjectGERAN", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_geran, type_, "measObject"); return c.get(); } const meas_obj_cdma2000_s& meas_obj_cdma2000() const { - assert_choice_type("measObjectCDMA2000", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_cdma2000, type_, "measObject"); return c.get(); } const meas_obj_wlan_r13_s& meas_obj_wlan_r13() const { - assert_choice_type("measObjectWLAN-r13", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_wlan_r13, type_, "measObject"); return c.get(); } const meas_obj_nr_r15_s& meas_obj_nr_r15() const { - assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject"); - return c.get(); - } - meas_obj_eutra_s& set_meas_obj_eutra() - { - set(types::meas_obj_eutra); - return c.get(); - } - meas_obj_utra_s& set_meas_obj_utra() - { - set(types::meas_obj_utra); - return c.get(); - } - meas_obj_geran_s& set_meas_obj_geran() - { - set(types::meas_obj_geran); - return c.get(); - } - meas_obj_cdma2000_s& set_meas_obj_cdma2000() - { - set(types::meas_obj_cdma2000); - return c.get(); - } - meas_obj_wlan_r13_s& set_meas_obj_wlan_r13() - { - set(types::meas_obj_wlan_r13); - return c.get(); - } - meas_obj_nr_r15_s& set_meas_obj_nr_r15() - { - set(types::meas_obj_nr_r15); + assert_choice_type(types::meas_obj_nr_r15, type_, "measObject"); return c.get(); } + meas_obj_eutra_s& set_meas_obj_eutra(); + meas_obj_utra_s& set_meas_obj_utra(); + meas_obj_geran_s& set_meas_obj_geran(); + meas_obj_cdma2000_s& set_meas_obj_cdma2000(); + meas_obj_wlan_r13_s& set_meas_obj_wlan_r13(); + meas_obj_nr_r15_s& set_meas_obj_nr_r15(); private: types type_; @@ -3790,7 +3394,7 @@ struct meas_obj_to_add_mod_ext_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -3808,94 +3412,70 @@ struct meas_obj_to_add_mod_ext_r13_s { // getters meas_obj_eutra_s& meas_obj_eutra_r13() { - assert_choice_type("measObjectEUTRA-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_eutra_r13, type_, "measObject-r13"); return c.get(); } meas_obj_utra_s& meas_obj_utra_r13() { - assert_choice_type("measObjectUTRA-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_utra_r13, type_, "measObject-r13"); return c.get(); } meas_obj_geran_s& meas_obj_geran_r13() { - assert_choice_type("measObjectGERAN-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_geran_r13, type_, "measObject-r13"); return c.get(); } meas_obj_cdma2000_s& meas_obj_cdma2000_r13() { - assert_choice_type("measObjectCDMA2000-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_cdma2000_r13, type_, "measObject-r13"); return c.get(); } meas_obj_wlan_r13_s& meas_obj_wlan_v1320() { - assert_choice_type("measObjectWLAN-v1320", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_wlan_v1320, type_, "measObject-r13"); return c.get(); } meas_obj_nr_r15_s& meas_obj_nr_r15() { - assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_nr_r15, type_, "measObject-r13"); return c.get(); } const meas_obj_eutra_s& meas_obj_eutra_r13() const { - assert_choice_type("measObjectEUTRA-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_eutra_r13, type_, "measObject-r13"); return c.get(); } const meas_obj_utra_s& meas_obj_utra_r13() const { - assert_choice_type("measObjectUTRA-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_utra_r13, type_, "measObject-r13"); return c.get(); } const meas_obj_geran_s& meas_obj_geran_r13() const { - assert_choice_type("measObjectGERAN-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_geran_r13, type_, "measObject-r13"); return c.get(); } const meas_obj_cdma2000_s& meas_obj_cdma2000_r13() const { - assert_choice_type("measObjectCDMA2000-r13", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_cdma2000_r13, type_, "measObject-r13"); return c.get(); } const meas_obj_wlan_r13_s& meas_obj_wlan_v1320() const { - assert_choice_type("measObjectWLAN-v1320", type_.to_string(), "measObject-r13"); + assert_choice_type(types::meas_obj_wlan_v1320, type_, "measObject-r13"); return c.get(); } const meas_obj_nr_r15_s& meas_obj_nr_r15() const { - assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject-r13"); - return c.get(); - } - meas_obj_eutra_s& set_meas_obj_eutra_r13() - { - set(types::meas_obj_eutra_r13); - return c.get(); - } - meas_obj_utra_s& set_meas_obj_utra_r13() - { - set(types::meas_obj_utra_r13); - return c.get(); - } - meas_obj_geran_s& set_meas_obj_geran_r13() - { - set(types::meas_obj_geran_r13); - return c.get(); - } - meas_obj_cdma2000_s& set_meas_obj_cdma2000_r13() - { - set(types::meas_obj_cdma2000_r13); - return c.get(); - } - meas_obj_wlan_r13_s& set_meas_obj_wlan_v1320() - { - set(types::meas_obj_wlan_v1320); - return c.get(); - } - meas_obj_nr_r15_s& set_meas_obj_nr_r15() - { - set(types::meas_obj_nr_r15); + assert_choice_type(types::meas_obj_nr_r15, type_, "measObject-r13"); return c.get(); } + meas_obj_eutra_s& set_meas_obj_eutra_r13(); + meas_obj_utra_s& set_meas_obj_utra_r13(); + meas_obj_geran_s& set_meas_obj_geran_r13(); + meas_obj_cdma2000_s& set_meas_obj_cdma2000_r13(); + meas_obj_wlan_r13_s& set_meas_obj_wlan_v1320(); + meas_obj_nr_r15_s& set_meas_obj_nr_r15(); private: types type_; @@ -3925,7 +3505,7 @@ struct quant_cfg_cdma2000_s { struct meas_quant_cdma2000_opts { enum options { pilot_strength, pilot_pn_phase_and_pilot_strength, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated meas_quant_cdma2000_e_; @@ -4003,7 +3583,7 @@ struct quant_cfg_utra_s { enum options { cpich_rscp, cpich_ec_n0, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated meas_quant_utra_fdd_e_; @@ -4053,7 +3633,7 @@ struct report_cfg_to_add_mod_s { struct types_opts { enum options { report_cfg_eutra, report_cfg_inter_rat, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4072,34 +3652,26 @@ struct report_cfg_to_add_mod_s { // getters report_cfg_eutra_s& report_cfg_eutra() { - assert_choice_type("reportConfigEUTRA", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_eutra, type_, "reportConfig"); return c.get(); } report_cfg_inter_rat_s& report_cfg_inter_rat() { - assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_inter_rat, type_, "reportConfig"); return c.get(); } const report_cfg_eutra_s& report_cfg_eutra() const { - assert_choice_type("reportConfigEUTRA", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_eutra, type_, "reportConfig"); return c.get(); } const report_cfg_inter_rat_s& report_cfg_inter_rat() const { - assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig"); - return c.get(); - } - report_cfg_eutra_s& set_report_cfg_eutra() - { - set(types::report_cfg_eutra); - return c.get(); - } - report_cfg_inter_rat_s& set_report_cfg_inter_rat() - { - set(types::report_cfg_inter_rat); + assert_choice_type(types::report_cfg_inter_rat, type_, "reportConfig"); return c.get(); } + report_cfg_eutra_s& set_report_cfg_eutra(); + report_cfg_inter_rat_s& set_report_cfg_inter_rat(); private: types type_; @@ -4152,7 +3724,7 @@ struct meas_gap_cfg_dense_prs_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4170,319 +3742,235 @@ struct meas_gap_cfg_dense_prs_r15_c { // getters uint8_t& rstd0_r15() { - assert_choice_type("rstd0-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd0_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint8_t& rstd1_r15() { - assert_choice_type("rstd1-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd1_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd2_r15() { - assert_choice_type("rstd2-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd2_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd3_r15() { - assert_choice_type("rstd3-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd3_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd4_r15() { - assert_choice_type("rstd4-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd4_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint8_t& rstd5_r15() { - assert_choice_type("rstd5-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd5_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd6_r15() { - assert_choice_type("rstd6-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd6_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd7_r15() { - assert_choice_type("rstd7-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd7_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd8_r15() { - assert_choice_type("rstd8-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd8_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd9_r15() { - assert_choice_type("rstd9-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd9_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd10_r15() { - assert_choice_type("rstd10-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd10_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd11_r15() { - assert_choice_type("rstd11-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd11_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd12_r15() { - assert_choice_type("rstd12-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd12_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd13_r15() { - assert_choice_type("rstd13-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd13_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd14_r15() { - assert_choice_type("rstd14-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd14_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd15_r15() { - assert_choice_type("rstd15-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd15_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd16_r15() { - assert_choice_type("rstd16-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd16_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd17_r15() { - assert_choice_type("rstd17-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd17_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd18_r15() { - assert_choice_type("rstd18-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd18_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd19_r15() { - assert_choice_type("rstd19-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd19_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } uint16_t& rstd20_r15() { - assert_choice_type("rstd20-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd20_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint8_t& rstd0_r15() const { - assert_choice_type("rstd0-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd0_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint8_t& rstd1_r15() const { - assert_choice_type("rstd1-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd1_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd2_r15() const { - assert_choice_type("rstd2-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd2_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd3_r15() const { - assert_choice_type("rstd3-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd3_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd4_r15() const { - assert_choice_type("rstd4-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd4_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint8_t& rstd5_r15() const { - assert_choice_type("rstd5-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd5_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd6_r15() const { - assert_choice_type("rstd6-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd6_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd7_r15() const { - assert_choice_type("rstd7-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd7_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd8_r15() const { - assert_choice_type("rstd8-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd8_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd9_r15() const { - assert_choice_type("rstd9-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd9_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd10_r15() const { - assert_choice_type("rstd10-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd10_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd11_r15() const { - assert_choice_type("rstd11-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd11_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd12_r15() const { - assert_choice_type("rstd12-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd12_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd13_r15() const { - assert_choice_type("rstd13-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd13_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd14_r15() const { - assert_choice_type("rstd14-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd14_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd15_r15() const { - assert_choice_type("rstd15-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd15_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd16_r15() const { - assert_choice_type("rstd16-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd16_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd17_r15() const { - assert_choice_type("rstd17-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd17_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd18_r15() const { - assert_choice_type("rstd18-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd18_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd19_r15() const { - assert_choice_type("rstd19-r15", type_.to_string(), "gapOffsetDensePRS-r15"); + assert_choice_type(types::rstd19_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } const uint16_t& rstd20_r15() const { - assert_choice_type("rstd20-r15", type_.to_string(), "gapOffsetDensePRS-r15"); - return c.get(); - } - uint8_t& set_rstd0_r15() - { - set(types::rstd0_r15); - return c.get(); - } - uint8_t& set_rstd1_r15() - { - set(types::rstd1_r15); - return c.get(); - } - uint16_t& set_rstd2_r15() - { - set(types::rstd2_r15); - return c.get(); - } - uint16_t& set_rstd3_r15() - { - set(types::rstd3_r15); - return c.get(); - } - uint16_t& set_rstd4_r15() - { - set(types::rstd4_r15); - return c.get(); - } - uint8_t& set_rstd5_r15() - { - set(types::rstd5_r15); - return c.get(); - } - uint16_t& set_rstd6_r15() - { - set(types::rstd6_r15); - return c.get(); - } - uint16_t& set_rstd7_r15() - { - set(types::rstd7_r15); - return c.get(); - } - uint16_t& set_rstd8_r15() - { - set(types::rstd8_r15); - return c.get(); - } - uint16_t& set_rstd9_r15() - { - set(types::rstd9_r15); - return c.get(); - } - uint16_t& set_rstd10_r15() - { - set(types::rstd10_r15); - return c.get(); - } - uint16_t& set_rstd11_r15() - { - set(types::rstd11_r15); - return c.get(); - } - uint16_t& set_rstd12_r15() - { - set(types::rstd12_r15); - return c.get(); - } - uint16_t& set_rstd13_r15() - { - set(types::rstd13_r15); - return c.get(); - } - uint16_t& set_rstd14_r15() - { - set(types::rstd14_r15); - return c.get(); - } - uint16_t& set_rstd15_r15() - { - set(types::rstd15_r15); - return c.get(); - } - uint16_t& set_rstd16_r15() - { - set(types::rstd16_r15); - return c.get(); - } - uint16_t& set_rstd17_r15() - { - set(types::rstd17_r15); - return c.get(); - } - uint16_t& set_rstd18_r15() - { - set(types::rstd18_r15); - return c.get(); - } - uint16_t& set_rstd19_r15() - { - set(types::rstd19_r15); - return c.get(); - } - uint16_t& set_rstd20_r15() - { - set(types::rstd20_r15); + assert_choice_type(types::rstd20_r15, type_, "gapOffsetDensePRS-r15"); return c.get(); } + uint8_t& set_rstd0_r15(); + uint8_t& set_rstd1_r15(); + uint16_t& set_rstd2_r15(); + uint16_t& set_rstd3_r15(); + uint16_t& set_rstd4_r15(); + uint8_t& set_rstd5_r15(); + uint16_t& set_rstd6_r15(); + uint16_t& set_rstd7_r15(); + uint16_t& set_rstd8_r15(); + uint16_t& set_rstd9_r15(); + uint16_t& set_rstd10_r15(); + uint16_t& set_rstd11_r15(); + uint16_t& set_rstd12_r15(); + uint16_t& set_rstd13_r15(); + uint16_t& set_rstd14_r15(); + uint16_t& set_rstd15_r15(); + uint16_t& set_rstd16_r15(); + uint16_t& set_rstd17_r15(); + uint16_t& set_rstd18_r15(); + uint16_t& set_rstd19_r15(); + uint16_t& set_rstd20_r15(); private: types type_; @@ -4506,20 +3994,16 @@ struct meas_gap_cfg_dense_prs_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasGapConfigDensePRS-r15"); + assert_choice_type(types::setup, type_, "MeasGapConfigDensePRS-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasGapConfigDensePRS-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasGapConfigDensePRS-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4546,20 +4030,16 @@ struct meas_gap_cfg_per_cc_list_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasGapConfigPerCC-List-r14"); + assert_choice_type(types::setup, type_, "MeasGapConfigPerCC-List-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasGapConfigPerCC-List-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasGapConfigPerCC-List-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4573,9 +4053,9 @@ struct meas_gap_sharing_cfg_r14_c { enum options { scheme00, scheme01, scheme10, scheme11, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated meas_gap_sharing_scheme_r14_e_; @@ -4594,20 +4074,16 @@ struct meas_gap_sharing_cfg_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "MeasGapSharingConfig-r14"); + assert_choice_type(types::setup, type_, "MeasGapSharingConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasGapSharingConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasGapSharingConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4652,7 +4128,7 @@ struct meas_scale_factor_r12_opts { enum options { sf_eutra_cf1, sf_eutra_cf2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated meas_scale_factor_r12_e; @@ -4705,7 +4181,7 @@ struct rach_skip_r14_s { enum options { ta0_r14, mcg_ptag_r14, scg_ptag_r14, mcg_stag_r14, scg_stag_r14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4723,37 +4199,29 @@ struct rach_skip_r14_s { // getters uint8_t& mcg_stag_r14() { - assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14"); + assert_choice_type(types::mcg_stag_r14, type_, "targetTA-r14"); return c.get(); } uint8_t& scg_stag_r14() { - assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14"); + assert_choice_type(types::scg_stag_r14, type_, "targetTA-r14"); return c.get(); } const uint8_t& mcg_stag_r14() const { - assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14"); + assert_choice_type(types::mcg_stag_r14, type_, "targetTA-r14"); return c.get(); } const uint8_t& scg_stag_r14() const { - assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14"); - return c.get(); - } - void set_ta0_r14() { set(types::ta0_r14); } - void set_mcg_ptag_r14() { set(types::mcg_ptag_r14); } - void set_scg_ptag_r14() { set(types::scg_ptag_r14); } - uint8_t& set_mcg_stag_r14() - { - set(types::mcg_stag_r14); - return c.get(); - } - uint8_t& set_scg_stag_r14() - { - set(types::scg_stag_r14); + assert_choice_type(types::scg_stag_r14, type_, "targetTA-r14"); return c.get(); } + void set_ta0_r14(); + void set_mcg_ptag_r14(); + void set_scg_ptag_r14(); + uint8_t& set_mcg_stag_r14(); + uint8_t& set_scg_stag_r14(); private: types type_; @@ -4766,7 +4234,7 @@ struct rach_skip_r14_s { enum options { sf2, sf5, sf10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_sched_interv_r14_e_; @@ -4814,20 +4282,16 @@ struct meas_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "speedStatePars"); + assert_choice_type(types::setup, type_, "speedStatePars"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "speedStatePars"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "speedStatePars"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4846,20 +4310,16 @@ struct meas_cfg_s { // getters meas_scale_factor_r12_e& setup() { - assert_choice_type("setup", type_.to_string(), "measScaleFactor-r12"); + assert_choice_type(types::setup, type_, "measScaleFactor-r12"); return c; } const meas_scale_factor_r12_e& setup() const { - assert_choice_type("setup", type_.to_string(), "measScaleFactor-r12"); - return c; - } - void set_release() { set(types::release); } - meas_scale_factor_r12_e& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "measScaleFactor-r12"); return c; } + void set_release(); + meas_scale_factor_r12_e& set_setup(); private: types type_; @@ -4878,20 +4338,16 @@ struct meas_cfg_s { // getters uint8_t& setup() { - assert_choice_type("setup", type_.to_string(), "heightThreshRef-r15"); + assert_choice_type(types::setup, type_, "heightThreshRef-r15"); return c; } const uint8_t& setup() const { - assert_choice_type("setup", type_.to_string(), "heightThreshRef-r15"); - return c; - } - void set_release() { set(types::release); } - uint8_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "heightThreshRef-r15"); return c; } + void set_release(); + uint8_t& set_setup(); private: types type_; @@ -5017,7 +4473,7 @@ struct carrier_bw_eutra_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dl_bw_e_; @@ -5043,7 +4499,7 @@ struct carrier_bw_eutra_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_e_; @@ -5106,14 +4562,14 @@ struct mob_ctrl_info_s { enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000_v1310, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t304_e_; struct ho_without_wt_change_r14_opts { enum options { keep_lwa_cfg, send_end_marker, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ho_without_wt_change_r14_e_; @@ -5172,7 +4628,7 @@ struct cell_global_id_cdma2000_c { enum options { cell_global_id1_xrtt, cell_global_id_hrpd, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5190,34 +4646,26 @@ struct cell_global_id_cdma2000_c { // getters fixed_bitstring<47>& cell_global_id1_xrtt() { - assert_choice_type("cellGlobalId1XRTT", type_.to_string(), "CellGlobalIdCDMA2000"); + assert_choice_type(types::cell_global_id1_xrtt, type_, "CellGlobalIdCDMA2000"); return c.get >(); } fixed_bitstring<128>& cell_global_id_hrpd() { - assert_choice_type("cellGlobalIdHRPD", type_.to_string(), "CellGlobalIdCDMA2000"); + assert_choice_type(types::cell_global_id_hrpd, type_, "CellGlobalIdCDMA2000"); return c.get >(); } const fixed_bitstring<47>& cell_global_id1_xrtt() const { - assert_choice_type("cellGlobalId1XRTT", type_.to_string(), "CellGlobalIdCDMA2000"); + assert_choice_type(types::cell_global_id1_xrtt, type_, "CellGlobalIdCDMA2000"); return c.get >(); } const fixed_bitstring<128>& cell_global_id_hrpd() const { - assert_choice_type("cellGlobalIdHRPD", type_.to_string(), "CellGlobalIdCDMA2000"); - return c.get >(); - } - fixed_bitstring<47>& set_cell_global_id1_xrtt() - { - set(types::cell_global_id1_xrtt); - return c.get >(); - } - fixed_bitstring<128>& set_cell_global_id_hrpd() - { - set(types::cell_global_id_hrpd); + assert_choice_type(types::cell_global_id_hrpd, type_, "CellGlobalIdCDMA2000"); return c.get >(); } + fixed_bitstring<47>& set_cell_global_id1_xrtt(); + fixed_bitstring<128>& set_cell_global_id_hrpd(); private: types type_; @@ -5382,7 +4830,7 @@ struct meas_result_utra_s { struct types_opts { enum options { fdd, tdd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5399,34 +4847,26 @@ struct meas_result_utra_s { // getters uint16_t& fdd() { - assert_choice_type("fdd", type_.to_string(), "physCellId"); + assert_choice_type(types::fdd, type_, "physCellId"); return c.get(); } uint8_t& tdd() { - assert_choice_type("tdd", type_.to_string(), "physCellId"); + assert_choice_type(types::tdd, type_, "physCellId"); return c.get(); } const uint16_t& fdd() const { - assert_choice_type("fdd", type_.to_string(), "physCellId"); + assert_choice_type(types::fdd, type_, "physCellId"); return c.get(); } const uint8_t& tdd() const { - assert_choice_type("tdd", type_.to_string(), "physCellId"); - return c.get(); - } - uint16_t& set_fdd() - { - set(types::fdd); - return c.get(); - } - uint8_t& set_tdd() - { - set(types::tdd); + assert_choice_type(types::tdd, type_, "physCellId"); return c.get(); } + uint16_t& set_fdd(); + uint8_t& set_tdd(); private: types type_; @@ -5495,7 +4935,7 @@ struct location_info_r10_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5512,111 +4952,83 @@ struct location_info_r10_s { // getters dyn_octstring& ellipsoid_point_r10() { - assert_choice_type("ellipsoid-Point-r10", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_r10, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& ellipsoid_point_with_altitude_r10() { - assert_choice_type("ellipsoidPointWithAltitude-r10", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_altitude_r10, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& ellipsoid_point_with_uncertainty_circle_r11() { - assert_choice_type("ellipsoidPointWithUncertaintyCircle-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_uncertainty_circle_r11, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& ellipsoid_point_with_uncertainty_ellipse_r11() { - assert_choice_type("ellipsoidPointWithUncertaintyEllipse-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_uncertainty_ellipse_r11, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11() { assert_choice_type( - "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11", type_.to_string(), "locationCoordinates-r10"); + types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& ellipsoid_arc_r11() { - assert_choice_type("ellipsoidArc-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_arc_r11, type_, "locationCoordinates-r10"); return c.get(); } dyn_octstring& polygon_r11() { - assert_choice_type("polygon-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::polygon_r11, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_point_r10() const { - assert_choice_type("ellipsoid-Point-r10", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_r10, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_point_with_altitude_r10() const { - assert_choice_type("ellipsoidPointWithAltitude-r10", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_altitude_r10, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_point_with_uncertainty_circle_r11() const { - assert_choice_type("ellipsoidPointWithUncertaintyCircle-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_uncertainty_circle_r11, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_point_with_uncertainty_ellipse_r11() const { - assert_choice_type("ellipsoidPointWithUncertaintyEllipse-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_point_with_uncertainty_ellipse_r11, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11() const { assert_choice_type( - "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11", type_.to_string(), "locationCoordinates-r10"); + types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& ellipsoid_arc_r11() const { - assert_choice_type("ellipsoidArc-r11", type_.to_string(), "locationCoordinates-r10"); + assert_choice_type(types::ellipsoid_arc_r11, type_, "locationCoordinates-r10"); return c.get(); } const dyn_octstring& polygon_r11() const { - assert_choice_type("polygon-r11", type_.to_string(), "locationCoordinates-r10"); - return c.get(); - } - dyn_octstring& set_ellipsoid_point_r10() - { - set(types::ellipsoid_point_r10); - return c.get(); - } - dyn_octstring& set_ellipsoid_point_with_altitude_r10() - { - set(types::ellipsoid_point_with_altitude_r10); - return c.get(); - } - dyn_octstring& set_ellipsoid_point_with_uncertainty_circle_r11() - { - set(types::ellipsoid_point_with_uncertainty_circle_r11); - return c.get(); - } - dyn_octstring& set_ellipsoid_point_with_uncertainty_ellipse_r11() - { - set(types::ellipsoid_point_with_uncertainty_ellipse_r11); - return c.get(); - } - dyn_octstring& set_ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11() - { - set(types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11); - return c.get(); - } - dyn_octstring& set_ellipsoid_arc_r11() - { - set(types::ellipsoid_arc_r11); - return c.get(); - } - dyn_octstring& set_polygon_r11() - { - set(types::polygon_r11); + assert_choice_type(types::polygon_r11, type_, "locationCoordinates-r10"); return c.get(); } + dyn_octstring& set_ellipsoid_point_r10(); + dyn_octstring& set_ellipsoid_point_with_altitude_r10(); + dyn_octstring& set_ellipsoid_point_with_uncertainty_circle_r11(); + dyn_octstring& set_ellipsoid_point_with_uncertainty_ellipse_r11(); + dyn_octstring& set_ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11(); + dyn_octstring& set_ellipsoid_arc_r11(); + dyn_octstring& set_polygon_r11(); private: types type_; @@ -5628,7 +5040,7 @@ struct location_info_r10_s { struct types_opts { enum options { vertical_velocity_r15, vertical_velocity_and_uncertainty_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5645,34 +5057,26 @@ struct location_info_r10_s { // getters dyn_octstring& vertical_velocity_r15() { - assert_choice_type("verticalVelocity-r15", type_.to_string(), "verticalVelocityInfo-r15"); + assert_choice_type(types::vertical_velocity_r15, type_, "verticalVelocityInfo-r15"); return c.get(); } dyn_octstring& vertical_velocity_and_uncertainty_r15() { - assert_choice_type("verticalVelocityAndUncertainty-r15", type_.to_string(), "verticalVelocityInfo-r15"); + assert_choice_type(types::vertical_velocity_and_uncertainty_r15, type_, "verticalVelocityInfo-r15"); return c.get(); } const dyn_octstring& vertical_velocity_r15() const { - assert_choice_type("verticalVelocity-r15", type_.to_string(), "verticalVelocityInfo-r15"); + assert_choice_type(types::vertical_velocity_r15, type_, "verticalVelocityInfo-r15"); return c.get(); } const dyn_octstring& vertical_velocity_and_uncertainty_r15() const { - assert_choice_type("verticalVelocityAndUncertainty-r15", type_.to_string(), "verticalVelocityInfo-r15"); - return c.get(); - } - dyn_octstring& set_vertical_velocity_r15() - { - set(types::vertical_velocity_r15); - return c.get(); - } - dyn_octstring& set_vertical_velocity_and_uncertainty_r15() - { - set(types::vertical_velocity_and_uncertainty_r15); + assert_choice_type(types::vertical_velocity_and_uncertainty_r15, type_, "verticalVelocityInfo-r15"); return c.get(); } + dyn_octstring& set_vertical_velocity_r15(); + dyn_octstring& set_vertical_velocity_and_uncertainty_r15(); private: types type_; @@ -5796,7 +5200,7 @@ struct wlan_rtt_r15_s { /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rtt_units_r15_e_; @@ -6268,7 +5672,7 @@ struct ul_pdcp_delay_result_r13_s { enum options { qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated qci_id_r13_e_; @@ -6381,7 +5785,7 @@ struct meas_results_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -6399,79 +5803,59 @@ struct meas_results_s { // getters meas_result_list_eutra_l& meas_result_list_eutra() { - assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_eutra, type_, "measResultNeighCells"); return c.get(); } meas_result_list_utra_l& meas_result_list_utra() { - assert_choice_type("measResultListUTRA", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_utra, type_, "measResultNeighCells"); return c.get(); } meas_result_list_geran_l& meas_result_list_geran() { - assert_choice_type("measResultListGERAN", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_geran, type_, "measResultNeighCells"); return c.get(); } meas_results_cdma2000_s& meas_results_cdma2000() { - assert_choice_type("measResultsCDMA2000", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_results_cdma2000, type_, "measResultNeighCells"); return c.get(); } meas_result_cell_list_nr_r15_l& meas_result_neigh_cell_list_nr_r15() { - assert_choice_type("measResultNeighCellListNR-r15", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_neigh_cell_list_nr_r15, type_, "measResultNeighCells"); return c.get(); } const meas_result_list_eutra_l& meas_result_list_eutra() const { - assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_eutra, type_, "measResultNeighCells"); return c.get(); } const meas_result_list_utra_l& meas_result_list_utra() const { - assert_choice_type("measResultListUTRA", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_utra, type_, "measResultNeighCells"); return c.get(); } const meas_result_list_geran_l& meas_result_list_geran() const { - assert_choice_type("measResultListGERAN", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_geran, type_, "measResultNeighCells"); return c.get(); } const meas_results_cdma2000_s& meas_results_cdma2000() const { - assert_choice_type("measResultsCDMA2000", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_results_cdma2000, type_, "measResultNeighCells"); return c.get(); } const meas_result_cell_list_nr_r15_l& meas_result_neigh_cell_list_nr_r15() const { - assert_choice_type("measResultNeighCellListNR-r15", type_.to_string(), "measResultNeighCells"); - return c.get(); - } - meas_result_list_eutra_l& set_meas_result_list_eutra() - { - set(types::meas_result_list_eutra); - return c.get(); - } - meas_result_list_utra_l& set_meas_result_list_utra() - { - set(types::meas_result_list_utra); - return c.get(); - } - meas_result_list_geran_l& set_meas_result_list_geran() - { - set(types::meas_result_list_geran); - return c.get(); - } - meas_results_cdma2000_s& set_meas_results_cdma2000() - { - set(types::meas_results_cdma2000); - return c.get(); - } - meas_result_cell_list_nr_r15_l& set_meas_result_neigh_cell_list_nr_r15() - { - set(types::meas_result_neigh_cell_list_nr_r15); + assert_choice_type(types::meas_result_neigh_cell_list_nr_r15, type_, "measResultNeighCells"); return c.get(); } + meas_result_list_eutra_l& set_meas_result_list_eutra(); + meas_result_list_utra_l& set_meas_result_list_utra(); + meas_result_list_geran_l& set_meas_result_list_geran(); + meas_results_cdma2000_s& set_meas_results_cdma2000(); + meas_result_cell_list_nr_r15_l& set_meas_result_neigh_cell_list_nr_r15(); private: types type_; @@ -6566,7 +5950,7 @@ struct meas_report_s { struct types_opts { enum options { meas_report_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6580,26 +5964,22 @@ struct meas_report_s { // getters meas_report_r8_ies_s& meas_report_r8() { - assert_choice_type("measurementReport-r8", type_.to_string(), "c1"); + assert_choice_type(types::meas_report_r8, type_, "c1"); return c; } const meas_report_r8_ies_s& meas_report_r8() const { - assert_choice_type("measurementReport-r8", type_.to_string(), "c1"); - return c; - } - meas_report_r8_ies_s& set_meas_report_r8() - { - set(types::meas_report_r8); + assert_choice_type(types::meas_report_r8, type_, "c1"); return c; } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + meas_report_r8_ies_s& set_meas_report_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -6617,20 +5997,16 @@ struct meas_report_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/paging.h b/lib/include/srsran/asn1/rrc/paging.h index 684564afc..f4ec707db 100644 --- a/lib/include/srsran/asn1/rrc/paging.h +++ b/lib/include/srsran/asn1/rrc/paging.h @@ -93,7 +93,7 @@ struct paging_ue_id_c { enum options { s_tmsi, imsi, /*...*/ ng_minus5_g_s_tmsi_r15, full_i_rnti_r15, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -111,64 +111,48 @@ struct paging_ue_id_c { // getters s_tmsi_s& s_tmsi() { - assert_choice_type("s-TMSI", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::s_tmsi, type_, "PagingUE-Identity"); return c.get(); } imsi_l& imsi() { - assert_choice_type("imsi", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::imsi, type_, "PagingUE-Identity"); return c.get(); } fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() { - assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi_r15, type_, "PagingUE-Identity"); return c.get >(); } fixed_bitstring<40>& full_i_rnti_r15() { - assert_choice_type("fullI-RNTI-r15", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::full_i_rnti_r15, type_, "PagingUE-Identity"); return c.get >(); } const s_tmsi_s& s_tmsi() const { - assert_choice_type("s-TMSI", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::s_tmsi, type_, "PagingUE-Identity"); return c.get(); } const imsi_l& imsi() const { - assert_choice_type("imsi", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::imsi, type_, "PagingUE-Identity"); return c.get(); } const fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() const { - assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi_r15, type_, "PagingUE-Identity"); return c.get >(); } const fixed_bitstring<40>& full_i_rnti_r15() const { - assert_choice_type("fullI-RNTI-r15", type_.to_string(), "PagingUE-Identity"); - return c.get >(); - } - s_tmsi_s& set_s_tmsi() - { - set(types::s_tmsi); - return c.get(); - } - imsi_l& set_imsi() - { - set(types::imsi); - return c.get(); - } - fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15() - { - set(types::ng_minus5_g_s_tmsi_r15); - return c.get >(); - } - fixed_bitstring<40>& set_full_i_rnti_r15() - { - set(types::full_i_rnti_r15); + assert_choice_type(types::full_i_rnti_r15, type_, "PagingUE-Identity"); return c.get >(); } + s_tmsi_s& set_s_tmsi(); + imsi_l& set_imsi(); + fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15(); + fixed_bitstring<40>& set_full_i_rnti_r15(); private: types type_; @@ -194,7 +178,7 @@ struct paging_record_s { struct cn_domain_opts { enum options { ps, cs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cn_domain_e_; @@ -247,7 +231,7 @@ struct pcch_msg_type_c { struct types_opts { enum options { paging, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -267,7 +251,7 @@ struct pcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -282,20 +266,16 @@ struct pcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); + assert_choice_type(types::c1, type_, "PCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); + assert_choice_type(types::c1, type_, "PCCH-MessageType"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -341,7 +321,7 @@ struct ue_paging_coverage_info_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -355,26 +335,22 @@ struct ue_paging_coverage_info_s { // getters ue_paging_coverage_info_r13_ies_s& ue_paging_coverage_info_r13() { - assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_paging_coverage_info_r13, type_, "c1"); return c; } const ue_paging_coverage_info_r13_ies_s& ue_paging_coverage_info_r13() const { - assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1"); - return c; - } - ue_paging_coverage_info_r13_ies_s& set_ue_paging_coverage_info_r13() - { - set(types::ue_paging_coverage_info_r13); + assert_choice_type(types::ue_paging_coverage_info_r13, type_, "c1"); return c; } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_paging_coverage_info_r13_ies_s& set_ue_paging_coverage_info_r13(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -392,20 +368,16 @@ struct ue_paging_coverage_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -465,7 +437,7 @@ struct ue_radio_paging_info_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -479,26 +451,22 @@ struct ue_radio_paging_info_s { // getters ue_radio_paging_info_r12_ies_s& ue_radio_paging_info_r12() { - assert_choice_type("ueRadioPagingInformation-r12", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info_r12, type_, "c1"); return c; } const ue_radio_paging_info_r12_ies_s& ue_radio_paging_info_r12() const { - assert_choice_type("ueRadioPagingInformation-r12", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info_r12, type_, "c1"); return c; } - ue_radio_paging_info_r12_ies_s& set_ue_radio_paging_info_r12() - { - set(types::ue_radio_paging_info_r12); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_paging_info_r12_ies_s& set_ue_radio_paging_info_r12(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -516,20 +484,16 @@ struct ue_radio_paging_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/phy_ded.h b/lib/include/srsran/asn1/rrc/phy_ded.h index f2cc453e2..1d99d1414 100644 --- a/lib/include/srsran/asn1/rrc/phy_ded.h +++ b/lib/include/srsran/asn1/rrc/phy_ded.h @@ -42,7 +42,7 @@ struct nzp_freq_density_r14_opts { enum options { d1, d2, d3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nzp_freq_density_r14_e; @@ -64,7 +64,7 @@ struct p_c_and_cbsr_r13_s { enum options { non_precoded_r13, bf_k1a_r13, bf_kn_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -84,49 +84,37 @@ struct p_c_and_cbsr_r13_s { // getters non_precoded_r13_s_& non_precoded_r13() { - assert_choice_type("nonPrecoded-r13", type_.to_string(), "cbsr-Selection-r13"); + assert_choice_type(types::non_precoded_r13, type_, "cbsr-Selection-r13"); return c.get(); } bf_k1a_r13_s_& bf_k1a_r13() { - assert_choice_type("beamformedK1a-r13", type_.to_string(), "cbsr-Selection-r13"); + assert_choice_type(types::bf_k1a_r13, type_, "cbsr-Selection-r13"); return c.get(); } bf_kn_r13_s_& bf_kn_r13() { - assert_choice_type("beamformedKN-r13", type_.to_string(), "cbsr-Selection-r13"); + assert_choice_type(types::bf_kn_r13, type_, "cbsr-Selection-r13"); return c.get(); } const non_precoded_r13_s_& non_precoded_r13() const { - assert_choice_type("nonPrecoded-r13", type_.to_string(), "cbsr-Selection-r13"); + assert_choice_type(types::non_precoded_r13, type_, "cbsr-Selection-r13"); return c.get(); } const bf_k1a_r13_s_& bf_k1a_r13() const { - assert_choice_type("beamformedK1a-r13", type_.to_string(), "cbsr-Selection-r13"); + assert_choice_type(types::bf_k1a_r13, type_, "cbsr-Selection-r13"); return c.get(); } const bf_kn_r13_s_& bf_kn_r13() const { - assert_choice_type("beamformedKN-r13", type_.to_string(), "cbsr-Selection-r13"); - return c.get(); - } - non_precoded_r13_s_& set_non_precoded_r13() - { - set(types::non_precoded_r13); - return c.get(); - } - bf_k1a_r13_s_& set_bf_k1a_r13() - { - set(types::bf_k1a_r13); - return c.get(); - } - bf_kn_r13_s_& set_bf_kn_r13() - { - set(types::bf_kn_r13); + assert_choice_type(types::bf_kn_r13, type_, "cbsr-Selection-r13"); return c.get(); } + non_precoded_r13_s_& set_non_precoded_r13(); + bf_k1a_r13_s_& set_bf_k1a_r13(); + bf_kn_r13_s_& set_bf_kn_r13(); private: types type_; @@ -169,7 +157,7 @@ struct csi_rs_cfg_nzp_activation_r14_s { struct csi_rs_nzp_mode_r14_opts { enum options { semi_persistent, aperiodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated csi_rs_nzp_mode_r14_e_; @@ -191,7 +179,7 @@ struct csi_rs_cfg_nzp_r11_s { enum options { an1, an2, an4, an8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ant_ports_count_r11_e_; @@ -200,7 +188,7 @@ struct csi_rs_cfg_nzp_r11_s { enum options { n1, n2, n4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_ports_count_r11_e_; @@ -222,20 +210,16 @@ struct csi_rs_cfg_nzp_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -266,20 +250,16 @@ struct csi_rs_cfg_nzp_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1430"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1430"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -392,7 +372,7 @@ struct csi_rs_cfg_nzp_emimo_r13_c { enum options { cdm2, cdm4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cdm_type_r13_e_; @@ -416,20 +396,16 @@ struct csi_rs_cfg_nzp_emimo_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigNZP-EMIMO-r13"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigNZP-EMIMO-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigNZP-EMIMO-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigNZP-EMIMO-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -460,7 +436,7 @@ struct cqi_report_mode_aperiodic_opts { enum options { rm12, rm20, rm22, rm30, rm31, rm32_v1250, rm10_v1310, rm11_v1310, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cqi_report_mode_aperiodic_e; @@ -528,20 +504,16 @@ struct csi_rs_cfg_emimo2_r14_c { // getters csi_rs_cfg_bf_r14_s& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO2-r14"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO2-r14"); return c; } const csi_rs_cfg_bf_r14_s& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO2-r14"); - return c; - } - void set_release() { set(types::release); } - csi_rs_cfg_bf_r14_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO2-r14"); return c; } + void set_release(); + csi_rs_cfg_bf_r14_s& set_setup(); private: types type_; @@ -554,7 +526,7 @@ struct csi_rs_cfg_non_precoded_r13_s { enum options { n1, n2, n3, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n1_r13_e_; @@ -562,7 +534,7 @@ struct csi_rs_cfg_non_precoded_r13_s { enum options { n1, n2, n3, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n2_r13_e_; @@ -570,7 +542,7 @@ struct csi_rs_cfg_non_precoded_r13_s { enum options { n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_over_sampling_rate_cfg_o1_r13_e_; @@ -578,7 +550,7 @@ struct csi_rs_cfg_non_precoded_r13_s { enum options { n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_over_sampling_rate_cfg_o2_r13_e_; @@ -613,7 +585,7 @@ struct csi_rs_cfg_non_precoded_v1430_s { enum options { n5, n6, n7, n10, n12, n14, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n1_v1430_e_; @@ -621,7 +593,7 @@ struct csi_rs_cfg_non_precoded_v1430_s { enum options { n5, n6, n7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n2_v1430_e_; @@ -647,7 +619,7 @@ struct csi_rs_cfg_non_precoded_v1480_s { enum options { n5, n6, n7, n10, n12, n14, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n1_v1480_e_; @@ -655,7 +627,7 @@ struct csi_rs_cfg_non_precoded_v1480_s { enum options { n5, n6, n7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated codebook_cfg_n2_r1480_e_; @@ -771,20 +743,16 @@ struct cri_report_cfg_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CRI-ReportConfig-r13"); + assert_choice_type(types::setup, type_, "CRI-ReportConfig-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CRI-ReportConfig-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CRI-ReportConfig-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -813,20 +781,16 @@ struct csi_rs_cfg_emimo_hybrid_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-Hybrid-r14"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-Hybrid-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-Hybrid-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-Hybrid-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -839,7 +803,7 @@ struct csi_rs_cfg_emimo_r13_c { struct types_opts { enum options { non_precoded_r13, bf_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -858,34 +822,26 @@ struct csi_rs_cfg_emimo_r13_c { // getters csi_rs_cfg_non_precoded_r13_s& non_precoded_r13() { - assert_choice_type("nonPrecoded-r13", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_r13, type_, "setup"); return c.get(); } csi_rs_cfg_bf_r13_s& bf_r13() { - assert_choice_type("beamformed-r13", type_.to_string(), "setup"); + assert_choice_type(types::bf_r13, type_, "setup"); return c.get(); } const csi_rs_cfg_non_precoded_r13_s& non_precoded_r13() const { - assert_choice_type("nonPrecoded-r13", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_r13, type_, "setup"); return c.get(); } const csi_rs_cfg_bf_r13_s& bf_r13() const { - assert_choice_type("beamformed-r13", type_.to_string(), "setup"); - return c.get(); - } - csi_rs_cfg_non_precoded_r13_s& set_non_precoded_r13() - { - set(types::non_precoded_r13); - return c.get(); - } - csi_rs_cfg_bf_r13_s& set_bf_r13() - { - set(types::bf_r13); + assert_choice_type(types::bf_r13, type_, "setup"); return c.get(); } + csi_rs_cfg_non_precoded_r13_s& set_non_precoded_r13(); + csi_rs_cfg_bf_r13_s& set_bf_r13(); private: types type_; @@ -907,20 +863,16 @@ struct csi_rs_cfg_emimo_r13_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-r13"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-r13"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-r13"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-r13"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -933,7 +885,7 @@ struct csi_rs_cfg_emimo_v1430_c { struct types_opts { enum options { non_precoded_v1430, bf_v1430, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -952,34 +904,26 @@ struct csi_rs_cfg_emimo_v1430_c { // getters csi_rs_cfg_non_precoded_v1430_s& non_precoded_v1430() { - assert_choice_type("nonPrecoded-v1430", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_v1430, type_, "setup"); return c.get(); } csi_rs_cfg_bf_v1430_s& bf_v1430() { - assert_choice_type("beamformed-v1430", type_.to_string(), "setup"); + assert_choice_type(types::bf_v1430, type_, "setup"); return c.get(); } const csi_rs_cfg_non_precoded_v1430_s& non_precoded_v1430() const { - assert_choice_type("nonPrecoded-v1430", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_v1430, type_, "setup"); return c.get(); } const csi_rs_cfg_bf_v1430_s& bf_v1430() const { - assert_choice_type("beamformed-v1430", type_.to_string(), "setup"); - return c.get(); - } - csi_rs_cfg_non_precoded_v1430_s& set_non_precoded_v1430() - { - set(types::non_precoded_v1430); - return c.get(); - } - csi_rs_cfg_bf_v1430_s& set_bf_v1430() - { - set(types::bf_v1430); + assert_choice_type(types::bf_v1430, type_, "setup"); return c.get(); } + csi_rs_cfg_non_precoded_v1430_s& set_non_precoded_v1430(); + csi_rs_cfg_bf_v1430_s& set_bf_v1430(); private: types type_; @@ -1001,20 +945,16 @@ struct csi_rs_cfg_emimo_v1430_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1430"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1430"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1430"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1430"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1027,7 +967,7 @@ struct csi_rs_cfg_emimo_v1480_c { struct types_opts { enum options { non_precoded_v1480, bf_v1480, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1046,34 +986,26 @@ struct csi_rs_cfg_emimo_v1480_c { // getters csi_rs_cfg_non_precoded_v1480_s& non_precoded_v1480() { - assert_choice_type("nonPrecoded-v1480", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_v1480, type_, "setup"); return c.get(); } csi_rs_cfg_bf_v1430_s& bf_v1480() { - assert_choice_type("beamformed-v1480", type_.to_string(), "setup"); + assert_choice_type(types::bf_v1480, type_, "setup"); return c.get(); } const csi_rs_cfg_non_precoded_v1480_s& non_precoded_v1480() const { - assert_choice_type("nonPrecoded-v1480", type_.to_string(), "setup"); + assert_choice_type(types::non_precoded_v1480, type_, "setup"); return c.get(); } const csi_rs_cfg_bf_v1430_s& bf_v1480() const { - assert_choice_type("beamformed-v1480", type_.to_string(), "setup"); - return c.get(); - } - csi_rs_cfg_non_precoded_v1480_s& set_non_precoded_v1480() - { - set(types::non_precoded_v1480); - return c.get(); - } - csi_rs_cfg_bf_v1430_s& set_bf_v1480() - { - set(types::bf_v1480); + assert_choice_type(types::bf_v1480, type_, "setup"); return c.get(); } + csi_rs_cfg_non_precoded_v1480_s& set_non_precoded_v1480(); + csi_rs_cfg_bf_v1430_s& set_bf_v1480(); private: types type_; @@ -1095,20 +1027,16 @@ struct csi_rs_cfg_emimo_v1480_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1480"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1480"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1480"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1480"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1121,7 +1049,7 @@ struct csi_rs_cfg_emimo_v1530_c { struct types_opts { enum options { non_precoded_v1530, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1153,20 +1081,16 @@ struct csi_rs_cfg_emimo_v1530_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1530"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1530"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1530"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigEMIMO-v1530"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -1184,7 +1108,7 @@ struct cqi_report_periodic_proc_ext_r11_s { enum options { submode1, submode2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_mode_r11_e_; @@ -1198,7 +1122,7 @@ struct cqi_report_periodic_proc_ext_r11_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_r11_e_; @@ -1210,7 +1134,7 @@ struct cqi_report_periodic_proc_ext_r11_s { struct types_opts { enum options { wideband_cqi_r11, subband_cqi_r11, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1229,34 +1153,26 @@ struct cqi_report_periodic_proc_ext_r11_s { // getters wideband_cqi_r11_s_& wideband_cqi_r11() { - assert_choice_type("widebandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11"); + assert_choice_type(types::wideband_cqi_r11, type_, "cqi-FormatIndicatorPeriodic-r11"); return c.get(); } subband_cqi_r11_s_& subband_cqi_r11() { - assert_choice_type("subbandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11"); + assert_choice_type(types::subband_cqi_r11, type_, "cqi-FormatIndicatorPeriodic-r11"); return c.get(); } const wideband_cqi_r11_s_& wideband_cqi_r11() const { - assert_choice_type("widebandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11"); + assert_choice_type(types::wideband_cqi_r11, type_, "cqi-FormatIndicatorPeriodic-r11"); return c.get(); } const subband_cqi_r11_s_& subband_cqi_r11() const { - assert_choice_type("subbandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11"); - return c.get(); - } - wideband_cqi_r11_s_& set_wideband_cqi_r11() - { - set(types::wideband_cqi_r11); - return c.get(); - } - subband_cqi_r11_s_& set_subband_cqi_r11() - { - set(types::subband_cqi_r11); + assert_choice_type(types::subband_cqi_r11, type_, "cqi-FormatIndicatorPeriodic-r11"); return c.get(); } + wideband_cqi_r11_s_& set_wideband_cqi_r11(); + subband_cqi_r11_s_& set_subband_cqi_r11(); private: types type_; @@ -1284,20 +1200,16 @@ struct cqi_report_periodic_proc_ext_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r11"); + assert_choice_type(types::setup, type_, "csi-ConfigIndex-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-ConfigIndex-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1307,7 +1219,7 @@ struct cqi_report_periodic_proc_ext_r11_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_wb_r13_e_; @@ -1394,20 +1306,16 @@ struct csi_process_r11_s { // getters setup_l_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-IM-ConfigIdList-r12"); + assert_choice_type(types::setup, type_, "csi-IM-ConfigIdList-r12"); return c; } const setup_l_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-IM-ConfigIdList-r12"); - return c; - } - void set_release() { set(types::release); } - setup_l_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-IM-ConfigIdList-r12"); return c; } + void set_release(); + setup_l_& set_setup(); private: types type_; @@ -1428,20 +1336,16 @@ struct csi_process_r11_s { // getters cqi_report_aperiodic_proc_r11_s& setup() { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-r12"); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc2-r12"); return c; } const cqi_report_aperiodic_proc_r11_s& setup() const { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-r12"); - return c; - } - void set_release() { set(types::release); } - cqi_report_aperiodic_proc_r11_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc2-r12"); return c; } + void set_release(); + cqi_report_aperiodic_proc_r11_s& set_setup(); private: types type_; @@ -1462,20 +1366,16 @@ struct csi_process_r11_s { // getters cqi_report_aperiodic_proc_v1310_s& setup() { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc-v1310"); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc-v1310"); return c; } const cqi_report_aperiodic_proc_v1310_s& setup() const { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc-v1310"); - return c; - } - void set_release() { set(types::release); } - cqi_report_aperiodic_proc_v1310_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc-v1310"); return c; } + void set_release(); + cqi_report_aperiodic_proc_v1310_s& set_setup(); private: types type_; @@ -1496,20 +1396,16 @@ struct csi_process_r11_s { // getters cqi_report_aperiodic_proc_v1310_s& setup() { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-v1310"); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc2-v1310"); return c; } const cqi_report_aperiodic_proc_v1310_s& setup() const { - assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-v1310"); - return c; - } - void set_release() { set(types::release); } - cqi_report_aperiodic_proc_v1310_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "cqi-ReportAperiodicProc2-v1310"); return c; } + void set_release(); + cqi_report_aperiodic_proc_v1310_s& set_setup(); private: types type_; @@ -1637,20 +1533,16 @@ struct cqi_report_aperiodic_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-r10"); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1665,7 +1557,7 @@ struct cqi_report_aperiodic_v1250_c { enum options { s1, s2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated trigger_sf_set_ind_r12_e_; @@ -1693,20 +1585,16 @@ struct cqi_report_aperiodic_v1250_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1250"); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-v1250"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1250"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-v1250"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1747,20 +1635,16 @@ struct cqi_report_aperiodic_v1310_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "aperiodicCSI-Trigger2-r13"); + assert_choice_type(types::setup, type_, "aperiodicCSI-Trigger2-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "aperiodicCSI-Trigger2-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "aperiodicCSI-Trigger2-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1787,20 +1671,16 @@ struct cqi_report_aperiodic_v1310_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1310"); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-v1310"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportAperiodic-v1310"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1831,7 +1711,7 @@ struct cqi_report_aperiodic_hybrid_r14_s { enum options { one_bit_r14, two_bit_r14, three_bit_r14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1851,49 +1731,37 @@ struct cqi_report_aperiodic_hybrid_r14_s { // getters one_bit_r14_s_& one_bit_r14() { - assert_choice_type("oneBit-r14", type_.to_string(), "triggers-r14"); + assert_choice_type(types::one_bit_r14, type_, "triggers-r14"); return c.get(); } two_bit_r14_s_& two_bit_r14() { - assert_choice_type("twoBit-r14", type_.to_string(), "triggers-r14"); + assert_choice_type(types::two_bit_r14, type_, "triggers-r14"); return c.get(); } three_bit_r14_s_& three_bit_r14() { - assert_choice_type("threeBit-r14", type_.to_string(), "triggers-r14"); + assert_choice_type(types::three_bit_r14, type_, "triggers-r14"); return c.get(); } const one_bit_r14_s_& one_bit_r14() const { - assert_choice_type("oneBit-r14", type_.to_string(), "triggers-r14"); + assert_choice_type(types::one_bit_r14, type_, "triggers-r14"); return c.get(); } const two_bit_r14_s_& two_bit_r14() const { - assert_choice_type("twoBit-r14", type_.to_string(), "triggers-r14"); + assert_choice_type(types::two_bit_r14, type_, "triggers-r14"); return c.get(); } const three_bit_r14_s_& three_bit_r14() const { - assert_choice_type("threeBit-r14", type_.to_string(), "triggers-r14"); - return c.get(); - } - one_bit_r14_s_& set_one_bit_r14() - { - set(types::one_bit_r14); - return c.get(); - } - two_bit_r14_s_& set_two_bit_r14() - { - set(types::two_bit_r14); - return c.get(); - } - three_bit_r14_s_& set_three_bit_r14() - { - set(types::three_bit_r14); + assert_choice_type(types::three_bit_r14, type_, "triggers-r14"); return c.get(); } + one_bit_r14_s_& set_one_bit_r14(); + two_bit_r14_s_& set_two_bit_r14(); + three_bit_r14_s_& set_three_bit_r14(); private: types type_; @@ -1972,7 +1840,7 @@ struct cqi_report_periodic_r10_c { enum options { submode1, submode2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_mode_r10_e_; @@ -1986,7 +1854,7 @@ struct cqi_report_periodic_r10_c { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_r10_e_; @@ -1998,7 +1866,7 @@ struct cqi_report_periodic_r10_c { struct types_opts { enum options { wideband_cqi_r10, subband_cqi_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2017,34 +1885,26 @@ struct cqi_report_periodic_r10_c { // getters wideband_cqi_r10_s_& wideband_cqi_r10() { - assert_choice_type("widebandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10"); + assert_choice_type(types::wideband_cqi_r10, type_, "cqi-FormatIndicatorPeriodic-r10"); return c.get(); } subband_cqi_r10_s_& subband_cqi_r10() { - assert_choice_type("subbandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10"); + assert_choice_type(types::subband_cqi_r10, type_, "cqi-FormatIndicatorPeriodic-r10"); return c.get(); } const wideband_cqi_r10_s_& wideband_cqi_r10() const { - assert_choice_type("widebandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10"); + assert_choice_type(types::wideband_cqi_r10, type_, "cqi-FormatIndicatorPeriodic-r10"); return c.get(); } const subband_cqi_r10_s_& subband_cqi_r10() const { - assert_choice_type("subbandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10"); - return c.get(); - } - wideband_cqi_r10_s_& set_wideband_cqi_r10() - { - set(types::wideband_cqi_r10); - return c.get(); - } - subband_cqi_r10_s_& set_subband_cqi_r10() - { - set(types::subband_cqi_r10); + assert_choice_type(types::subband_cqi_r10, type_, "cqi-FormatIndicatorPeriodic-r10"); return c.get(); } + wideband_cqi_r10_s_& set_wideband_cqi_r10(); + subband_cqi_r10_s_& set_subband_cqi_r10(); private: types type_; @@ -2072,20 +1932,16 @@ struct cqi_report_periodic_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r10"); + assert_choice_type(types::setup, type_, "csi-ConfigIndex-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-ConfigIndex-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2119,20 +1975,16 @@ struct cqi_report_periodic_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic-r10"); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodic-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodic-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2175,7 +2027,7 @@ struct cqi_report_periodic_v1320_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_wb_r13_e_; @@ -2198,13 +2050,13 @@ struct spdcch_elems_r15_c { struct spdcch_set_ref_sig_r15_opts { enum options { crs, dmrs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated spdcch_set_ref_sig_r15_e_; struct tx_type_r15_opts { enum options { localised, distributed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tx_type_r15_e_; using dci7_candidates_per_al_pdcch_r15_l_ = bounded_array; @@ -2217,14 +2069,14 @@ struct spdcch_elems_r15_c { struct sf_type_r15_opts { enum options { mbsfn, nonmbsfn, all, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sf_type_r15_e_; struct rate_matching_mode_r15_opts { enum options { m1, m2, m3, m4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rate_matching_mode_r15_e_; @@ -2271,20 +2123,16 @@ struct spdcch_elems_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPDCCH-Elements-r15"); + assert_choice_type(types::setup, type_, "SPDCCH-Elements-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPDCCH-Elements-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPDCCH-Elements-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2334,20 +2182,16 @@ struct spucch_elems_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Elements-r15"); + assert_choice_type(types::setup, type_, "SPUCCH-Elements-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Elements-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPUCCH-Elements-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2359,7 +2203,7 @@ struct tpc_idx_c { struct types_opts { enum options { idx_of_format3, idx_of_format3_a, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2378,34 +2222,26 @@ struct tpc_idx_c { // getters uint8_t& idx_of_format3() { - assert_choice_type("indexOfFormat3", type_.to_string(), "TPC-Index"); + assert_choice_type(types::idx_of_format3, type_, "TPC-Index"); return c.get(); } uint8_t& idx_of_format3_a() { - assert_choice_type("indexOfFormat3A", type_.to_string(), "TPC-Index"); + assert_choice_type(types::idx_of_format3_a, type_, "TPC-Index"); return c.get(); } const uint8_t& idx_of_format3() const { - assert_choice_type("indexOfFormat3", type_.to_string(), "TPC-Index"); + assert_choice_type(types::idx_of_format3, type_, "TPC-Index"); return c.get(); } const uint8_t& idx_of_format3_a() const { - assert_choice_type("indexOfFormat3A", type_.to_string(), "TPC-Index"); - return c.get(); - } - uint8_t& set_idx_of_format3() - { - set(types::idx_of_format3); - return c.get(); - } - uint8_t& set_idx_of_format3_a() - { - set(types::idx_of_format3_a); + assert_choice_type(types::idx_of_format3_a, type_, "TPC-Index"); return c.get(); } + uint8_t& set_idx_of_format3(); + uint8_t& set_idx_of_format3_a(); private: types type_; @@ -2430,20 +2266,16 @@ struct zero_tx_pwr_csi_rs_conf_r12_c { // getters zero_tx_pwr_csi_rs_r12_s& setup() { - assert_choice_type("setup", type_.to_string(), "ZeroTxPowerCSI-RS-Conf-r12"); + assert_choice_type(types::setup, type_, "ZeroTxPowerCSI-RS-Conf-r12"); return c; } const zero_tx_pwr_csi_rs_r12_s& setup() const { - assert_choice_type("setup", type_.to_string(), "ZeroTxPowerCSI-RS-Conf-r12"); - return c; - } - void set_release() { set(types::release); } - zero_tx_pwr_csi_rs_r12_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ZeroTxPowerCSI-RS-Conf-r12"); return c; } + void set_release(); + zero_tx_pwr_csi_rs_r12_s& set_setup(); private: types type_; @@ -2471,20 +2303,16 @@ struct cqi_report_cfg_r10_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r10"); + assert_choice_type(types::setup, type_, "csi-SubframePatternConfig-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-SubframePatternConfig-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2542,20 +2370,16 @@ struct cqi_report_cfg_v1250_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r12"); + assert_choice_type(types::setup, type_, "csi-SubframePatternConfig-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-SubframePatternConfig-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2565,7 +2389,7 @@ struct cqi_report_cfg_v1250_s { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table_r12_e_; @@ -2639,7 +2463,7 @@ struct csi_rs_cfg_r10_s { enum options { an1, an2, an4, an8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ant_ports_count_r10_e_; @@ -2664,20 +2488,16 @@ struct csi_rs_cfg_r10_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-RS-r10"); + assert_choice_type(types::setup, type_, "csi-RS-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-RS-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-RS-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2721,20 +2541,16 @@ struct csi_rs_cfg_v1250_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ds-ZeroTxPowerCSI-RS-r12"); + assert_choice_type(types::setup, type_, "ds-ZeroTxPowerCSI-RS-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ds-ZeroTxPowerCSI-RS-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ds-ZeroTxPowerCSI-RS-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2807,7 +2623,7 @@ struct delta_tx_d_offset_list_spucch_r15_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_spucch_format1_r15_e_; @@ -2815,7 +2631,7 @@ struct delta_tx_d_offset_list_spucch_r15_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_spucch_format1a_r15_e_; @@ -2823,7 +2639,7 @@ struct delta_tx_d_offset_list_spucch_r15_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_spucch_format1b_r15_e_; @@ -2831,7 +2647,7 @@ struct delta_tx_d_offset_list_spucch_r15_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_spucch_format3_r15_e_; @@ -2857,7 +2673,7 @@ struct epdcch_set_cfg_r11_s { struct tx_type_r11_opts { enum options { localised, distributed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tx_type_r11_e_; struct res_block_assign_r11_s_ { @@ -2865,7 +2681,7 @@ struct epdcch_set_cfg_r11_s { enum options { n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_prb_pairs_r11_e_; @@ -2889,20 +2705,16 @@ struct epdcch_set_cfg_r11_s { // getters uint8_t& setup() { - assert_choice_type("setup", type_.to_string(), "csi-RS-ConfigZPId2-r12"); + assert_choice_type(types::setup, type_, "csi-RS-ConfigZPId2-r12"); return c; } const uint8_t& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-RS-ConfigZPId2-r12"); - return c; - } - void set_release() { set(types::release); } - uint8_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-RS-ConfigZPId2-r12"); return c; } + void set_release(); + uint8_t& set_setup(); private: types type_; @@ -2921,8 +2733,8 @@ struct epdcch_set_cfg_r11_s { bool operator==(const num_prb_pairs_v1310_c_& other) const; bool operator!=(const num_prb_pairs_v1310_c_& other) const { return not(*this == other); } // getters - void set_release() { set(types::release); } - void set_setup() { set(types::setup); } + void set_release(); + void set_setup(); private: types type_; @@ -2933,14 +2745,14 @@ struct epdcch_set_cfg_r11_s { enum options { sf1, sf2, sf4, sf8, sf16, sf32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_num_repeat_ce_r13_e_; struct mpdcch_pdsch_hop_cfg_r13_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mpdcch_pdsch_hop_cfg_r13_e_; struct mpdcch_start_sf_uess_r13_c_ { @@ -2948,23 +2760,23 @@ struct epdcch_set_cfg_r11_s { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated fdd_r13_e_; struct tdd_r13_opts { enum options { v1, v2, v4, v5, v8, v10, v20, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r13_e_; struct types_opts { enum options { fdd_r13, tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2983,34 +2795,26 @@ struct epdcch_set_cfg_r11_s { // getters fdd_r13_e_& fdd_r13() { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-StartSF-UESS-r13"); return c.get(); } tdd_r13_e_& tdd_r13() { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13"); + assert_choice_type(types::tdd_r13, type_, "mpdcch-StartSF-UESS-r13"); return c.get(); } const fdd_r13_e_& fdd_r13() const { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-StartSF-UESS-r13"); return c.get(); } const tdd_r13_e_& tdd_r13() const { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13"); - return c.get(); - } - fdd_r13_e_& set_fdd_r13() - { - set(types::fdd_r13); - return c.get(); - } - tdd_r13_e_& set_tdd_r13() - { - set(types::tdd_r13); + assert_choice_type(types::tdd_r13, type_, "mpdcch-StartSF-UESS-r13"); return c.get(); } + fdd_r13_e_& set_fdd_r13(); + tdd_r13_e_& set_tdd_r13(); private: types type_; @@ -3022,7 +2826,7 @@ struct epdcch_set_cfg_r11_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_r13_e_; @@ -3048,20 +2852,16 @@ struct epdcch_set_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mpdcch-config-r13"); + assert_choice_type(types::setup, type_, "mpdcch-config-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mpdcch-config-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mpdcch-config-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3108,7 +2908,7 @@ struct enable256_qam_r14_c { struct types_opts { enum options { tpc_sf_set_cfgured_r14, tpc_sf_set_not_cfgured_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3127,34 +2927,26 @@ struct enable256_qam_r14_c { // getters tpc_sf_set_cfgured_r14_s_& tpc_sf_set_cfgured_r14() { - assert_choice_type("tpc-SubframeSet-Configured-r14", type_.to_string(), "setup"); + assert_choice_type(types::tpc_sf_set_cfgured_r14, type_, "setup"); return c.get(); } tpc_sf_set_not_cfgured_r14_s_& tpc_sf_set_not_cfgured_r14() { - assert_choice_type("tpc-SubframeSet-NotConfigured-r14", type_.to_string(), "setup"); + assert_choice_type(types::tpc_sf_set_not_cfgured_r14, type_, "setup"); return c.get(); } const tpc_sf_set_cfgured_r14_s_& tpc_sf_set_cfgured_r14() const { - assert_choice_type("tpc-SubframeSet-Configured-r14", type_.to_string(), "setup"); + assert_choice_type(types::tpc_sf_set_cfgured_r14, type_, "setup"); return c.get(); } const tpc_sf_set_not_cfgured_r14_s_& tpc_sf_set_not_cfgured_r14() const { - assert_choice_type("tpc-SubframeSet-NotConfigured-r14", type_.to_string(), "setup"); - return c.get(); - } - tpc_sf_set_cfgured_r14_s_& set_tpc_sf_set_cfgured_r14() - { - set(types::tpc_sf_set_cfgured_r14); - return c.get(); - } - tpc_sf_set_not_cfgured_r14_s_& set_tpc_sf_set_not_cfgured_r14() - { - set(types::tpc_sf_set_not_cfgured_r14); + assert_choice_type(types::tpc_sf_set_not_cfgured_r14, type_, "setup"); return c.get(); } + tpc_sf_set_cfgured_r14_s_& set_tpc_sf_set_cfgured_r14(); + tpc_sf_set_not_cfgured_r14_s_& set_tpc_sf_set_not_cfgured_r14(); private: types type_; @@ -3176,20 +2968,16 @@ struct enable256_qam_r14_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "Enable256QAM-r14"); + assert_choice_type(types::setup, type_, "Enable256QAM-r14"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "Enable256QAM-r14"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "Enable256QAM-r14"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -3203,7 +2991,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { enum options { n1, n2, n4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_ports_count_r11_e_; @@ -3225,20 +3013,16 @@ struct pdsch_re_map_qcl_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3248,7 +3032,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { enum options { reserved, n1, n2, n3, n4, assigned, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_start_r11_e_; @@ -3278,20 +3062,16 @@ struct pdsch_re_map_qcl_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1430"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1430"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3303,7 +3083,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { enum options { n1, n2, n4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_ports_count_v1530_e_; @@ -3311,7 +3091,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { enum options { reserved, n1, n2, n3, n4, assigned, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_start_v1530_e_; @@ -3342,20 +3122,16 @@ struct pdsch_re_map_qcl_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "codewordOneConfig-v1530"); + assert_choice_type(types::setup, type_, "codewordOneConfig-v1530"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "codewordOneConfig-v1530"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "codewordOneConfig-v1530"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3398,7 +3174,7 @@ struct srs_ant_port_opts { enum options { an1, an2, an4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_ant_port_e; @@ -3407,7 +3183,7 @@ typedef enumerated srs_ant_port_e; struct short_tti_len_r15_opts { enum options { slot, subslot, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated short_tti_len_r15_e; @@ -3431,20 +3207,16 @@ struct tpc_pdcch_cfg_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-Config"); + assert_choice_type(types::setup, type_, "TPC-PDCCH-Config"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-Config"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "TPC-PDCCH-Config"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3458,7 +3230,7 @@ struct ant_info_ded_stti_r15_c { enum options { tm9, tm10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_dl_mbsfn_r15_e_; @@ -3466,7 +3238,7 @@ struct ant_info_ded_stti_r15_c { enum options { tm1, tm2, tm3, tm4, tm6, tm8, tm9, tm10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_dl_non_mbsfn_r15_e_; @@ -3489,7 +3261,7 @@ struct ant_info_ded_stti_r15_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3508,199 +3280,147 @@ struct ant_info_ded_stti_r15_c { // getters fixed_bitstring<2>& n2_tx_ant_tm3_r15() { - assert_choice_type("n2TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm3_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n4_tx_ant_tm3_r15() { - assert_choice_type("n4TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm3_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<6>& n2_tx_ant_tm4_r15() { - assert_choice_type("n2TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm4_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<64>& n4_tx_ant_tm4_r15() { - assert_choice_type("n4TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm4_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n2_tx_ant_tm5_r15() { - assert_choice_type("n2TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm5_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<16>& n4_tx_ant_tm5_r15() { - assert_choice_type("n4TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm5_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n2_tx_ant_tm6_r15() { - assert_choice_type("n2TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm6_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<16>& n4_tx_ant_tm6_r15() { - assert_choice_type("n4TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm6_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<6>& n2_tx_ant_tm8_r15() { - assert_choice_type("n2TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm8_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<64>& n4_tx_ant_tm8_r15() { - assert_choice_type("n4TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm8_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<6>& n2_tx_ant_tm9and10_r15() { - assert_choice_type("n2TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<96>& n4_tx_ant_tm9and10_r15() { - assert_choice_type("n4TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<109>& n8_tx_ant_tm9and10_r15() { - assert_choice_type("n8TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n8_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<2>& n2_tx_ant_tm3_r15() const { - assert_choice_type("n2TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm3_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n4_tx_ant_tm3_r15() const { - assert_choice_type("n4TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm3_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<6>& n2_tx_ant_tm4_r15() const { - assert_choice_type("n2TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm4_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<64>& n4_tx_ant_tm4_r15() const { - assert_choice_type("n4TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm4_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n2_tx_ant_tm5_r15() const { - assert_choice_type("n2TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm5_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<16>& n4_tx_ant_tm5_r15() const { - assert_choice_type("n4TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm5_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n2_tx_ant_tm6_r15() const { - assert_choice_type("n2TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm6_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<16>& n4_tx_ant_tm6_r15() const { - assert_choice_type("n4TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm6_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<6>& n2_tx_ant_tm8_r15() const { - assert_choice_type("n2TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm8_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<64>& n4_tx_ant_tm8_r15() const { - assert_choice_type("n4TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm8_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<6>& n2_tx_ant_tm9and10_r15() const { - assert_choice_type("n2TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<96>& n4_tx_ant_tm9and10_r15() const { - assert_choice_type("n4TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<109>& n8_tx_ant_tm9and10_r15() const { - assert_choice_type("n8TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction"); - return c.get >(); - } - fixed_bitstring<2>& set_n2_tx_ant_tm3_r15() - { - set(types::n2_tx_ant_tm3_r15); - return c.get >(); - } - fixed_bitstring<4>& set_n4_tx_ant_tm3_r15() - { - set(types::n4_tx_ant_tm3_r15); - return c.get >(); - } - fixed_bitstring<6>& set_n2_tx_ant_tm4_r15() - { - set(types::n2_tx_ant_tm4_r15); - return c.get >(); - } - fixed_bitstring<64>& set_n4_tx_ant_tm4_r15() - { - set(types::n4_tx_ant_tm4_r15); - return c.get >(); - } - fixed_bitstring<4>& set_n2_tx_ant_tm5_r15() - { - set(types::n2_tx_ant_tm5_r15); - return c.get >(); - } - fixed_bitstring<16>& set_n4_tx_ant_tm5_r15() - { - set(types::n4_tx_ant_tm5_r15); - return c.get >(); - } - fixed_bitstring<4>& set_n2_tx_ant_tm6_r15() - { - set(types::n2_tx_ant_tm6_r15); - return c.get >(); - } - fixed_bitstring<16>& set_n4_tx_ant_tm6_r15() - { - set(types::n4_tx_ant_tm6_r15); - return c.get >(); - } - fixed_bitstring<6>& set_n2_tx_ant_tm8_r15() - { - set(types::n2_tx_ant_tm8_r15); - return c.get >(); - } - fixed_bitstring<64>& set_n4_tx_ant_tm8_r15() - { - set(types::n4_tx_ant_tm8_r15); - return c.get >(); - } - fixed_bitstring<6>& set_n2_tx_ant_tm9and10_r15() - { - set(types::n2_tx_ant_tm9and10_r15); - return c.get >(); - } - fixed_bitstring<96>& set_n4_tx_ant_tm9and10_r15() - { - set(types::n4_tx_ant_tm9and10_r15); - return c.get >(); - } - fixed_bitstring<109>& set_n8_tx_ant_tm9and10_r15() - { - set(types::n8_tx_ant_tm9and10_r15); + assert_choice_type(types::n8_tx_ant_tm9and10_r15, type_, "codebookSubsetRestriction"); return c.get >(); } + fixed_bitstring<2>& set_n2_tx_ant_tm3_r15(); + fixed_bitstring<4>& set_n4_tx_ant_tm3_r15(); + fixed_bitstring<6>& set_n2_tx_ant_tm4_r15(); + fixed_bitstring<64>& set_n4_tx_ant_tm4_r15(); + fixed_bitstring<4>& set_n2_tx_ant_tm5_r15(); + fixed_bitstring<16>& set_n4_tx_ant_tm5_r15(); + fixed_bitstring<4>& set_n2_tx_ant_tm6_r15(); + fixed_bitstring<16>& set_n4_tx_ant_tm6_r15(); + fixed_bitstring<6>& set_n2_tx_ant_tm8_r15(); + fixed_bitstring<64>& set_n4_tx_ant_tm8_r15(); + fixed_bitstring<6>& set_n2_tx_ant_tm9and10_r15(); + fixed_bitstring<96>& set_n4_tx_ant_tm9and10_r15(); + fixed_bitstring<109>& set_n8_tx_ant_tm9and10_r15(); private: types type_; @@ -3712,7 +3432,7 @@ struct ant_info_ded_stti_r15_c { enum options { two_layers, four_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_layers_mimo_stti_r15_e_; @@ -3743,20 +3463,16 @@ struct ant_info_ded_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicatedSTTI-r15"); + assert_choice_type(types::setup, type_, "AntennaInfoDedicatedSTTI-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicatedSTTI-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "AntennaInfoDedicatedSTTI-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3769,7 +3485,7 @@ struct ant_info_ul_stti_r15_s { enum options { tm1, tm2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_ul_stti_r15_e_; @@ -3793,7 +3509,7 @@ struct cqi_report_cfg_r15_c { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table_minus1024_qam_r15_e_; @@ -3828,20 +3544,16 @@ struct cqi_report_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportConfig-r15"); + assert_choice_type(types::setup, type_, "CQI-ReportConfig-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportConfig-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3858,7 +3570,7 @@ struct cqi_report_periodic_c { struct types_opts { enum options { wideband_cqi, subband_cqi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3872,20 +3584,16 @@ struct cqi_report_periodic_c { // getters subband_cqi_s_& subband_cqi() { - assert_choice_type("subbandCQI", type_.to_string(), "cqi-FormatIndicatorPeriodic"); + assert_choice_type(types::subband_cqi, type_, "cqi-FormatIndicatorPeriodic"); return c; } const subband_cqi_s_& subband_cqi() const { - assert_choice_type("subbandCQI", type_.to_string(), "cqi-FormatIndicatorPeriodic"); - return c; - } - void set_wideband_cqi() { set(types::wideband_cqi); } - subband_cqi_s_& set_subband_cqi() - { - set(types::subband_cqi); + assert_choice_type(types::subband_cqi, type_, "cqi-FormatIndicatorPeriodic"); return c; } + void set_wideband_cqi(); + subband_cqi_s_& set_subband_cqi(); private: types type_; @@ -3912,20 +3620,16 @@ struct cqi_report_periodic_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic"); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodic"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodic"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3958,20 +3662,16 @@ struct csi_rs_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-Config-r15"); + assert_choice_type(types::setup, type_, "CSI-RS-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4001,20 +3701,16 @@ struct csi_rs_cfg_zp_ap_list_r14_c { // getters setup_l_& setup() { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigZP-ApList-r14"); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigZP-ApList-r14"); return c; } const setup_l_& setup() const { - assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigZP-ApList-r14"); - return c; - } - void set_release() { set(types::release); } - setup_l_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CSI-RS-ConfigZP-ApList-r14"); return c; } + void set_release(); + setup_l_& set_setup(); private: types type_; @@ -4047,20 +3743,16 @@ struct dmrs_cfg_r11_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "DMRS-Config-r11"); + assert_choice_type(types::setup, type_, "DMRS-Config-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "DMRS-Config-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "DMRS-Config-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4085,7 +3777,7 @@ struct delta_tx_d_offset_list_pucch_r10_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_pucch_format1_r10_e_; @@ -4093,7 +3785,7 @@ struct delta_tx_d_offset_list_pucch_r10_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_pucch_format1a1b_r10_e_; @@ -4101,7 +3793,7 @@ struct delta_tx_d_offset_list_pucch_r10_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_pucch_format22a2b_r10_e_; @@ -4109,7 +3801,7 @@ struct delta_tx_d_offset_list_pucch_r10_s { enum options { db0, db_minus2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_pucch_format3_r10_e_; @@ -4136,7 +3828,7 @@ struct delta_tx_d_offset_list_pucch_v1130_s { enum options { db0, db_minus1, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_tx_d_offset_pucch_format1b_cs_r11_e_; @@ -4159,7 +3851,7 @@ struct eimta_main_cfg_r12_c { enum options { sf10, sf20, sf40, sf80, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eimta_cmd_periodicity_r12_e_; @@ -4183,20 +3875,16 @@ struct eimta_main_cfg_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfig-r12"); + assert_choice_type(types::setup, type_, "EIMTA-MainConfig-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfig-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "EIMTA-MainConfig-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4210,7 +3898,7 @@ struct eimta_main_cfg_serv_cell_r12_c { enum options { sa2, sa4, sa5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eimta_harq_ref_cfg_r12_e_; @@ -4232,20 +3920,16 @@ struct eimta_main_cfg_serv_cell_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1250"); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1250"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1250"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "mbsfn-SubframeConfigList-v1250"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4271,20 +3955,16 @@ struct eimta_main_cfg_serv_cell_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfigServCell-r12"); + assert_choice_type(types::setup, type_, "EIMTA-MainConfigServCell-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfigServCell-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "EIMTA-MainConfigServCell-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4331,7 +4011,7 @@ struct pdcch_candidate_reduction_value_r13_opts { enum options { n0, n33, n66, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdcch_candidate_reduction_value_r13_e; @@ -4341,7 +4021,7 @@ struct pucch_cfg_ded_v1530_s { struct codebooksize_determination_stti_r15_opts { enum options { dai, cc, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated codebooksize_determination_stti_r15_e_; @@ -4383,20 +4063,16 @@ struct pucch_format3_conf_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); + assert_choice_type(types::setup, type_, "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4430,7 +4106,7 @@ struct spdcch_cfg_r15_c { enum options { n0, n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated spdcch_l1_reuse_ind_r15_e_; @@ -4455,20 +4131,16 @@ struct spdcch_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPDCCH-Config-r15"); + assert_choice_type(types::setup, type_, "SPDCCH-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPDCCH-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPDCCH-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4505,20 +4177,16 @@ struct spucch_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-r15"); + assert_choice_type(types::setup, type_, "SPUCCH-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPUCCH-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4544,7 +4212,7 @@ struct srs_cfg_ap_r10_s { enum options { bw0, bw1, bw2, bw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_bw_ap_r10_e_; @@ -4552,7 +4220,7 @@ struct srs_cfg_ap_r10_s { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_ap_r10_e_; @@ -4578,7 +4246,7 @@ struct srs_cfg_ap_r13_s { enum options { bw0, bw1, bw2, bw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_bw_ap_r13_e_; @@ -4586,7 +4254,7 @@ struct srs_cfg_ap_r13_s { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, cs8, cs9, cs10, cs11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_ap_r13_e_; @@ -4594,7 +4262,7 @@ struct srs_cfg_ap_r13_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_comb_num_r13_e_; @@ -4621,7 +4289,7 @@ struct srs_cfg_ap_v1310_s { enum options { cs8, cs9, cs10, cs11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_ap_v1310_e_; @@ -4629,7 +4297,7 @@ struct srs_cfg_ap_v1310_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_comb_num_r13_e_; @@ -4657,7 +4325,7 @@ struct sched_request_cfg_v1530_c { enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dssr_trans_max_r15_e_; @@ -4689,20 +4357,16 @@ struct sched_request_cfg_v1530_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig-v1530"); + assert_choice_type(types::setup, type_, "SchedulingRequestConfig-v1530"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig-v1530"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SchedulingRequestConfig-v1530"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4731,7 +4395,7 @@ struct slot_or_subslot_pdsch_cfg_r15_c { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table_stti_r15_e_; @@ -4739,7 +4403,7 @@ struct slot_or_subslot_pdsch_cfg_r15_c { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table1024_qam_stti_r15_e_; @@ -4747,7 +4411,7 @@ struct slot_or_subslot_pdsch_cfg_r15_c { enum options { res_alloc_type0, res_alloc_type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated res_alloc_r15_e_; @@ -4779,20 +4443,16 @@ struct slot_or_subslot_pdsch_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPDSCH-Config-r15"); + assert_choice_type(types::setup, type_, "SlotOrSubslotPDSCH-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPDSCH-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SlotOrSubslotPDSCH-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4845,20 +4505,16 @@ struct slot_or_subslot_pusch_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPUSCH-Config-r15"); + assert_choice_type(types::setup, type_, "SlotOrSubslotPUSCH-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPUSCH-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SlotOrSubslotPUSCH-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4872,7 +4528,7 @@ struct tdd_pusch_up_pts_r14_c { enum options { sym1, sym2, sym3, sym4, sym5, sym6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sym_pusch_up_pts_r14_e_; @@ -4894,20 +4550,16 @@ struct tdd_pusch_up_pts_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "TDD-PUSCH-UpPTS-r14"); + assert_choice_type(types::setup, type_, "TDD-PUSCH-UpPTS-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "TDD-PUSCH-UpPTS-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "TDD-PUSCH-UpPTS-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4935,7 +4587,7 @@ struct ant_info_ded_s { enum options { tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8_v920, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_e_; @@ -4953,7 +4605,7 @@ struct ant_info_ded_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4970,124 +4622,92 @@ struct ant_info_ded_s { // getters fixed_bitstring<2>& n2_tx_ant_tm3() { - assert_choice_type("n2TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm3, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n4_tx_ant_tm3() { - assert_choice_type("n4TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm3, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<6>& n2_tx_ant_tm4() { - assert_choice_type("n2TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm4, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<64>& n4_tx_ant_tm4() { - assert_choice_type("n4TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm4, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n2_tx_ant_tm5() { - assert_choice_type("n2TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm5, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<16>& n4_tx_ant_tm5() { - assert_choice_type("n4TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm5, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<4>& n2_tx_ant_tm6() { - assert_choice_type("n2TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm6, type_, "codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<16>& n4_tx_ant_tm6() { - assert_choice_type("n4TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm6, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<2>& n2_tx_ant_tm3() const { - assert_choice_type("n2TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm3, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n4_tx_ant_tm3() const { - assert_choice_type("n4TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm3, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<6>& n2_tx_ant_tm4() const { - assert_choice_type("n2TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm4, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<64>& n4_tx_ant_tm4() const { - assert_choice_type("n4TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm4, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n2_tx_ant_tm5() const { - assert_choice_type("n2TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm5, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<16>& n4_tx_ant_tm5() const { - assert_choice_type("n4TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n4_tx_ant_tm5, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<4>& n2_tx_ant_tm6() const { - assert_choice_type("n2TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction"); + assert_choice_type(types::n2_tx_ant_tm6, type_, "codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<16>& n4_tx_ant_tm6() const { - assert_choice_type("n4TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction"); - return c.get >(); - } - fixed_bitstring<2>& set_n2_tx_ant_tm3() - { - set(types::n2_tx_ant_tm3); - return c.get >(); - } - fixed_bitstring<4>& set_n4_tx_ant_tm3() - { - set(types::n4_tx_ant_tm3); - return c.get >(); - } - fixed_bitstring<6>& set_n2_tx_ant_tm4() - { - set(types::n2_tx_ant_tm4); - return c.get >(); - } - fixed_bitstring<64>& set_n4_tx_ant_tm4() - { - set(types::n4_tx_ant_tm4); - return c.get >(); - } - fixed_bitstring<4>& set_n2_tx_ant_tm5() - { - set(types::n2_tx_ant_tm5); - return c.get >(); - } - fixed_bitstring<16>& set_n4_tx_ant_tm5() - { - set(types::n4_tx_ant_tm5); - return c.get >(); - } - fixed_bitstring<4>& set_n2_tx_ant_tm6() - { - set(types::n2_tx_ant_tm6); - return c.get >(); - } - fixed_bitstring<16>& set_n4_tx_ant_tm6() - { - set(types::n4_tx_ant_tm6); + assert_choice_type(types::n4_tx_ant_tm6, type_, "codebookSubsetRestriction"); return c.get >(); } + fixed_bitstring<2>& set_n2_tx_ant_tm3(); + fixed_bitstring<4>& set_n4_tx_ant_tm3(); + fixed_bitstring<6>& set_n2_tx_ant_tm4(); + fixed_bitstring<64>& set_n4_tx_ant_tm4(); + fixed_bitstring<4>& set_n2_tx_ant_tm5(); + fixed_bitstring<16>& set_n4_tx_ant_tm5(); + fixed_bitstring<4>& set_n2_tx_ant_tm6(); + fixed_bitstring<16>& set_n4_tx_ant_tm6(); private: types type_; @@ -5099,7 +4719,7 @@ struct ant_info_ded_s { struct setup_opts { enum options { closed_loop, open_loop, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated setup_e_; using types = setup_e; @@ -5114,20 +4734,16 @@ struct ant_info_ded_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); + assert_choice_type(types::setup, type_, "ue-TransmitAntennaSelection"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ue-TransmitAntennaSelection"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -5170,7 +4786,7 @@ struct ant_info_ded_r10_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_r10_e_; @@ -5178,7 +4794,7 @@ struct ant_info_ded_r10_s { struct setup_opts { enum options { closed_loop, open_loop, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated setup_e_; using types = setup_e; @@ -5195,20 +4811,16 @@ struct ant_info_ded_r10_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); + assert_choice_type(types::setup, type_, "ue-TransmitAntennaSelection"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ue-TransmitAntennaSelection"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -5258,7 +4870,7 @@ struct ant_info_ded_v1530_c { enum options { two, three, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated @@ -5271,7 +4883,7 @@ struct ant_info_ded_v1530_c { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -5286,20 +4898,16 @@ struct ant_info_ded_v1530_c { // getters ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() { - assert_choice_type("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", type_.to_string(), "setup"); + assert_choice_type(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15, type_, "setup"); return c; } const ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() const { - assert_choice_type("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", type_.to_string(), "setup"); - return c; - } - void set_ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15() { set(types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15); } - ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& set_ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() - { - set(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15); + assert_choice_type(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15, type_, "setup"); return c; } + void set_ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15(); + ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& set_ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15(); private: types type_; @@ -5317,20 +4925,16 @@ struct ant_info_ded_v1530_c { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicated-v1530"); + assert_choice_type(types::setup, type_, "AntennaInfoDedicated-v1530"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicated-v1530"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "AntennaInfoDedicated-v1530"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -5344,7 +4948,7 @@ struct ant_info_ded_v920_s { enum options { n2_tx_ant_tm8_r9, n4_tx_ant_tm8_r9, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5362,34 +4966,26 @@ struct ant_info_ded_v920_s { // getters fixed_bitstring<6>& n2_tx_ant_tm8_r9() { - assert_choice_type("n2TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920"); + assert_choice_type(types::n2_tx_ant_tm8_r9, type_, "codebookSubsetRestriction-v920"); return c.get >(); } fixed_bitstring<32>& n4_tx_ant_tm8_r9() { - assert_choice_type("n4TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920"); + assert_choice_type(types::n4_tx_ant_tm8_r9, type_, "codebookSubsetRestriction-v920"); return c.get >(); } const fixed_bitstring<6>& n2_tx_ant_tm8_r9() const { - assert_choice_type("n2TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920"); + assert_choice_type(types::n2_tx_ant_tm8_r9, type_, "codebookSubsetRestriction-v920"); return c.get >(); } const fixed_bitstring<32>& n4_tx_ant_tm8_r9() const { - assert_choice_type("n4TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920"); - return c.get >(); - } - fixed_bitstring<6>& set_n2_tx_ant_tm8_r9() - { - set(types::n2_tx_ant_tm8_r9); - return c.get >(); - } - fixed_bitstring<32>& set_n4_tx_ant_tm8_r9() - { - set(types::n4_tx_ant_tm8_r9); + assert_choice_type(types::n4_tx_ant_tm8_r9, type_, "codebookSubsetRestriction-v920"); return c.get >(); } + fixed_bitstring<6>& set_n2_tx_ant_tm8_r9(); + fixed_bitstring<32>& set_n4_tx_ant_tm8_r9(); private: types type_; @@ -5414,7 +5010,7 @@ struct ant_info_ul_r10_s { enum options { tm1, tm2, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_ul_r10_e_; @@ -5490,7 +5086,7 @@ struct cqi_report_cfg_v1530_s { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table_minus1024_qam_r15_e_; @@ -5578,20 +5174,16 @@ struct epdcch_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "subframePatternConfig-r11"); + assert_choice_type(types::setup, type_, "subframePatternConfig-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "subframePatternConfig-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "subframePatternConfig-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5622,20 +5214,16 @@ struct epdcch_cfg_r11_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "config-r11"); + assert_choice_type(types::setup, type_, "config-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "config-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "config-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5676,20 +5264,16 @@ struct pdcch_candidate_reductions_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductions-r13"); + assert_choice_type(types::setup, type_, "PDCCH-CandidateReductions-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductions-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "PDCCH-CandidateReductions-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5702,9 +5286,9 @@ struct pdsch_cfg_ded_s { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_e_; @@ -5724,7 +5308,7 @@ struct pdsch_cfg_ded_v1130_s { struct qcl_operation_opts { enum options { type_a, type_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated qcl_operation_e_; @@ -5752,7 +5336,7 @@ struct pdsch_cfg_ded_v1280_s { enum options { a26, a33, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tbs_idx_alt_r12_e_; @@ -5788,7 +5372,7 @@ struct pdsch_cfg_ded_v1430_s { enum options { bw5, bw20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_pdsch_max_bw_r14_e_; @@ -5796,7 +5380,7 @@ struct pdsch_cfg_ded_v1430_s { enum options { range1, range2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_sched_enhancement_r14_e_; @@ -5822,9 +5406,9 @@ struct pdsch_cfg_ded_v1530_s { enum options { odot5, odot625, odot75, odot875, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated alt_mcs_table_scaling_cfg_r15_e_; @@ -5853,7 +5437,7 @@ struct pucch_cfg_ded_s { enum options { n2, n4, n6, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated repeat_factor_e_; @@ -5874,20 +5458,16 @@ struct pucch_cfg_ded_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ackNackRepetition"); + assert_choice_type(types::setup, type_, "ackNackRepetition"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ackNackRepetition"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ackNackRepetition"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5896,7 +5476,7 @@ struct pucch_cfg_ded_s { struct tdd_ack_nack_feedback_mode_opts { enum options { bundling, mux, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tdd_ack_nack_feedback_mode_e_; @@ -5919,7 +5499,7 @@ struct pucch_cfg_ded_r13_s { enum options { n2, n4, n6, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated repeat_factor_r13_e_; @@ -5942,20 +5522,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ackNackRepetition-r13"); + assert_choice_type(types::setup, type_, "ackNackRepetition-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ackNackRepetition-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ackNackRepetition-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5964,7 +5540,7 @@ struct pucch_cfg_ded_r13_s { struct tdd_ack_nack_feedback_mode_r13_opts { enum options { bundling, mux, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tdd_ack_nack_feedback_mode_r13_e_; struct pucch_format_r13_c_ { @@ -5991,20 +5567,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); + assert_choice_type(types::setup, type_, "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6041,20 +5613,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r13"); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6086,7 +5654,7 @@ struct pucch_cfg_ded_r13_s { enum options { format3_r13, ch_sel_r13, format4_r13, format5_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -6106,64 +5674,48 @@ struct pucch_cfg_ded_r13_s { // getters format3_r13_s_& format3_r13() { - assert_choice_type("format3-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::format3_r13, type_, "pucch-Format-r13"); return c.get(); } ch_sel_r13_s_& ch_sel_r13() { - assert_choice_type("channelSelection-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::ch_sel_r13, type_, "pucch-Format-r13"); return c.get(); } format4_r13_s_& format4_r13() { - assert_choice_type("format4-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::format4_r13, type_, "pucch-Format-r13"); return c.get(); } format5_r13_s_& format5_r13() { - assert_choice_type("format5-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::format5_r13, type_, "pucch-Format-r13"); return c.get(); } const format3_r13_s_& format3_r13() const { - assert_choice_type("format3-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::format3_r13, type_, "pucch-Format-r13"); return c.get(); } const ch_sel_r13_s_& ch_sel_r13() const { - assert_choice_type("channelSelection-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::ch_sel_r13, type_, "pucch-Format-r13"); return c.get(); } const format4_r13_s_& format4_r13() const { - assert_choice_type("format4-r13", type_.to_string(), "pucch-Format-r13"); + assert_choice_type(types::format4_r13, type_, "pucch-Format-r13"); return c.get(); } const format5_r13_s_& format5_r13() const { - assert_choice_type("format5-r13", type_.to_string(), "pucch-Format-r13"); - return c.get(); - } - format3_r13_s_& set_format3_r13() - { - set(types::format3_r13); - return c.get(); - } - ch_sel_r13_s_& set_ch_sel_r13() - { - set(types::ch_sel_r13); - return c.get(); - } - format4_r13_s_& set_format4_r13() - { - set(types::format4_r13); - return c.get(); - } - format5_r13_s_& set_format5_r13() - { - set(types::format5_r13); + assert_choice_type(types::format5_r13, type_, "pucch-Format-r13"); return c.get(); } + format3_r13_s_& set_format3_r13(); + ch_sel_r13_s_& set_ch_sel_r13(); + format4_r13_s_& set_format4_r13(); + format5_r13_s_& set_format5_r13(); private: types type_; @@ -6190,20 +5742,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r13"); + assert_choice_type(types::setup, type_, "nPUCCH-Param-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "nPUCCH-Param-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6227,20 +5775,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r13"); + assert_choice_type(types::setup, type_, "nkaPUCCH-Param-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "nkaPUCCH-Param-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6249,7 +5793,7 @@ struct pucch_cfg_ded_r13_s { struct codebooksize_determination_r13_opts { enum options { dai, cc, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated codebooksize_determination_r13_e_; struct pucch_num_repeat_ce_r13_c_ { @@ -6259,7 +5803,7 @@ struct pucch_cfg_ded_r13_s { enum options { r1, r2, r4, r8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_format1_r13_e_; @@ -6267,7 +5811,7 @@ struct pucch_cfg_ded_r13_s { enum options { r1, r2, r4, r8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_format2_r13_e_; @@ -6281,7 +5825,7 @@ struct pucch_cfg_ded_r13_s { enum options { r4, r8, r16, r32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_format1_r13_e_; @@ -6289,7 +5833,7 @@ struct pucch_cfg_ded_r13_s { enum options { r4, r8, r16, r32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_format2_r13_e_; @@ -6301,7 +5845,7 @@ struct pucch_cfg_ded_r13_s { struct types_opts { enum options { mode_a, mode_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6320,34 +5864,26 @@ struct pucch_cfg_ded_r13_s { // getters mode_a_s_& mode_a() { - assert_choice_type("modeA", type_.to_string(), "setup"); + assert_choice_type(types::mode_a, type_, "setup"); return c.get(); } mode_b_s_& mode_b() { - assert_choice_type("modeB", type_.to_string(), "setup"); + assert_choice_type(types::mode_b, type_, "setup"); return c.get(); } const mode_a_s_& mode_a() const { - assert_choice_type("modeA", type_.to_string(), "setup"); + assert_choice_type(types::mode_a, type_, "setup"); return c.get(); } const mode_b_s_& mode_b() const { - assert_choice_type("modeB", type_.to_string(), "setup"); - return c.get(); - } - mode_a_s_& set_mode_a() - { - set(types::mode_a); - return c.get(); - } - mode_b_s_& set_mode_b() - { - set(types::mode_b); + assert_choice_type(types::mode_b, type_, "setup"); return c.get(); } + mode_a_s_& set_mode_a(); + mode_b_s_& set_mode_b(); private: types type_; @@ -6369,20 +5905,16 @@ struct pucch_cfg_ded_r13_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "pucch-NumRepetitionCE-r13"); + assert_choice_type(types::setup, type_, "pucch-NumRepetitionCE-r13"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "pucch-NumRepetitionCE-r13"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pucch-NumRepetitionCE-r13"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -6444,20 +5976,16 @@ struct pucch_cfg_ded_v1020_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r10"); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6472,7 +6000,7 @@ struct pucch_cfg_ded_v1020_s { enum options { format3_r10, ch_sel_r10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -6490,34 +6018,26 @@ struct pucch_cfg_ded_v1020_s { // getters pucch_format3_conf_r13_s& format3_r10() { - assert_choice_type("format3-r10", type_.to_string(), "pucch-Format-r10"); + assert_choice_type(types::format3_r10, type_, "pucch-Format-r10"); return c.get(); } ch_sel_r10_s_& ch_sel_r10() { - assert_choice_type("channelSelection-r10", type_.to_string(), "pucch-Format-r10"); + assert_choice_type(types::ch_sel_r10, type_, "pucch-Format-r10"); return c.get(); } const pucch_format3_conf_r13_s& format3_r10() const { - assert_choice_type("format3-r10", type_.to_string(), "pucch-Format-r10"); + assert_choice_type(types::format3_r10, type_, "pucch-Format-r10"); return c.get(); } const ch_sel_r10_s_& ch_sel_r10() const { - assert_choice_type("channelSelection-r10", type_.to_string(), "pucch-Format-r10"); - return c.get(); - } - pucch_format3_conf_r13_s& set_format3_r10() - { - set(types::format3_r10); - return c.get(); - } - ch_sel_r10_s_& set_ch_sel_r10() - { - set(types::ch_sel_r10); + assert_choice_type(types::ch_sel_r10, type_, "pucch-Format-r10"); return c.get(); } + pucch_format3_conf_r13_s& set_format3_r10(); + ch_sel_r10_s_& set_ch_sel_r10(); private: types type_; @@ -6561,20 +6081,16 @@ struct pucch_cfg_ded_v1130_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v1130"); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-v1130"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v1130"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-v1130"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6597,20 +6113,16 @@ struct pucch_cfg_ded_v1130_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r11"); + assert_choice_type(types::setup, type_, "nPUCCH-Param-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "nPUCCH-Param-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6647,20 +6159,16 @@ struct pucch_cfg_ded_v1250_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r12"); + assert_choice_type(types::setup, type_, "nkaPUCCH-Param-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "nkaPUCCH-Param-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6682,7 +6190,7 @@ struct pucch_cfg_ded_v1430_s { enum options { r64, r128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_format1_r14_e_; @@ -6737,20 +6245,16 @@ struct pusch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); + assert_choice_type(types::setup, type_, "pusch-DMRS-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pusch-DMRS-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6789,20 +6293,16 @@ struct pusch_cfg_ded_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); + assert_choice_type(types::setup, type_, "uciOnPUSCH"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "uciOnPUSCH"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6874,20 +6374,16 @@ struct pusch_cfg_ded_v1130_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); + assert_choice_type(types::setup, type_, "pusch-DMRS-r11"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pusch-DMRS-r11"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6934,20 +6430,16 @@ struct pusch_cfg_ded_v1250_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); + assert_choice_type(types::setup, type_, "uciOnPUSCH"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "uciOnPUSCH"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6998,20 +6490,16 @@ struct pusch_cfg_ded_v1530_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); + assert_choice_type(types::setup, type_, "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7036,20 +6524,16 @@ struct pusch_cfg_ded_v1530_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ce-PUSCH-SubPRB-Config-r15"); + assert_choice_type(types::setup, type_, "ce-PUSCH-SubPRB-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ce-PUSCH-SubPRB-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ce-PUSCH-SubPRB-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7075,7 +6559,7 @@ struct pusch_enhance_cfg_r14_c { enum options { int1, int2, int4, int8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_pusch_enh_r14_e_; @@ -7083,14 +6567,14 @@ struct pusch_enhance_cfg_r14_c { enum options { int1, int5, int10, int20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_pusch_enh_r14_e_; struct types_opts { enum options { interv_fdd_pusch_enh_r14, interv_tdd_pusch_enh_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7107,34 +6591,26 @@ struct pusch_enhance_cfg_r14_c { // getters interv_fdd_pusch_enh_r14_e_& interv_fdd_pusch_enh_r14() { - assert_choice_type("interval-FDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14"); + assert_choice_type(types::interv_fdd_pusch_enh_r14, type_, "interval-ULHoppingPUSCH-Enh-r14"); return c.get(); } interv_tdd_pusch_enh_r14_e_& interv_tdd_pusch_enh_r14() { - assert_choice_type("interval-TDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14"); + assert_choice_type(types::interv_tdd_pusch_enh_r14, type_, "interval-ULHoppingPUSCH-Enh-r14"); return c.get(); } const interv_fdd_pusch_enh_r14_e_& interv_fdd_pusch_enh_r14() const { - assert_choice_type("interval-FDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14"); + assert_choice_type(types::interv_fdd_pusch_enh_r14, type_, "interval-ULHoppingPUSCH-Enh-r14"); return c.get(); } const interv_tdd_pusch_enh_r14_e_& interv_tdd_pusch_enh_r14() const { - assert_choice_type("interval-TDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14"); - return c.get(); - } - interv_fdd_pusch_enh_r14_e_& set_interv_fdd_pusch_enh_r14() - { - set(types::interv_fdd_pusch_enh_r14); - return c.get(); - } - interv_tdd_pusch_enh_r14_e_& set_interv_tdd_pusch_enh_r14() - { - set(types::interv_tdd_pusch_enh_r14); + assert_choice_type(types::interv_tdd_pusch_enh_r14, type_, "interval-ULHoppingPUSCH-Enh-r14"); return c.get(); } + interv_fdd_pusch_enh_r14_e_& set_interv_fdd_pusch_enh_r14(); + interv_tdd_pusch_enh_r14_e_& set_interv_tdd_pusch_enh_r14(); private: types type_; @@ -7161,20 +6637,16 @@ struct pusch_enhance_cfg_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "PUSCH-EnhancementsConfig-r14"); + assert_choice_type(types::setup, type_, "PUSCH-EnhancementsConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "PUSCH-EnhancementsConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "PUSCH-EnhancementsConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7240,20 +6712,16 @@ struct phys_cfg_ded_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "PhysicalConfigDedicatedSTTI-r15"); + assert_choice_type(types::setup, type_, "PhysicalConfigDedicatedSTTI-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "PhysicalConfigDedicatedSTTI-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "PhysicalConfigDedicatedSTTI-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7287,20 +6755,16 @@ struct spucch_cfg_v1550_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-v1550"); + assert_choice_type(types::setup, type_, "SPUCCH-Config-v1550"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-v1550"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPUCCH-Config-v1550"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7333,20 +6797,16 @@ struct srs_tpc_pdcch_cfg_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SRS-TPC-PDCCH-Config-r14"); + assert_choice_type(types::setup, type_, "SRS-TPC-PDCCH-Config-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SRS-TPC-PDCCH-Config-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SRS-TPC-PDCCH-Config-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7360,7 +6820,7 @@ struct sched_request_cfg_c { enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dsr_trans_max_e_; @@ -7382,20 +6842,16 @@ struct sched_request_cfg_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig"); + assert_choice_type(types::setup, type_, "SchedulingRequestConfig"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SchedulingRequestConfig"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7420,7 +6876,7 @@ struct srs_ul_cfg_ded_c { enum options { bw0, bw1, bw2, bw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_bw_e_; @@ -7428,7 +6884,7 @@ struct srs_ul_cfg_ded_c { enum options { hbw0, hbw1, hbw2, hbw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_hop_bw_e_; @@ -7436,7 +6892,7 @@ struct srs_ul_cfg_ded_c { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_e_; @@ -7464,20 +6920,16 @@ struct srs_ul_cfg_ded_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicated"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicated"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7503,7 +6955,7 @@ struct srs_ul_cfg_ded_v1310_c { enum options { cs8, cs9, cs10, cs11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_v1310_e_; @@ -7511,7 +6963,7 @@ struct srs_ul_cfg_ded_v1310_c { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_comb_num_r13_e_; @@ -7538,20 +6990,16 @@ struct srs_ul_cfg_ded_v1310_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated-v1310"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicated-v1310"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicated-v1310"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7583,20 +7031,16 @@ struct srs_ul_cfg_ded_aperiodic_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r10"); + assert_choice_type(types::setup, type_, "srs-ActivateAp-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "srs-ActivateAp-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7624,20 +7068,16 @@ struct srs_ul_cfg_ded_aperiodic_r10_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-r10"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7669,20 +7109,16 @@ struct srs_ul_cfg_ded_aperiodic_v1310_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-v1310"); + assert_choice_type(types::setup, type_, "srs-ActivateAp-v1310"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "srs-ActivateAp-v1310"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7709,20 +7145,16 @@ struct srs_ul_cfg_ded_aperiodic_v1310_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1310"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-v1310"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1310"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-v1310"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7736,7 +7168,7 @@ struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c { enum options { sym2, sym4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_up_pts_add_r13_e_; @@ -7760,20 +7192,16 @@ struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r13"); + assert_choice_type(types::setup, type_, "srs-ActivateAp-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "srs-ActivateAp-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7802,20 +7230,16 @@ struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7829,7 +7253,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { enum options { sym2, sym4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_up_pts_add_r13_e_; @@ -7837,7 +7261,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { enum options { bw0, bw1, bw2, bw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_bw_r13_e_; @@ -7845,7 +7269,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { enum options { hbw0, hbw1, hbw2, hbw3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_hop_bw_r13_e_; @@ -7853,7 +7277,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, cs8, cs9, cs10, cs11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_r13_e_; @@ -7861,7 +7285,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_comb_num_r13_e_; @@ -7892,20 +7316,16 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -7918,7 +7338,7 @@ struct ul_pwr_ctrl_ded_s { enum options { en0, en1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_mcs_enabled_e_; @@ -7991,20 +7411,16 @@ struct ul_pwr_ctrl_ded_v1250_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "set2PowerControlParameter"); + assert_choice_type(types::setup, type_, "set2PowerControlParameter"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "set2PowerControlParameter"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "set2PowerControlParameter"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -8043,7 +7459,7 @@ struct phys_cfg_ded_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8057,20 +7473,16 @@ struct phys_cfg_ded_s { // getters ant_info_ded_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "antennaInfo"); + assert_choice_type(types::explicit_value, type_, "antennaInfo"); return c; } const ant_info_ded_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "antennaInfo"); - return c; - } - ant_info_ded_s& set_explicit_value() - { - set(types::explicit_value); + assert_choice_type(types::explicit_value, type_, "antennaInfo"); return c; } - void set_default_value() { set(types::default_value); } + ant_info_ded_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -8080,7 +7492,7 @@ struct phys_cfg_ded_s { struct types_opts { enum options { explicit_value_r10, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8094,20 +7506,16 @@ struct phys_cfg_ded_s { // getters ant_info_ded_r10_s& explicit_value_r10() { - assert_choice_type("explicitValue-r10", type_.to_string(), "antennaInfo-r10"); + assert_choice_type(types::explicit_value_r10, type_, "antennaInfo-r10"); return c; } const ant_info_ded_r10_s& explicit_value_r10() const { - assert_choice_type("explicitValue-r10", type_.to_string(), "antennaInfo-r10"); - return c; - } - ant_info_ded_r10_s& set_explicit_value_r10() - { - set(types::explicit_value_r10); + assert_choice_type(types::explicit_value_r10, type_, "antennaInfo-r10"); return c; } - void set_default_value() { set(types::default_value); } + ant_info_ded_r10_s& set_explicit_value_r10(); + void set_default_value(); private: types type_; @@ -8129,20 +7537,16 @@ struct phys_cfg_ded_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "additionalSpectrumEmissionCA-r10"); + assert_choice_type(types::setup, type_, "additionalSpectrumEmissionCA-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "additionalSpectrumEmissionCA-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "additionalSpectrumEmissionCA-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -8152,7 +7556,7 @@ struct phys_cfg_ded_s { struct setup_opts { enum options { ce_mode_a, ce_mode_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated setup_e_; using types = setup_e; @@ -8167,20 +7571,16 @@ struct phys_cfg_ded_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "ce-Mode-r13"); + assert_choice_type(types::setup, type_, "ce-Mode-r13"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "ce-Mode-r13"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ce-Mode-r13"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -8200,20 +7600,16 @@ struct phys_cfg_ded_s { // getters setup_l_& setup() { - assert_choice_type("setup", type_.to_string(), "typeA-SRS-TPC-PDCCH-Group-r14"); + assert_choice_type(types::setup, type_, "typeA-SRS-TPC-PDCCH-Group-r14"); return c; } const setup_l_& setup() const { - assert_choice_type("setup", type_.to_string(), "typeA-SRS-TPC-PDCCH-Group-r14"); - return c; - } - void set_release() { set(types::release); } - setup_l_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "typeA-SRS-TPC-PDCCH-Group-r14"); return c; } + void set_release(); + setup_l_& set_setup(); private: types type_; @@ -8225,7 +7621,7 @@ struct phys_cfg_ded_s { enum options { l1, l3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated k_max_r14_e_; @@ -8233,9 +7629,9 @@ struct phys_cfg_ded_s { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_must_r14_e_; @@ -8256,20 +7652,16 @@ struct phys_cfg_ded_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "must-Config-r14"); + assert_choice_type(types::setup, type_, "must-Config-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "must-Config-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "must-Config-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -8284,7 +7676,7 @@ struct phys_cfg_ded_s { struct types_opts { enum options { cfi_cfg_r15, cfi_pattern_cfg_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8301,34 +7693,26 @@ struct phys_cfg_ded_s { // getters cfi_cfg_r15_s& cfi_cfg_r15() { - assert_choice_type("cfi-Config-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_cfg_r15, type_, "setup"); return c.get(); } cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() { - assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_pattern_cfg_r15, type_, "setup"); return c.get(); } const cfi_cfg_r15_s& cfi_cfg_r15() const { - assert_choice_type("cfi-Config-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_cfg_r15, type_, "setup"); return c.get(); } const cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() const { - assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup"); - return c.get(); - } - cfi_cfg_r15_s& set_cfi_cfg_r15() - { - set(types::cfi_cfg_r15); - return c.get(); - } - cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15() - { - set(types::cfi_pattern_cfg_r15); + assert_choice_type(types::cfi_pattern_cfg_r15, type_, "setup"); return c.get(); } + cfi_cfg_r15_s& set_cfi_cfg_r15(); + cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15(); private: types type_; @@ -8348,20 +7732,16 @@ struct phys_cfg_ded_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); + assert_choice_type(types::setup, type_, "semiStaticCFI-Config-r15"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "semiStaticCFI-Config-r15"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -8373,7 +7753,7 @@ struct phys_cfg_ded_s { enum options { n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_sf_pdsch_repeats_r15_e_; @@ -8381,7 +7761,7 @@ struct phys_cfg_ded_s { enum options { n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_slot_subslot_pdsch_repeats_r15_e_; @@ -8389,7 +7769,7 @@ struct phys_cfg_ded_s { enum options { dlrvseq1, dlrvseq2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_sf_pdsch_repeats_r15_e_; @@ -8397,7 +7777,7 @@ struct phys_cfg_ded_s { enum options { dlrvseq1, dlrvseq2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_slotsublot_pdsch_repeats_r15_e_; @@ -8405,7 +7785,7 @@ struct phys_cfg_ded_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mcs_restrict_sf_pdsch_repeats_r15_e_; @@ -8413,7 +7793,7 @@ struct phys_cfg_ded_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated @@ -8451,20 +7831,16 @@ struct phys_cfg_ded_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); + assert_choice_type(types::setup, type_, "blindPDSCH-Repetition-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "blindPDSCH-Repetition-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/rr_common.h b/lib/include/srsran/asn1/rrc/rr_common.h index 604e03b4b..f7453e150 100644 --- a/lib/include/srsran/asn1/rrc/rr_common.h +++ b/lib/include/srsran/asn1/rrc/rr_common.h @@ -42,16 +42,16 @@ struct phich_cfg_s { struct phich_dur_opts { enum options { normal, extended, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated phich_dur_e_; struct phich_res_opts { enum options { one_sixth, half, one, two, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated phich_res_e_; @@ -73,7 +73,7 @@ struct plmn_id_info_r15_s { struct types_opts { enum options { plmn_id_r15, plmn_idx_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -90,34 +90,26 @@ struct plmn_id_info_r15_s { // getters plmn_id_s& plmn_id_r15() { - assert_choice_type("plmn-Identity-r15", type_.to_string(), "plmn-Identity-5GC-r15"); + assert_choice_type(types::plmn_id_r15, type_, "plmn-Identity-5GC-r15"); return c.get(); } uint8_t& plmn_idx_r15() { - assert_choice_type("plmn-Index-r15", type_.to_string(), "plmn-Identity-5GC-r15"); + assert_choice_type(types::plmn_idx_r15, type_, "plmn-Identity-5GC-r15"); return c.get(); } const plmn_id_s& plmn_id_r15() const { - assert_choice_type("plmn-Identity-r15", type_.to_string(), "plmn-Identity-5GC-r15"); + assert_choice_type(types::plmn_id_r15, type_, "plmn-Identity-5GC-r15"); return c.get(); } const uint8_t& plmn_idx_r15() const { - assert_choice_type("plmn-Index-r15", type_.to_string(), "plmn-Identity-5GC-r15"); - return c.get(); - } - plmn_id_s& set_plmn_id_r15() - { - set(types::plmn_id_r15); - return c.get(); - } - uint8_t& set_plmn_idx_r15() - { - set(types::plmn_idx_r15); + assert_choice_type(types::plmn_idx_r15, type_, "plmn-Identity-5GC-r15"); return c.get(); } + plmn_id_s& set_plmn_id_r15(); + uint8_t& set_plmn_idx_r15(); private: types type_; @@ -128,13 +120,13 @@ struct plmn_id_info_r15_s { struct cell_reserved_for_oper_r15_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_r15_e_; struct cell_reserved_for_oper_crs_r15_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_crs_r15_e_; @@ -154,7 +146,7 @@ struct cell_id_minus5_gc_r15_c { struct types_opts { enum options { cell_id_r15, cell_id_idx_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -171,34 +163,26 @@ struct cell_id_minus5_gc_r15_c { // getters fixed_bitstring<28>& cell_id_r15() { - assert_choice_type("cellIdentity-r15", type_.to_string(), "CellIdentity-5GC-r15"); + assert_choice_type(types::cell_id_r15, type_, "CellIdentity-5GC-r15"); return c.get >(); } uint8_t& cell_id_idx_r15() { - assert_choice_type("cellId-Index-r15", type_.to_string(), "CellIdentity-5GC-r15"); + assert_choice_type(types::cell_id_idx_r15, type_, "CellIdentity-5GC-r15"); return c.get(); } const fixed_bitstring<28>& cell_id_r15() const { - assert_choice_type("cellIdentity-r15", type_.to_string(), "CellIdentity-5GC-r15"); + assert_choice_type(types::cell_id_r15, type_, "CellIdentity-5GC-r15"); return c.get >(); } const uint8_t& cell_id_idx_r15() const { - assert_choice_type("cellId-Index-r15", type_.to_string(), "CellIdentity-5GC-r15"); - return c.get(); - } - fixed_bitstring<28>& set_cell_id_r15() - { - set(types::cell_id_r15); - return c.get >(); - } - uint8_t& set_cell_id_idx_r15() - { - set(types::cell_id_idx_r15); + assert_choice_type(types::cell_id_idx_r15, type_, "CellIdentity-5GC-r15"); return c.get(); } + fixed_bitstring<28>& set_cell_id_r15(); + uint8_t& set_cell_id_idx_r15(); private: types type_; @@ -238,7 +222,7 @@ struct tdd_cfg_s { enum options { sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sf_assign_e_; @@ -246,7 +230,7 @@ struct tdd_cfg_s { enum options { ssp0, ssp1, ssp2, ssp3, ssp4, ssp5, ssp6, ssp7, ssp8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated special_sf_patterns_e_; @@ -277,7 +261,7 @@ struct tdd_cfg_v1130_s { enum options { ssp7, ssp9, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated special_sf_patterns_v1130_e_; @@ -299,7 +283,7 @@ struct prach_params_ce_r13_s { enum options { sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated prach_start_sf_r13_e_; @@ -307,7 +291,7 @@ struct prach_params_ce_r13_s { enum options { n3, n4, n5, n6, n7, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_preamb_attempt_ce_r13_e_; @@ -315,7 +299,7 @@ struct prach_params_ce_r13_s { enum options { n1, n2, n4, n8, n16, n32, n64, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_repeat_per_preamb_attempt_r13_e_; @@ -324,14 +308,14 @@ struct prach_params_ce_r13_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_ra_r13_e_; struct prach_hop_cfg_r13_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated prach_hop_cfg_r13_e_; @@ -363,7 +347,7 @@ struct rach_ce_level_info_r13_s { enum options { sf20, sf50, sf80, sf120, sf180, sf240, sf320, sf400, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ra_resp_win_size_r13_e_; @@ -371,14 +355,14 @@ struct rach_ce_level_info_r13_s { enum options { sf80, sf100, sf120, sf160, sf200, sf240, sf480, sf960, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mac_contention_resolution_timer_r13_e_; struct rar_hop_cfg_r13_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rar_hop_cfg_r13_e_; struct edt_params_r15_s_ { @@ -386,7 +370,7 @@ struct rach_ce_level_info_r13_s { enum options { b328, b408, b504, b600, b712, b808, b936, b1000or456, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated edt_tbs_r15_e_; @@ -394,7 +378,7 @@ struct rach_ce_level_info_r13_s { enum options { sf240, sf480, sf960, sf1920, sf3840, sf5760, sf7680, sf10240, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mac_contention_resolution_timer_r15_e_; @@ -429,7 +413,7 @@ struct delta_flist_pucch_s { enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format1_e_; @@ -437,7 +421,7 @@ struct delta_flist_pucch_s { enum options { delta_f1, delta_f3, delta_f5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format1b_e_; @@ -445,7 +429,7 @@ struct delta_flist_pucch_s { enum options { delta_f_minus2, delta_f0, delta_f1, delta_f2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format2_e_; @@ -453,7 +437,7 @@ struct delta_flist_pucch_s { enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format2a_e_; @@ -461,7 +445,7 @@ struct delta_flist_pucch_s { enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format2b_e_; @@ -498,7 +482,7 @@ struct delta_flist_spucch_r15_c { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_format1_r15_e_; @@ -506,7 +490,7 @@ struct delta_flist_spucch_r15_c { enum options { delta_f1, delta_f2, delta_f3, delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_format1a_r15_e_; @@ -514,7 +498,7 @@ struct delta_flist_spucch_r15_c { enum options { delta_f3, delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, delta_f9, delta_f10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_format1b_r15_e_; @@ -522,7 +506,7 @@ struct delta_flist_spucch_r15_c { enum options { delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, delta_f9, delta_f10, delta_f11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_format3_r15_e_; @@ -540,7 +524,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_rm_format4_r15_e_; @@ -558,7 +542,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_slot_spucch_tbcc_format4_r15_e_; @@ -576,7 +560,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_subslot_spucch_format1and1a_r15_e_; @@ -594,7 +578,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_subslot_spucch_format1b_r15_e_; @@ -612,7 +596,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_subslot_spucch_rm_format4_r15_e_; @@ -630,7 +614,7 @@ struct delta_flist_spucch_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_subslot_spucch_tbcc_format4_r15_e_; @@ -673,20 +657,16 @@ struct delta_flist_spucch_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "DeltaFList-SPUCCH-r15"); + assert_choice_type(types::setup, type_, "DeltaFList-SPUCCH-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "DeltaFList-SPUCCH-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "DeltaFList-SPUCCH-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -700,7 +680,7 @@ struct edt_prach_params_ce_r15_s { enum options { sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated prach_start_sf_r15_e_; @@ -751,7 +731,7 @@ struct pwr_ramp_params_s { enum options { db0, db2, db4, db6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pwr_ramp_step_e_; @@ -777,7 +757,7 @@ struct pwr_ramp_params_s { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated preamb_init_rx_target_pwr_e_; @@ -799,7 +779,7 @@ struct preamb_trans_max_opts { enum options { n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated preamb_trans_max_e; @@ -831,7 +811,7 @@ struct bcch_cfg_s { enum options { n2, n4, n8, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mod_period_coeff_e_; @@ -859,7 +839,7 @@ struct freq_hop_params_r13_s { enum options { nb2, nb4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dummy_e_; @@ -868,7 +848,7 @@ struct freq_hop_params_r13_s { enum options { int1, int2, int4, int8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -876,14 +856,14 @@ struct freq_hop_params_r13_s { enum options { int1, int5, int10, int20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -900,34 +880,26 @@ struct freq_hop_params_r13_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy2"); + assert_choice_type(types::interv_fdd_r13, type_, "dummy2"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy2"); + assert_choice_type(types::interv_tdd_r13, type_, "dummy2"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy2"); + assert_choice_type(types::interv_fdd_r13, type_, "dummy2"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy2"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "dummy2"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -940,7 +912,7 @@ struct freq_hop_params_r13_s { enum options { int2, int4, int8, int16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -948,14 +920,14 @@ struct freq_hop_params_r13_s { enum options { int5, int10, int20, int40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -972,34 +944,26 @@ struct freq_hop_params_r13_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy3"); + assert_choice_type(types::interv_fdd_r13, type_, "dummy3"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy3"); + assert_choice_type(types::interv_tdd_r13, type_, "dummy3"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy3"); + assert_choice_type(types::interv_fdd_r13, type_, "dummy3"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy3"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "dummy3"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -1012,7 +976,7 @@ struct freq_hop_params_r13_s { enum options { int1, int2, int4, int8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -1020,14 +984,14 @@ struct freq_hop_params_r13_s { enum options { int1, int5, int10, int20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1044,34 +1008,26 @@ struct freq_hop_params_r13_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-ULHoppingConfigCommonModeA-r13"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_tdd_r13, type_, "interval-ULHoppingConfigCommonModeA-r13"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-ULHoppingConfigCommonModeA-r13"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "interval-ULHoppingConfigCommonModeA-r13"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -1084,7 +1040,7 @@ struct freq_hop_params_r13_s { enum options { int2, int4, int8, int16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -1092,14 +1048,14 @@ struct freq_hop_params_r13_s { enum options { int5, int10, int20, int40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1116,34 +1072,26 @@ struct freq_hop_params_r13_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-ULHoppingConfigCommonModeB-r13"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_tdd_r13, type_, "interval-ULHoppingConfigCommonModeB-r13"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-ULHoppingConfigCommonModeB-r13"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "interval-ULHoppingConfigCommonModeB-r13"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -1197,7 +1145,7 @@ struct pcch_cfg_s { enum options { rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated default_paging_cycle_e_; @@ -1215,9 +1163,9 @@ struct pcch_cfg_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nb_e_; @@ -1237,7 +1185,7 @@ struct pcch_cfg_v1310_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_paging_r13_e_; @@ -1245,7 +1193,7 @@ struct pcch_cfg_v1310_s { enum options { one64th_t, one128th_t, one256th_t, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nb_v1310_e_; @@ -1281,7 +1229,7 @@ struct pdsch_cfg_common_v1310_s { enum options { r16, r32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_a_r13_e_; @@ -1289,7 +1237,7 @@ struct pdsch_cfg_common_v1310_s { enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_b_r13_e_; @@ -1339,23 +1287,23 @@ struct prach_cfg_sib_v1310_s { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated fdd_r13_e_; struct tdd_r13_opts { enum options { v1, v2, v4, v5, v8, v10, v20, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r13_e_; struct types_opts { enum options { fdd_r13, tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1372,34 +1320,26 @@ struct prach_cfg_sib_v1310_s { // getters fdd_r13_e_& fdd_r13() { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } tdd_r13_e_& tdd_r13() { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::tdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } const fdd_r13_e_& fdd_r13() const { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } const tdd_r13_e_& tdd_r13() const { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); - return c.get(); - } - fdd_r13_e_& set_fdd_r13() - { - set(types::fdd_r13); - return c.get(); - } - tdd_r13_e_& set_tdd_r13() - { - set(types::tdd_r13); + assert_choice_type(types::tdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } + fdd_r13_e_& set_fdd_r13(); + tdd_r13_e_& set_tdd_r13(); private: types type_; @@ -1441,7 +1381,7 @@ struct pucch_cfg_common_s { enum options { ds1, ds2, ds3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_pucch_shift_e_; @@ -1466,7 +1406,7 @@ struct pucch_cfg_common_v1310_s { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_msg4_level0_r13_e_; @@ -1474,7 +1414,7 @@ struct pucch_cfg_common_v1310_s { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_msg4_level1_r13_e_; @@ -1482,7 +1422,7 @@ struct pucch_cfg_common_v1310_s { enum options { n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_msg4_level2_r13_e_; @@ -1490,7 +1430,7 @@ struct pucch_cfg_common_v1310_s { enum options { n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_msg4_level3_r13_e_; @@ -1519,7 +1459,7 @@ struct pucch_cfg_common_v1430_s { enum options { n64, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pucch_num_repeat_ce_msg4_level3_r14_e_; @@ -1540,7 +1480,7 @@ struct pusch_cfg_common_s { struct hop_mode_opts { enum options { inter_sub_frame, intra_and_inter_sub_frame, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated hop_mode_e_; @@ -1579,7 +1519,7 @@ struct pusch_cfg_common_v1310_s { enum options { r8, r16, r32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pusch_max_num_repeat_cemode_a_r13_e_; @@ -1587,7 +1527,7 @@ struct pusch_cfg_common_v1310_s { enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pusch_max_num_repeat_cemode_b_r13_e_; @@ -1613,7 +1553,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nof_ra_preambs_e_; @@ -1622,7 +1562,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated size_of_ra_preambs_group_a_e_; @@ -1630,7 +1570,7 @@ struct rach_cfg_common_s { enum options { b56, b144, b208, b256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated msg_size_group_a_e_; @@ -1638,7 +1578,7 @@ struct rach_cfg_common_s { enum options { minusinfinity, db0, db5, db8, db10, db12, db15, db18, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated msg_pwr_offset_group_b_e_; @@ -1661,7 +1601,7 @@ struct rach_cfg_common_s { enum options { sf2, sf3, sf4, sf5, sf6, sf7, sf8, sf10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ra_resp_win_size_e_; @@ -1669,7 +1609,7 @@ struct rach_cfg_common_s { enum options { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mac_contention_resolution_timer_e_; @@ -1707,7 +1647,7 @@ struct rach_cfg_common_v1250_s { enum options { n1, n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated conn_est_fail_count_r12_e_; @@ -1715,7 +1655,7 @@ struct rach_cfg_common_v1250_s { enum options { s30, s60, s120, s240, s300, s420, s600, s900, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated conn_est_fail_offset_validity_r12_e_; @@ -1742,7 +1682,7 @@ struct rss_cfg_r15_s { enum options { sf8, sf16, sf32, sf40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dur_r15_e_; @@ -1750,7 +1690,7 @@ struct rss_cfg_r15_s { enum options { ms160, ms320, ms640, ms1280, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated periodicity_r15_e_; @@ -1758,9 +1698,9 @@ struct rss_cfg_r15_s { enum options { db0, db3, db4dot8, db6, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated pwr_boost_r15_e_; @@ -1784,7 +1724,7 @@ struct srs_ul_cfg_common_c { enum options { bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_bw_cfg_e_; @@ -1810,7 +1750,7 @@ struct srs_ul_cfg_common_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_sf_cfg_e_; @@ -1835,20 +1775,16 @@ struct srs_ul_cfg_common_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigCommon"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigCommon"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigCommon"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigCommon"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1860,7 +1796,7 @@ struct ul_cp_len_opts { enum options { len1, len2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_cp_len_e; @@ -1895,7 +1831,7 @@ struct ul_pwr_ctrl_common_v1020_s { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format3_r10_e_; @@ -1903,7 +1839,7 @@ struct ul_pwr_ctrl_common_v1020_s { enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format1b_cs_r10_e_; @@ -1936,7 +1872,7 @@ struct wus_cfg_r15_s { enum options { one32th, one16th, one8th, one4th, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_dur_factor_r15_e_; @@ -1944,7 +1880,7 @@ struct wus_cfg_r15_s { enum options { n1, n2, n4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_pos_r15_e_; @@ -1952,7 +1888,7 @@ struct wus_cfg_r15_s { enum options { n0, n2, n4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated freq_location_r15_e_; @@ -1960,7 +1896,7 @@ struct wus_cfg_r15_s { enum options { ms40, ms80, ms160, ms240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_offset_drx_r15_e_; @@ -1968,7 +1904,7 @@ struct wus_cfg_r15_s { enum options { ms40, ms80, ms160, ms240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_offset_e_drx_short_r15_e_; @@ -1976,7 +1912,7 @@ struct wus_cfg_r15_s { enum options { ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated time_offset_e_drx_long_r15_e_; @@ -2003,9 +1939,9 @@ struct wus_cfg_v1560_s { enum options { db0, db1dot8, db3, db4dot8, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated pwr_boost_r15_e_; @@ -2071,7 +2007,7 @@ struct time_align_timer_opts { enum options { sf500, sf750, sf1280, sf1920, sf2560, sf5120, sf10240, infinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated time_align_timer_e; @@ -2082,7 +2018,7 @@ struct ant_info_common_s { enum options { an1, an2, an4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ant_ports_count_e_; @@ -2214,7 +2150,7 @@ struct ul_pwr_ctrl_common_scell_v1310_s { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated delta_f_pucch_format3_r12_e_; @@ -2222,7 +2158,7 @@ struct ul_pwr_ctrl_common_scell_v1310_s { enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format1b_cs_r12_e_; @@ -2240,7 +2176,7 @@ struct ul_pwr_ctrl_common_scell_v1310_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format4_r13_e_; @@ -2248,7 +2184,7 @@ struct ul_pwr_ctrl_common_scell_v1310_s { enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format5_minus13_e_; @@ -2280,7 +2216,7 @@ struct rr_cfg_common_scell_r10_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dl_bw_r10_e_; @@ -2301,7 +2237,7 @@ struct rr_cfg_common_scell_r10_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_r10_e_; @@ -2331,7 +2267,7 @@ struct rr_cfg_common_scell_r10_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_r14_e_; @@ -2359,7 +2295,7 @@ struct rr_cfg_common_scell_r10_s { enum options { sa2, sa4, sa5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated harq_ref_cfg_r14_e_; @@ -2419,7 +2355,7 @@ struct ul_pwr_ctrl_common_v1310_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format4_r13_e_; @@ -2427,7 +2363,7 @@ struct ul_pwr_ctrl_common_v1310_s { enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_f_pucch_format5_minus13_e_; @@ -2451,23 +2387,23 @@ struct prach_cfg_v1310_s { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated fdd_r13_e_; struct tdd_r13_opts { enum options { v1, v2, v4, v5, v8, v10, v20, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r13_e_; struct types_opts { enum options { fdd_r13, tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2484,34 +2420,26 @@ struct prach_cfg_v1310_s { // getters fdd_r13_e_& fdd_r13() { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } tdd_r13_e_& tdd_r13() { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::tdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } const fdd_r13_e_& fdd_r13() const { - assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); + assert_choice_type(types::fdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } const tdd_r13_e_& tdd_r13() const { - assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13"); - return c.get(); - } - fdd_r13_e_& set_fdd_r13() - { - set(types::fdd_r13); - return c.get(); - } - tdd_r13_e_& set_tdd_r13() - { - set(types::tdd_r13); + assert_choice_type(types::tdd_r13, type_, "mpdcch-startSF-CSS-RA-r13"); return c.get(); } + fdd_r13_e_& set_fdd_r13(); + tdd_r13_e_& set_tdd_r13(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/rr_ded.h b/lib/include/srsran/asn1/rrc/rr_ded.h index b63129feb..813931f03 100644 --- a/lib/include/srsran/asn1/rrc/rr_ded.h +++ b/lib/include/srsran/asn1/rrc/rr_ded.h @@ -77,7 +77,7 @@ struct poll_byte_r14_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated poll_byte_r14_e; @@ -105,7 +105,7 @@ struct poll_pdu_r15_opts { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated poll_pdu_r15_e; @@ -115,7 +115,7 @@ struct sn_field_len_opts { enum options { size5, size10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sn_field_len_e; @@ -125,7 +125,7 @@ struct sn_field_len_r15_opts { enum options { size5, size10, size16_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sn_field_len_r15_e; @@ -201,7 +201,7 @@ struct t_poll_retx_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_poll_retx_e; @@ -245,7 +245,7 @@ struct t_reordering_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_reordering_e; @@ -321,7 +321,7 @@ struct t_status_prohibit_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_status_prohibit_e; @@ -376,7 +376,7 @@ struct poll_byte_opts { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated poll_byte_e; @@ -386,7 +386,7 @@ struct poll_pdu_opts { enum options { p4, p8, p16, p32, p64, p128, p256, pinfinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated poll_pdu_e; @@ -397,7 +397,7 @@ struct ul_am_rlc_r15_s { enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_retx_thres_r15_e_; @@ -480,7 +480,7 @@ struct lc_ch_cfg_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated prioritised_bit_rate_e_; @@ -488,7 +488,7 @@ struct lc_ch_cfg_s { enum options { ms50, ms100, ms150, ms300, ms500, ms1000, spare2, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated bucket_size_dur_e_; @@ -504,9 +504,9 @@ struct lc_ch_cfg_s { enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated bit_rate_query_prohibit_timer_r14_e_; struct allowed_tti_lens_r15_c_ { @@ -528,20 +528,16 @@ struct lc_ch_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "allowedTTI-Lengths-r15"); + assert_choice_type(types::setup, type_, "allowedTTI-Lengths-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "allowedTTI-Lengths-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "allowedTTI-Lengths-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -551,7 +547,7 @@ struct lc_ch_cfg_s { struct setup_opts { enum options { spucch, pucch, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated setup_e_; using types = setup_e; @@ -568,20 +564,16 @@ struct lc_ch_cfg_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Restriction-r15"); + assert_choice_type(types::setup, type_, "logicalChannelSR-Restriction-r15"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Restriction-r15"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "logicalChannelSR-Restriction-r15"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -602,20 +594,16 @@ struct lc_ch_cfg_s { // getters uint8_t& setup() { - assert_choice_type("setup", type_.to_string(), "channelAccessPriority-r15"); + assert_choice_type(types::setup, type_, "channelAccessPriority-r15"); return c; } const uint8_t& setup() const { - assert_choice_type("setup", type_.to_string(), "channelAccessPriority-r15"); - return c; - } - void set_release() { set(types::release); } - uint8_t& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "channelAccessPriority-r15"); return c; } + void set_release(); + uint8_t& set_setup(); private: types type_; @@ -657,9 +645,9 @@ struct p_a_opts { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_e; @@ -668,7 +656,7 @@ struct poll_pdu_v1310_opts { enum options { p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated poll_pdu_v1310_e; @@ -693,7 +681,7 @@ struct rlc_cfg_r15_s { struct types_opts { enum options { am_r15, um_bi_dir_r15, um_uni_dir_ul_r15, um_uni_dir_dl_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -712,64 +700,48 @@ struct rlc_cfg_r15_s { // getters am_r15_s_& am_r15() { - assert_choice_type("am-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::am_r15, type_, "mode-r15"); return c.get(); } um_bi_dir_r15_s_& um_bi_dir_r15() { - assert_choice_type("um-Bi-Directional-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::um_bi_dir_r15, type_, "mode-r15"); return c.get(); } um_uni_dir_ul_r15_s_& um_uni_dir_ul_r15() { - assert_choice_type("um-Uni-Directional-UL-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::um_uni_dir_ul_r15, type_, "mode-r15"); return c.get(); } um_uni_dir_dl_r15_s_& um_uni_dir_dl_r15() { - assert_choice_type("um-Uni-Directional-DL-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::um_uni_dir_dl_r15, type_, "mode-r15"); return c.get(); } const am_r15_s_& am_r15() const { - assert_choice_type("am-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::am_r15, type_, "mode-r15"); return c.get(); } const um_bi_dir_r15_s_& um_bi_dir_r15() const { - assert_choice_type("um-Bi-Directional-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::um_bi_dir_r15, type_, "mode-r15"); return c.get(); } const um_uni_dir_ul_r15_s_& um_uni_dir_ul_r15() const { - assert_choice_type("um-Uni-Directional-UL-r15", type_.to_string(), "mode-r15"); + assert_choice_type(types::um_uni_dir_ul_r15, type_, "mode-r15"); return c.get(); } const um_uni_dir_dl_r15_s_& um_uni_dir_dl_r15() const { - assert_choice_type("um-Uni-Directional-DL-r15", type_.to_string(), "mode-r15"); - return c.get(); - } - am_r15_s_& set_am_r15() - { - set(types::am_r15); - return c.get(); - } - um_bi_dir_r15_s_& set_um_bi_dir_r15() - { - set(types::um_bi_dir_r15); - return c.get(); - } - um_uni_dir_ul_r15_s_& set_um_uni_dir_ul_r15() - { - set(types::um_uni_dir_ul_r15); - return c.get(); - } - um_uni_dir_dl_r15_s_& set_um_uni_dir_dl_r15() - { - set(types::um_uni_dir_dl_r15); + assert_choice_type(types::um_uni_dir_dl_r15, type_, "mode-r15"); return c.get(); } + am_r15_s_& set_am_r15(); + um_bi_dir_r15_s_& set_um_bi_dir_r15(); + um_uni_dir_ul_r15_s_& set_um_uni_dir_ul_r15(); + um_uni_dir_dl_r15_s_& set_um_uni_dir_dl_r15(); private: types type_; @@ -799,7 +771,7 @@ struct ul_am_rlc_s { enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_retx_thres_e_; @@ -824,7 +796,7 @@ struct crs_assist_info_r11_s { enum options { an1, an2, an4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ant_ports_count_r11_e_; @@ -850,7 +822,7 @@ struct crs_assist_info_r13_s { enum options { an1, an2, an4, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ant_ports_count_r13_e_; @@ -898,7 +870,7 @@ struct neigh_cells_info_r12_s { enum options { n1, n2, n4, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_ports_count_r12_e_; @@ -930,7 +902,7 @@ struct pdcp_cfg_s { enum options { ms50, ms100, ms150, ms300, ms500, ms750, ms1500, infinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated discard_timer_e_; @@ -942,7 +914,7 @@ struct pdcp_cfg_s { enum options { len7bits, len12bits, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdcp_sn_size_e_; @@ -974,7 +946,7 @@ struct pdcp_cfg_s { struct types_opts { enum options { not_used, rohc, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -990,20 +962,16 @@ struct pdcp_cfg_s { // getters rohc_s_& rohc() { - assert_choice_type("rohc", type_.to_string(), "headerCompression"); + assert_choice_type(types::rohc, type_, "headerCompression"); return c; } const rohc_s_& rohc() const { - assert_choice_type("rohc", type_.to_string(), "headerCompression"); - return c; - } - void set_not_used() { set(types::not_used); } - rohc_s_& set_rohc() - { - set(types::rohc); + assert_choice_type(types::rohc, type_, "headerCompression"); return c; } + void set_not_used(); + rohc_s_& set_rohc(); private: types type_; @@ -1047,7 +1015,7 @@ struct pdcp_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_reordering_r12_e_; @@ -1074,7 +1042,7 @@ struct pdcp_cfg_s { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated setup_e_; @@ -1092,20 +1060,16 @@ struct pdcp_cfg_s { // getters setup_e_& setup() { - assert_choice_type("setup", type_.to_string(), "ul-DataSplitThreshold-r13"); + assert_choice_type(types::setup, type_, "ul-DataSplitThreshold-r13"); return c; } const setup_e_& setup() const { - assert_choice_type("setup", type_.to_string(), "ul-DataSplitThreshold-r13"); - return c; - } - void set_release() { set(types::release); } - setup_e_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ul-DataSplitThreshold-r13"); return c; } + void set_release(); + setup_e_& set_setup(); private: types type_; @@ -1117,7 +1081,7 @@ struct pdcp_cfg_s { enum options { type1, type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated status_pdu_type_for_polling_r13_e_; @@ -1148,7 +1112,7 @@ struct pdcp_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated status_pdu_periodicity_type1_r13_e_; @@ -1179,7 +1143,7 @@ struct pdcp_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated status_pdu_periodicity_type2_r13_e_; @@ -1187,7 +1151,7 @@ struct pdcp_cfg_s { enum options { ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, ms2500, ms5000, ms25000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated status_pdu_periodicity_offset_r13_e_; @@ -1216,20 +1180,16 @@ struct pdcp_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "statusFeedback-r13"); + assert_choice_type(types::setup, type_, "statusFeedback-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "statusFeedback-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "statusFeedback-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1258,7 +1218,7 @@ struct pdcp_cfg_s { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated ul_lwa_data_split_thres_r14_e_; @@ -1282,20 +1242,16 @@ struct pdcp_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "ul-LWA-Config-r14"); + assert_choice_type(types::setup, type_, "ul-LWA-Config-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "ul-LWA-Config-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "ul-LWA-Config-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1317,7 +1273,7 @@ struct pdcp_cfg_s { struct types_opts { enum options { not_used_r14, rohc_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1333,20 +1289,16 @@ struct pdcp_cfg_s { // getters rohc_r14_s_& rohc_r14() { - assert_choice_type("rohc-r14", type_.to_string(), "uplinkOnlyHeaderCompression-r14"); + assert_choice_type(types::rohc_r14, type_, "uplinkOnlyHeaderCompression-r14"); return c; } const rohc_r14_s_& rohc_r14() const { - assert_choice_type("rohc-r14", type_.to_string(), "uplinkOnlyHeaderCompression-r14"); - return c; - } - void set_not_used_r14() { set(types::not_used_r14); } - rohc_r14_s_& set_rohc_r14() - { - set(types::rohc_r14); + assert_choice_type(types::rohc_r14, type_, "uplinkOnlyHeaderCompression-r14"); return c; } + void set_not_used_r14(); + rohc_r14_s_& set_rohc_r14(); private: types type_; @@ -1357,14 +1309,14 @@ struct pdcp_cfg_s { enum options { kbyte2, kbyte4, kbyte8, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated buffer_size_r15_e_; struct dictionary_r15_opts { enum options { sip_sdp, operator_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dictionary_r15_e_; @@ -1380,7 +1332,7 @@ struct pdcp_cfg_s { struct pdcp_dupl_r15_opts { enum options { cfgured, activ, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pdcp_dupl_r15_e_; @@ -1401,20 +1353,16 @@ struct pdcp_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pdcp-DuplicationConfig-r15"); + assert_choice_type(types::setup, type_, "pdcp-DuplicationConfig-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pdcp-DuplicationConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pdcp-DuplicationConfig-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1466,7 +1414,7 @@ struct rlc_bearer_cfg_r15_c { struct types_opts { enum options { lc_ch_id_r15, lc_ch_id_ext_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1485,34 +1433,26 @@ struct rlc_bearer_cfg_r15_c { // getters uint8_t& lc_ch_id_r15() { - assert_choice_type("logicalChannelIdentity-r15", type_.to_string(), "logicalChannelIdentityConfig-r15"); + assert_choice_type(types::lc_ch_id_r15, type_, "logicalChannelIdentityConfig-r15"); return c.get(); } uint8_t& lc_ch_id_ext_r15() { - assert_choice_type("logicalChannelIdentityExt-r15", type_.to_string(), "logicalChannelIdentityConfig-r15"); + assert_choice_type(types::lc_ch_id_ext_r15, type_, "logicalChannelIdentityConfig-r15"); return c.get(); } const uint8_t& lc_ch_id_r15() const { - assert_choice_type("logicalChannelIdentity-r15", type_.to_string(), "logicalChannelIdentityConfig-r15"); + assert_choice_type(types::lc_ch_id_r15, type_, "logicalChannelIdentityConfig-r15"); return c.get(); } const uint8_t& lc_ch_id_ext_r15() const { - assert_choice_type("logicalChannelIdentityExt-r15", type_.to_string(), "logicalChannelIdentityConfig-r15"); - return c.get(); - } - uint8_t& set_lc_ch_id_r15() - { - set(types::lc_ch_id_r15); - return c.get(); - } - uint8_t& set_lc_ch_id_ext_r15() - { - set(types::lc_ch_id_ext_r15); + assert_choice_type(types::lc_ch_id_ext_r15, type_, "logicalChannelIdentityConfig-r15"); return c.get(); } + uint8_t& set_lc_ch_id_r15(); + uint8_t& set_lc_ch_id_ext_r15(); private: types type_; @@ -1542,20 +1482,16 @@ struct rlc_bearer_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLC-BearerConfig-r15"); + assert_choice_type(types::setup, type_, "RLC-BearerConfig-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLC-BearerConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLC-BearerConfig-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1581,7 +1517,7 @@ struct rlc_cfg_c { struct types_opts { enum options { am, um_bi_dir, um_uni_dir_ul, um_uni_dir_dl, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1600,64 +1536,48 @@ struct rlc_cfg_c { // getters am_s_& am() { - assert_choice_type("am", type_.to_string(), "RLC-Config"); + assert_choice_type(types::am, type_, "RLC-Config"); return c.get(); } um_bi_dir_s_& um_bi_dir() { - assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_bi_dir, type_, "RLC-Config"); return c.get(); } um_uni_dir_ul_s_& um_uni_dir_ul() { - assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_ul, type_, "RLC-Config"); return c.get(); } um_uni_dir_dl_s_& um_uni_dir_dl() { - assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_dl, type_, "RLC-Config"); return c.get(); } const am_s_& am() const { - assert_choice_type("am", type_.to_string(), "RLC-Config"); + assert_choice_type(types::am, type_, "RLC-Config"); return c.get(); } const um_bi_dir_s_& um_bi_dir() const { - assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_bi_dir, type_, "RLC-Config"); return c.get(); } const um_uni_dir_ul_s_& um_uni_dir_ul() const { - assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_ul, type_, "RLC-Config"); return c.get(); } const um_uni_dir_dl_s_& um_uni_dir_dl() const { - assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config"); - return c.get(); - } - am_s_& set_am() - { - set(types::am); - return c.get(); - } - um_bi_dir_s_& set_um_bi_dir() - { - set(types::um_bi_dir); - return c.get(); - } - um_uni_dir_ul_s_& set_um_uni_dir_ul() - { - set(types::um_uni_dir_ul); - return c.get(); - } - um_uni_dir_dl_s_& set_um_uni_dir_dl() - { - set(types::um_uni_dir_dl); + assert_choice_type(types::um_uni_dir_dl, type_, "RLC-Config"); return c.get(); } + am_s_& set_am(); + um_bi_dir_s_& set_um_bi_dir(); + um_uni_dir_ul_s_& set_um_uni_dir_ul(); + um_uni_dir_dl_s_& set_um_uni_dir_dl(); private: types type_; @@ -1713,20 +1633,16 @@ struct rlc_cfg_v1430_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLC-Config-v1430"); + assert_choice_type(types::setup, type_, "RLC-Config-v1430"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLC-Config-v1430"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLC-Config-v1430"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1758,8 +1674,8 @@ struct rlc_cfg_v1530_c { bool operator==(const rlc_cfg_v1530_c& other) const; bool operator!=(const rlc_cfg_v1530_c& other) const { return not(*this == other); } // getters - void set_release() { set(types::release); } - void set_setup() { set(types::setup); } + void set_release(); + void set_setup(); private: types type_; @@ -1789,7 +1705,7 @@ struct sps_cfg_sl_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated semi_persist_sched_interv_sl_r14_e_; @@ -1829,7 +1745,7 @@ struct sps_cfg_ul_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated semi_persist_sched_interv_ul_e_; @@ -1837,7 +1753,7 @@ struct sps_cfg_ul_c { enum options { e2, e3, e4, e8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated implicit_release_after_e_; @@ -1864,20 +1780,16 @@ struct sps_cfg_ul_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r12"); + assert_choice_type(types::setup, type_, "p0-PersistentSubframeSet2-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "p0-PersistentSubframeSet2-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1905,7 +1817,7 @@ struct sps_cfg_ul_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated semi_persist_sched_interv_ul_v1430_e_; @@ -1913,7 +1825,7 @@ struct sps_cfg_ul_c { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_sps_r15_e_; @@ -1921,7 +1833,7 @@ struct sps_cfg_ul_c { enum options { ulrvseq1, ulrvseq2, ulrvseq3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_sps_ul_repeats_r15_e_; @@ -1929,7 +1841,7 @@ struct sps_cfg_ul_c { enum options { n2, n3, n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated total_num_pusch_sps_ul_repeats_r15_e_; @@ -1987,20 +1899,16 @@ struct sps_cfg_ul_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL"); + assert_choice_type(types::setup, type_, "SPS-ConfigUL"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPS-ConfigUL"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2032,7 +1940,7 @@ struct sps_cfg_ul_stti_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated semi_persist_sched_interv_ul_stti_r15_e_; @@ -2040,7 +1948,7 @@ struct sps_cfg_ul_stti_r15_c { enum options { e2, e3, e4, e8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated implicit_release_after_e_; @@ -2067,20 +1975,16 @@ struct sps_cfg_ul_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r15"); + assert_choice_type(types::setup, type_, "p0-PersistentSubframeSet2-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "p0-PersistentSubframeSet2-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2090,7 +1994,7 @@ struct sps_cfg_ul_stti_r15_c { enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cyclic_shift_sps_s_tti_r15_e_; @@ -2098,7 +2002,7 @@ struct sps_cfg_ul_stti_r15_c { enum options { ulrvseq1, ulrvseq2, ulrvseq3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_sps_stti_ul_repeats_r15_e_; @@ -2106,7 +2010,7 @@ struct sps_cfg_ul_stti_r15_c { enum options { n6, n12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated @@ -2115,7 +2019,7 @@ struct sps_cfg_ul_stti_r15_c { enum options { n2, n3, n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated total_num_pusch_sps_stti_ul_repeats_r15_e_; @@ -2164,20 +2068,16 @@ struct sps_cfg_ul_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL-STTI-r15"); + assert_choice_type(types::setup, type_, "SPS-ConfigUL-STTI-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL-STTI-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPS-ConfigUL-STTI-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2211,13 +2111,13 @@ struct drb_to_add_mod_s { struct drb_type_lwip_r13_opts { enum options { lwip, lwip_dl_only, lwip_ul_only, eutran, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated drb_type_lwip_r13_e_; struct lwa_wlan_ac_r14_opts { enum options { ac_bk, ac_be, ac_vi, ac_vo, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated lwa_wlan_ac_r14_e_; @@ -2293,7 +2193,7 @@ struct drx_cfg_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated on_dur_timer_e_; @@ -2335,7 +2235,7 @@ struct drx_cfg_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_e_; @@ -2343,7 +2243,7 @@ struct drx_cfg_c { enum options { psf1, psf2, psf4, psf6, psf8, psf16, psf24, psf33, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_retx_timer_e_; @@ -2370,7 +2270,7 @@ struct drx_cfg_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -2388,244 +2288,180 @@ struct drx_cfg_c { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf10, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf20, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf32, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf40, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf64, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf80, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf128, type_, "longDRX-CycleStartOffset"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf160, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf256, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf320, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf512, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf640, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf1024, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf1280() { - assert_choice_type("sf1280", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf1280, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf2048, type_, "longDRX-CycleStartOffset"); return c.get(); } uint16_t& sf2560() { - assert_choice_type("sf2560", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf2560, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf10, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf20, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf32, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf40, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf64, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf80, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf128, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf160, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf256, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf320, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf512, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf640, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf1024, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf1280() const { - assert_choice_type("sf1280", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf1280, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "longDRX-CycleStartOffset"); + assert_choice_type(types::sf2048, type_, "longDRX-CycleStartOffset"); return c.get(); } const uint16_t& sf2560() const { - assert_choice_type("sf2560", type_.to_string(), "longDRX-CycleStartOffset"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf1280() - { - set(types::sf1280); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf2560() - { - set(types::sf2560); + assert_choice_type(types::sf2560, type_, "longDRX-CycleStartOffset"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf1280(); + uint16_t& set_sf2048(); + uint16_t& set_sf2560(); private: types type_; @@ -2656,7 +2492,7 @@ struct drx_cfg_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated short_drx_cycle_e_; @@ -2686,20 +2522,16 @@ struct drx_cfg_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "DRX-Config"); + assert_choice_type(types::setup, type_, "DRX-Config"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "DRX-Config"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "DRX-Config"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -2712,7 +2544,7 @@ struct drx_cfg_r13_s { enum options { psf300, psf400, psf500, psf600, psf800, psf1000, psf1200, psf1600, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated on_dur_timer_v1310_e_; @@ -2720,7 +2552,7 @@ struct drx_cfg_r13_s { enum options { psf40, psf64, psf80, psf96, psf112, psf128, psf160, psf320, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_retx_timer_v1310_e_; @@ -2747,7 +2579,7 @@ struct drx_cfg_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_ul_retx_timer_r13_e_; @@ -2772,7 +2604,7 @@ struct drx_cfg_r15_s { enum options { tti10, tti20, tti40, tti64, tti80, tti96, tti112, tti128, tti160, tti320, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_retx_timer_short_tti_r15_e_; @@ -2799,7 +2631,7 @@ struct drx_cfg_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_ul_retx_timer_short_tti_r15_e_; @@ -2823,7 +2655,7 @@ struct drx_cfg_v1130_s { enum options { sf60_v1130, sf70_v1130, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -2841,34 +2673,26 @@ struct drx_cfg_v1130_s { // getters uint8_t& sf60_v1130() { - assert_choice_type("sf60-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130"); + assert_choice_type(types::sf60_v1130, type_, "longDRX-CycleStartOffset-v1130"); return c.get(); } uint8_t& sf70_v1130() { - assert_choice_type("sf70-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130"); + assert_choice_type(types::sf70_v1130, type_, "longDRX-CycleStartOffset-v1130"); return c.get(); } const uint8_t& sf60_v1130() const { - assert_choice_type("sf60-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130"); + assert_choice_type(types::sf60_v1130, type_, "longDRX-CycleStartOffset-v1130"); return c.get(); } const uint8_t& sf70_v1130() const { - assert_choice_type("sf70-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130"); - return c.get(); - } - uint8_t& set_sf60_v1130() - { - set(types::sf60_v1130); - return c.get(); - } - uint8_t& set_sf70_v1130() - { - set(types::sf70_v1130); + assert_choice_type(types::sf70_v1130, type_, "longDRX-CycleStartOffset-v1130"); return c.get(); } + uint8_t& set_sf60_v1130(); + uint8_t& set_sf70_v1130(); private: types type_; @@ -2910,7 +2734,7 @@ struct data_inactivity_timer_r14_opts { enum options { s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated data_inactivity_timer_r14_e; @@ -2944,7 +2768,7 @@ struct periodic_bsr_timer_r12_opts { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated periodic_bsr_timer_r12_e; @@ -2954,7 +2778,7 @@ struct retx_bsr_timer_r12_opts { enum options { sf320, sf640, sf1280, sf2560, sf5120, sf10240, spare2, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated retx_bsr_timer_r12_e; @@ -2984,7 +2808,7 @@ struct sps_cfg_dl_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated semi_persist_sched_interv_dl_e_; @@ -3006,20 +2830,16 @@ struct sps_cfg_dl_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r10"); + assert_choice_type(types::setup, type_, "twoAntennaPortActivated-r10"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r10"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "twoAntennaPortActivated-r10"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3056,20 +2876,16 @@ struct sps_cfg_dl_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL"); + assert_choice_type(types::setup, type_, "SPS-ConfigDL"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPS-ConfigDL"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3101,7 +2917,7 @@ struct sps_cfg_dl_stti_r15_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated semi_persist_sched_interv_dl_stti_r15_e_; @@ -3121,20 +2937,16 @@ struct sps_cfg_dl_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r15"); + assert_choice_type(types::setup, type_, "twoAntennaPortActivated-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "twoAntennaPortActivated-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3164,20 +2976,16 @@ struct sps_cfg_dl_stti_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL-STTI-r15"); + assert_choice_type(types::setup, type_, "SPS-ConfigDL-STTI-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL-STTI-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SPS-ConfigDL-STTI-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3214,7 +3022,7 @@ struct srb_to_add_mod_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3230,20 +3038,16 @@ struct srb_to_add_mod_s { // getters rlc_cfg_c& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "rlc-Config"); + assert_choice_type(types::explicit_value, type_, "rlc-Config"); return c; } const rlc_cfg_c& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "rlc-Config"); + assert_choice_type(types::explicit_value, type_, "rlc-Config"); return c; } - rlc_cfg_c& set_explicit_value() - { - set(types::explicit_value); - return c; - } - void set_default_value() { set(types::default_value); } + rlc_cfg_c& set_explicit_value(); + void set_default_value(); private: types type_; @@ -3253,7 +3057,7 @@ struct srb_to_add_mod_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3269,20 +3073,16 @@ struct srb_to_add_mod_s { // getters lc_ch_cfg_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig"); + assert_choice_type(types::explicit_value, type_, "logicalChannelConfig"); return c; } const lc_ch_cfg_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig"); + assert_choice_type(types::explicit_value, type_, "logicalChannelConfig"); return c; } - lc_ch_cfg_s& set_explicit_value() - { - set(types::explicit_value); - return c; - } - void set_default_value() { set(types::default_value); } + lc_ch_cfg_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -3339,7 +3139,7 @@ struct mac_main_cfg_s { enum options { n1, n2, n3, n4, n5, n6, n7, n8, n10, n12, n16, n20, n24, n28, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_harq_tx_e_; @@ -3358,7 +3158,7 @@ struct mac_main_cfg_s { enum options { sf10, sf20, sf50, sf100, sf200, sf500, sf1000, infinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated periodic_phr_timer_e_; @@ -3366,7 +3166,7 @@ struct mac_main_cfg_s { enum options { sf0, sf10, sf20, sf50, sf100, sf200, sf500, sf1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated prohibit_phr_timer_e_; @@ -3374,7 +3174,7 @@ struct mac_main_cfg_s { enum options { db1, db3, db6, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated dl_pathloss_change_e_; @@ -3396,20 +3196,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "phr-Config"); + assert_choice_type(types::setup, type_, "phr-Config"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "phr-Config"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "phr-Config"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3420,7 +3216,7 @@ struct mac_main_cfg_s { enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scell_deactivation_timer_r10_e_; @@ -3436,7 +3232,7 @@ struct mac_main_cfg_s { struct phr_mode_other_cg_r12_opts { enum options { real, virtual_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated phr_mode_other_cg_r12_e_; @@ -3455,20 +3251,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "dualConnectivityPHR"); + assert_choice_type(types::setup, type_, "dualConnectivityPHR"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "dualConnectivityPHR"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "dualConnectivityPHR"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3480,7 +3272,7 @@ struct mac_main_cfg_s { enum options { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated lc_ch_sr_prohibit_timer_r12_e_; @@ -3500,20 +3292,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r12"); + assert_choice_type(types::setup, type_, "logicalChannelSR-Config-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "logicalChannelSR-Config-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3525,7 +3313,7 @@ struct mac_main_cfg_s { enum options { sf5120, sf10240, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -3543,34 +3331,26 @@ struct mac_main_cfg_s { // getters uint8_t& sf5120() { - assert_choice_type("sf5120", type_.to_string(), "setup"); + assert_choice_type(types::sf5120, type_, "setup"); return c.get(); } uint8_t& sf10240() { - assert_choice_type("sf10240", type_.to_string(), "setup"); + assert_choice_type(types::sf10240, type_, "setup"); return c.get(); } const uint8_t& sf5120() const { - assert_choice_type("sf5120", type_.to_string(), "setup"); + assert_choice_type(types::sf5120, type_, "setup"); return c.get(); } const uint8_t& sf10240() const { - assert_choice_type("sf10240", type_.to_string(), "setup"); - return c.get(); - } - uint8_t& set_sf5120() - { - set(types::sf5120); - return c.get(); - } - uint8_t& set_sf10240() - { - set(types::sf10240); + assert_choice_type(types::sf10240, type_, "setup"); return c.get(); } + uint8_t& set_sf5120(); + uint8_t& set_sf10240(); private: types type_; @@ -3590,20 +3370,16 @@ struct mac_main_cfg_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "eDRX-Config-CycleStartOffset-r13"); + assert_choice_type(types::setup, type_, "eDRX-Config-CycleStartOffset-r13"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "eDRX-Config-CycleStartOffset-r13"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "eDRX-Config-CycleStartOffset-r13"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -3622,20 +3398,16 @@ struct mac_main_cfg_s { // getters drx_cfg_r13_s& setup() { - assert_choice_type("setup", type_.to_string(), "drx-Config-r13"); + assert_choice_type(types::setup, type_, "drx-Config-r13"); return c; } const drx_cfg_r13_s& setup() const { - assert_choice_type("setup", type_.to_string(), "drx-Config-r13"); - return c; - } - void set_release() { set(types::release); } - drx_cfg_r13_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "drx-Config-r13"); return c; } + void set_release(); + drx_cfg_r13_s& set_setup(); private: types type_; @@ -3658,20 +3430,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "skipUplinkTx-r14"); + assert_choice_type(types::setup, type_, "skipUplinkTx-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "skipUplinkTx-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "skipUplinkTx-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3693,20 +3461,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); + assert_choice_type(types::setup, type_, "dataInactivityTimerConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "dataInactivityTimerConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3736,14 +3500,14 @@ struct mac_main_cfg_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated periodic_bsr_timer_r15_e_; struct proc_timeline_r15_opts { enum options { nplus4set1, nplus6set1, nplus6set2, nplus8set2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated proc_timeline_r15_e_; @@ -3769,20 +3533,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "shortTTI-AndSPT-r15"); + assert_choice_type(types::setup, type_, "shortTTI-AndSPT-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "shortTTI-AndSPT-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "shortTTI-AndSPT-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3794,7 +3554,7 @@ struct mac_main_cfg_s { enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scell_hibernation_timer_r15_e_; @@ -3820,7 +3580,7 @@ struct mac_main_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated dormant_scell_deactivation_timer_r15_e_; @@ -3843,20 +3603,16 @@ struct mac_main_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "dormantStateTimers-r15"); + assert_choice_type(types::setup, type_, "dormantStateTimers-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "dormantStateTimers-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "dormantStateTimers-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -3925,20 +3681,16 @@ struct meas_sf_pattern_pcell_r10_c { // getters meas_sf_pattern_r10_c& setup() { - assert_choice_type("setup", type_.to_string(), "MeasSubframePatternPCell-r10"); + assert_choice_type(types::setup, type_, "MeasSubframePatternPCell-r10"); return c; } const meas_sf_pattern_r10_c& setup() const { - assert_choice_type("setup", type_.to_string(), "MeasSubframePatternPCell-r10"); - return c; - } - void set_release() { set(types::release); } - meas_sf_pattern_r10_c& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "MeasSubframePatternPCell-r10"); return c; } + void set_release(); + meas_sf_pattern_r10_c& set_setup(); private: types type_; @@ -3969,20 +3721,16 @@ struct naics_assist_info_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "NAICS-AssistanceInfo-r12"); + assert_choice_type(types::setup, type_, "NAICS-AssistanceInfo-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "NAICS-AssistanceInfo-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "NAICS-AssistanceInfo-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4003,20 +3751,16 @@ struct neigh_cells_crs_info_r11_c { // getters crs_assist_info_list_r11_l& setup() { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r11"); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r11"); return c; } const crs_assist_info_list_r11_l& setup() const { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r11"); - return c; - } - void set_release() { set(types::release); } - crs_assist_info_list_r11_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r11"); return c; } + void set_release(); + crs_assist_info_list_r11_l& set_setup(); private: types type_; @@ -4039,20 +3783,16 @@ struct neigh_cells_crs_info_r13_c { // getters crs_assist_info_list_r13_l& setup() { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r13"); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r13"); return c; } const crs_assist_info_list_r13_l& setup() const { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r13"); - return c; - } - void set_release() { set(types::release); } - crs_assist_info_list_r13_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r13"); return c; } + void set_release(); + crs_assist_info_list_r13_l& set_setup(); private: types type_; @@ -4075,20 +3815,16 @@ struct neigh_cells_crs_info_r15_c { // getters crs_assist_info_list_r15_l& setup() { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r15"); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r15"); return c; } const crs_assist_info_list_r15_l& setup() const { - assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r15"); - return c; - } - void set_release() { set(types::release); } - crs_assist_info_list_r15_l& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "NeighCellsCRS-Info-r15"); return c; } + void set_release(); + crs_assist_info_list_r15_l& set_setup(); private: types type_; @@ -4102,7 +3838,7 @@ struct rlf_timers_and_consts_r13_c { enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_v1310_e_; @@ -4110,7 +3846,7 @@ struct rlf_timers_and_consts_r13_c { enum options { ms4000, ms6000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_v1330_e_; @@ -4140,20 +3876,16 @@ struct rlf_timers_and_consts_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r13"); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4167,7 +3899,7 @@ struct rlf_timers_and_consts_r9_c { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_r9_e_; @@ -4175,7 +3907,7 @@ struct rlf_timers_and_consts_r9_c { enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_r9_e_; @@ -4183,7 +3915,7 @@ struct rlf_timers_and_consts_r9_c { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_r9_e_; @@ -4191,7 +3923,7 @@ struct rlf_timers_and_consts_r9_c { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_r9_e_; @@ -4199,7 +3931,7 @@ struct rlf_timers_and_consts_r9_c { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_r9_e_; @@ -4225,20 +3957,16 @@ struct rlf_timers_and_consts_r9_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r9"); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-r9"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r9"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-r9"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4327,7 +4055,7 @@ struct rr_cfg_ded_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4341,20 +4069,16 @@ struct rr_cfg_ded_s { // getters mac_main_cfg_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "mac-MainConfig"); + assert_choice_type(types::explicit_value, type_, "mac-MainConfig"); return c; } const mac_main_cfg_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "mac-MainConfig"); + assert_choice_type(types::explicit_value, type_, "mac-MainConfig"); return c; } - mac_main_cfg_s& set_explicit_value() - { - set(types::explicit_value); - return c; - } - void set_default_value() { set(types::default_value); } + mac_main_cfg_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -4366,14 +4090,14 @@ struct rr_cfg_ded_s { enum options { n6, n24, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_intf_mitig_num_prbs_e_; struct types_opts { enum options { crs_intf_mitig_enabled, crs_intf_mitig_num_prbs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4387,20 +4111,16 @@ struct rr_cfg_ded_s { // getters crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() { - assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "setup"); + assert_choice_type(types::crs_intf_mitig_num_prbs, type_, "setup"); return c; } const crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() const { - assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "setup"); - return c; - } - void set_crs_intf_mitig_enabled() { set(types::crs_intf_mitig_enabled); } - crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs() - { - set(types::crs_intf_mitig_num_prbs); + assert_choice_type(types::crs_intf_mitig_num_prbs, type_, "setup"); return c; } + void set_crs_intf_mitig_enabled(); + crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs(); private: types type_; @@ -4418,20 +4138,16 @@ struct rr_cfg_ded_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "crs-IntfMitigConfig-r15"); + assert_choice_type(types::setup, type_, "crs-IntfMitigConfig-r15"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "crs-IntfMitigConfig-r15"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "crs-IntfMitigConfig-r15"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -4491,7 +4207,7 @@ struct pdcch_candidate_reduction_value_r14_opts { enum options { n0, n50, n100, n150, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdcch_candidate_reduction_value_r14_e; @@ -4519,20 +4235,16 @@ struct pdcch_candidate_reductions_laa_ul_r14_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductionsLAA-UL-r14"); + assert_choice_type(types::setup, type_, "PDCCH-CandidateReductionsLAA-UL-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductionsLAA-UL-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "PDCCH-CandidateReductionsLAA-UL-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4546,7 +4258,7 @@ struct aul_cfg_r15_c { enum options { tm1, tm2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tx_mode_ul_aul_r15_e_; @@ -4554,7 +4266,7 @@ struct aul_cfg_r15_c { enum options { o34, o43, o52, o61, oos1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aul_start_partial_bw_inside_mcot_r15_e_; @@ -4562,7 +4274,7 @@ struct aul_cfg_r15_c { enum options { o16, o25, o34, o43, o52, o61, oos1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aul_start_partial_bw_outside_mcot_r15_e_; @@ -4589,7 +4301,7 @@ struct aul_cfg_r15_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated aul_retx_timer_r15_e_; @@ -4597,7 +4309,7 @@ struct aul_cfg_r15_c { enum options { n0, n5, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated contention_win_size_timer_r15_e_; @@ -4630,20 +4342,16 @@ struct aul_cfg_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "AUL-Config-r15"); + assert_choice_type(types::setup, type_, "AUL-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "AUL-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "AUL-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4672,20 +4380,16 @@ struct cqi_report_periodic_scell_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternDormant-r15"); + assert_choice_type(types::setup, type_, "csi-SubframePatternDormant-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "csi-SubframePatternDormant-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "csi-SubframePatternDormant-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4697,7 +4401,7 @@ struct cqi_report_periodic_scell_r15_c { enum options { submode1, submode2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_mode_r15_e_; @@ -4711,7 +4415,7 @@ struct cqi_report_periodic_scell_r15_c { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_r15_e_; @@ -4723,7 +4427,7 @@ struct cqi_report_periodic_scell_r15_c { struct types_opts { enum options { wideband_cqi_r15, subband_cqi_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4742,34 +4446,26 @@ struct cqi_report_periodic_scell_r15_c { // getters wideband_cqi_r15_s_& wideband_cqi_r15() { - assert_choice_type("widebandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15"); + assert_choice_type(types::wideband_cqi_r15, type_, "cqi-FormatIndicatorDormant-r15"); return c.get(); } subband_cqi_r15_s_& subband_cqi_r15() { - assert_choice_type("subbandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15"); + assert_choice_type(types::subband_cqi_r15, type_, "cqi-FormatIndicatorDormant-r15"); return c.get(); } const wideband_cqi_r15_s_& wideband_cqi_r15() const { - assert_choice_type("widebandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15"); + assert_choice_type(types::wideband_cqi_r15, type_, "cqi-FormatIndicatorDormant-r15"); return c.get(); } const subband_cqi_r15_s_& subband_cqi_r15() const { - assert_choice_type("subbandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15"); - return c.get(); - } - wideband_cqi_r15_s_& set_wideband_cqi_r15() - { - set(types::wideband_cqi_r15); - return c.get(); - } - subband_cqi_r15_s_& set_subband_cqi_r15() - { - set(types::subband_cqi_r15); + assert_choice_type(types::subband_cqi_r15, type_, "cqi-FormatIndicatorDormant-r15"); return c.get(); } + wideband_cqi_r15_s_& set_wideband_cqi_r15(); + subband_cqi_r15_s_& set_subband_cqi_r15(); private: types type_; @@ -4801,20 +4497,16 @@ struct cqi_report_periodic_scell_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodicSCell-r15"); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodicSCell-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodicSCell-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ReportPeriodicSCell-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -4839,7 +4531,7 @@ struct lbt_cfg_r14_c { struct types_opts { enum options { max_energy_detection_thres_r14, energy_detection_thres_offset_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4858,34 +4550,26 @@ struct lbt_cfg_r14_c { // getters int8_t& max_energy_detection_thres_r14() { - assert_choice_type("maxEnergyDetectionThreshold-r14", type_.to_string(), "LBT-Config-r14"); + assert_choice_type(types::max_energy_detection_thres_r14, type_, "LBT-Config-r14"); return c.get(); } int8_t& energy_detection_thres_offset_r14() { - assert_choice_type("energyDetectionThresholdOffset-r14", type_.to_string(), "LBT-Config-r14"); + assert_choice_type(types::energy_detection_thres_offset_r14, type_, "LBT-Config-r14"); return c.get(); } const int8_t& max_energy_detection_thres_r14() const { - assert_choice_type("maxEnergyDetectionThreshold-r14", type_.to_string(), "LBT-Config-r14"); + assert_choice_type(types::max_energy_detection_thres_r14, type_, "LBT-Config-r14"); return c.get(); } const int8_t& energy_detection_thres_offset_r14() const { - assert_choice_type("energyDetectionThresholdOffset-r14", type_.to_string(), "LBT-Config-r14"); - return c.get(); - } - int8_t& set_max_energy_detection_thres_r14() - { - set(types::max_energy_detection_thres_r14); - return c.get(); - } - int8_t& set_energy_detection_thres_offset_r14() - { - set(types::energy_detection_thres_offset_r14); + assert_choice_type(types::energy_detection_thres_offset_r14, type_, "LBT-Config-r14"); return c.get(); } + int8_t& set_max_energy_detection_thres_r14(); + int8_t& set_energy_detection_thres_offset_r14(); private: types type_; @@ -4900,7 +4584,7 @@ struct pdcch_cfg_laa_r14_s { enum options { sf2, sf3, sf4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_nof_sched_sfs_format0_b_r14_e_; @@ -4908,7 +4592,7 @@ struct pdcch_cfg_laa_r14_s { enum options { sf2, sf3, sf4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_nof_sched_sfs_format4_b_r14_e_; @@ -4971,20 +4655,16 @@ struct srs_ul_cfg_ded_aperiodic_v1430_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1430"); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-v1430"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1430"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SoundingRS-UL-ConfigDedicatedAperiodic-v1430"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5014,7 +4694,7 @@ struct cqi_report_cfg_scell_r15_s { enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated alt_cqi_table_minus1024_qam_r15_e_; @@ -5042,7 +4722,7 @@ struct cqi_short_cfg_scell_r15_c { enum options { submode1, submode2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_mode_short_r15_e_; @@ -5056,7 +4736,7 @@ struct cqi_short_cfg_scell_r15_c { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_factor_r15_e_; @@ -5068,7 +4748,7 @@ struct cqi_short_cfg_scell_r15_c { struct types_opts { enum options { wideband_cqi_short_r15, subband_cqi_short_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5087,34 +4767,26 @@ struct cqi_short_cfg_scell_r15_c { // getters wideband_cqi_short_r15_s_& wideband_cqi_short_r15() { - assert_choice_type("widebandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15"); + assert_choice_type(types::wideband_cqi_short_r15, type_, "cqi-FormatIndicatorShort-r15"); return c.get(); } subband_cqi_short_r15_s_& subband_cqi_short_r15() { - assert_choice_type("subbandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15"); + assert_choice_type(types::subband_cqi_short_r15, type_, "cqi-FormatIndicatorShort-r15"); return c.get(); } const wideband_cqi_short_r15_s_& wideband_cqi_short_r15() const { - assert_choice_type("widebandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15"); + assert_choice_type(types::wideband_cqi_short_r15, type_, "cqi-FormatIndicatorShort-r15"); return c.get(); } const subband_cqi_short_r15_s_& subband_cqi_short_r15() const { - assert_choice_type("subbandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15"); - return c.get(); - } - wideband_cqi_short_r15_s_& set_wideband_cqi_short_r15() - { - set(types::wideband_cqi_short_r15); - return c.get(); - } - subband_cqi_short_r15_s_& set_subband_cqi_short_r15() - { - set(types::subband_cqi_short_r15); + assert_choice_type(types::subband_cqi_short_r15, type_, "cqi-FormatIndicatorShort-r15"); return c.get(); } + wideband_cqi_short_r15_s_& set_wideband_cqi_short_r15(); + subband_cqi_short_r15_s_& set_subband_cqi_short_r15(); private: types type_; @@ -5144,20 +4816,16 @@ struct cqi_short_cfg_scell_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "CQI-ShortConfigSCell-r15"); + assert_choice_type(types::setup, type_, "CQI-ShortConfigSCell-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "CQI-ShortConfigSCell-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "CQI-ShortConfigSCell-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5177,7 +4845,7 @@ struct cross_carrier_sched_cfg_r10_s { struct types_opts { enum options { own_r10, other_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5196,34 +4864,26 @@ struct cross_carrier_sched_cfg_r10_s { // getters own_r10_s_& own_r10() { - assert_choice_type("own-r10", type_.to_string(), "schedulingCellInfo-r10"); + assert_choice_type(types::own_r10, type_, "schedulingCellInfo-r10"); return c.get(); } other_r10_s_& other_r10() { - assert_choice_type("other-r10", type_.to_string(), "schedulingCellInfo-r10"); + assert_choice_type(types::other_r10, type_, "schedulingCellInfo-r10"); return c.get(); } const own_r10_s_& own_r10() const { - assert_choice_type("own-r10", type_.to_string(), "schedulingCellInfo-r10"); + assert_choice_type(types::own_r10, type_, "schedulingCellInfo-r10"); return c.get(); } const other_r10_s_& other_r10() const { - assert_choice_type("other-r10", type_.to_string(), "schedulingCellInfo-r10"); - return c.get(); - } - own_r10_s_& set_own_r10() - { - set(types::own_r10); - return c.get(); - } - other_r10_s_& set_other_r10() - { - set(types::other_r10); + assert_choice_type(types::other_r10, type_, "schedulingCellInfo-r10"); return c.get(); } + own_r10_s_& set_own_r10(); + other_r10_s_& set_other_r10(); private: types type_; @@ -5257,7 +4917,7 @@ struct cross_carrier_sched_cfg_r13_s { struct types_opts { enum options { own_r13, other_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5276,34 +4936,26 @@ struct cross_carrier_sched_cfg_r13_s { // getters own_r13_s_& own_r13() { - assert_choice_type("own-r13", type_.to_string(), "schedulingCellInfo-r13"); + assert_choice_type(types::own_r13, type_, "schedulingCellInfo-r13"); return c.get(); } other_r13_s_& other_r13() { - assert_choice_type("other-r13", type_.to_string(), "schedulingCellInfo-r13"); + assert_choice_type(types::other_r13, type_, "schedulingCellInfo-r13"); return c.get(); } const own_r13_s_& own_r13() const { - assert_choice_type("own-r13", type_.to_string(), "schedulingCellInfo-r13"); + assert_choice_type(types::own_r13, type_, "schedulingCellInfo-r13"); return c.get(); } const other_r13_s_& other_r13() const { - assert_choice_type("other-r13", type_.to_string(), "schedulingCellInfo-r13"); - return c.get(); - } - own_r13_s_& set_own_r13() - { - set(types::own_r13); - return c.get(); - } - other_r13_s_& set_other_r13() - { - set(types::other_r13); + assert_choice_type(types::other_r13, type_, "schedulingCellInfo-r13"); return c.get(); } + own_r13_s_& set_own_r13(); + other_r13_s_& set_other_r13(); private: types type_; @@ -5329,9 +4981,9 @@ struct laa_scell_cfg_r13_s { enum options { s0, s07, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sf_start_position_r13_e_; @@ -5367,20 +5019,16 @@ struct laa_scell_cfg_v1430_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "crossCarrierSchedulingConfig-UL-r14"); + assert_choice_type(types::setup, type_, "crossCarrierSchedulingConfig-UL-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "crossCarrierSchedulingConfig-UL-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "crossCarrierSchedulingConfig-UL-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5462,20 +5110,16 @@ struct pucch_cfg_ded_v1370_s { // getters pucch_format3_conf_r13_s& setup() { - assert_choice_type("setup", type_.to_string(), "pucch-Format-v1370"); + assert_choice_type(types::setup, type_, "pucch-Format-v1370"); return c; } const pucch_format3_conf_r13_s& setup() const { - assert_choice_type("setup", type_.to_string(), "pucch-Format-v1370"); - return c; - } - void set_release() { set(types::release); } - pucch_format3_conf_r13_s& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pucch-Format-v1370"); return c; } + void set_release(); + pucch_format3_conf_r13_s& set_setup(); private: types type_; @@ -5539,20 +5183,16 @@ struct pusch_cfg_ded_scell_v1530_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "uci-OnPUSCH-r15"); + assert_choice_type(types::setup, type_, "uci-OnPUSCH-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "uci-OnPUSCH-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "uci-OnPUSCH-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5577,7 +5217,7 @@ struct sched_request_cfg_scell_r13_c { enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dsr_trans_max_r13_e_; @@ -5603,20 +5243,16 @@ struct sched_request_cfg_scell_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfigSCell-r13"); + assert_choice_type(types::setup, type_, "SchedulingRequestConfigSCell-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfigSCell-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SchedulingRequestConfigSCell-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5676,20 +5312,16 @@ struct tpc_pdcch_cfg_scell_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-ConfigSCell-r13"); + assert_choice_type(types::setup, type_, "TPC-PDCCH-ConfigSCell-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-ConfigSCell-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "TPC-PDCCH-ConfigSCell-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5718,14 +5350,14 @@ struct ul_pwr_ctrl_ded_scell_r10_s { enum options { en0, en1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated delta_mcs_enabled_r10_e_; struct pathloss_ref_linking_r10_opts { enum options { pcell, scell, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pathloss_ref_linking_r10_e_; @@ -5832,20 +5464,16 @@ struct phys_cfg_ded_scell_r10_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pucch-SCell"); + assert_choice_type(types::setup, type_, "pucch-SCell"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pucch-SCell"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pucch-SCell"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5861,7 +5489,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { l1, l3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated k_max_r14_e_; @@ -5869,9 +5497,9 @@ struct phys_cfg_ded_scell_r10_s { enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated p_a_must_r14_e_; @@ -5894,20 +5522,16 @@ struct phys_cfg_ded_scell_r10_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "must-Config-r14"); + assert_choice_type(types::setup, type_, "must-Config-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "must-Config-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "must-Config-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -5918,7 +5542,7 @@ struct phys_cfg_ded_scell_r10_s { struct types_opts { enum options { cfi_cfg_r15, cfi_pattern_cfg_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5937,34 +5561,26 @@ struct phys_cfg_ded_scell_r10_s { // getters cfi_cfg_r15_s& cfi_cfg_r15() { - assert_choice_type("cfi-Config-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_cfg_r15, type_, "setup"); return c.get(); } cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() { - assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_pattern_cfg_r15, type_, "setup"); return c.get(); } const cfi_cfg_r15_s& cfi_cfg_r15() const { - assert_choice_type("cfi-Config-r15", type_.to_string(), "setup"); + assert_choice_type(types::cfi_cfg_r15, type_, "setup"); return c.get(); } const cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() const { - assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup"); - return c.get(); - } - cfi_cfg_r15_s& set_cfi_cfg_r15() - { - set(types::cfi_cfg_r15); - return c.get(); - } - cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15() - { - set(types::cfi_pattern_cfg_r15); + assert_choice_type(types::cfi_pattern_cfg_r15, type_, "setup"); return c.get(); } + cfi_cfg_r15_s& set_cfi_cfg_r15(); + cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15(); private: types type_; @@ -5986,20 +5602,16 @@ struct phys_cfg_ded_scell_r10_s { // getters setup_c_& setup() { - assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); + assert_choice_type(types::setup, type_, "semiStaticCFI-Config-r15"); return c; } const setup_c_& setup() const { - assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_c_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "semiStaticCFI-Config-r15"); return c; } + void set_release(); + setup_c_& set_setup(); private: types type_; @@ -6011,7 +5623,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_sf_pdsch_repeats_r15_e_; @@ -6019,7 +5631,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { n4, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_slot_subslot_pdsch_repeats_r15_e_; @@ -6027,7 +5639,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { dlrvseq1, dlrvseq2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_sf_pdsch_repeats_r15_e_; @@ -6035,7 +5647,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { dlrvseq1, dlrvseq2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rv_slotsublot_pdsch_repeats_r15_e_; @@ -6043,7 +5655,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mcs_restrict_sf_pdsch_repeats_r15_e_; @@ -6051,7 +5663,7 @@ struct phys_cfg_ded_scell_r10_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated @@ -6091,20 +5703,16 @@ struct phys_cfg_ded_scell_r10_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); + assert_choice_type(types::setup, type_, "blindPDSCH-Repetition-Config-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "blindPDSCH-Repetition-Config-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6215,20 +5823,16 @@ struct phys_cfg_ded_scell_v1370_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v1370"); + assert_choice_type(types::setup, type_, "pucch-SCell-v1370"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v1370"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pucch-SCell-v1370"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6252,7 +5856,7 @@ struct ant_info_ded_v10i0_s { enum options { two_layers, four_layers, eight_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_layers_mimo_r10_e_; @@ -6346,20 +5950,16 @@ struct pucch_cfg_ded_v13c0_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-v13c0"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "n1PUCCH-AN-CS-v13c0"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6391,7 +5991,7 @@ struct drb_to_add_mod_scg_r12_s { struct types_opts { enum options { split_r12, scg_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6405,20 +6005,16 @@ struct drb_to_add_mod_scg_r12_s { // getters scg_r12_s_& scg_r12() { - assert_choice_type("scg-r12", type_.to_string(), "drb-Type-r12"); + assert_choice_type(types::scg_r12, type_, "drb-Type-r12"); return c; } const scg_r12_s_& scg_r12() const { - assert_choice_type("scg-r12", type_.to_string(), "drb-Type-r12"); - return c; - } - void set_split_r12() { set(types::split_r12); } - scg_r12_s_& set_scg_r12() - { - set(types::scg_r12); + assert_choice_type(types::scg_r12, type_, "drb-Type-r12"); return c; } + void set_split_r12(); + scg_r12_s_& set_scg_r12(); private: types type_; @@ -6493,7 +6089,7 @@ struct rlf_timers_and_consts_scg_r12_c { enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t313_r12_e_; @@ -6501,7 +6097,7 @@ struct rlf_timers_and_consts_scg_r12_c { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n313_r12_e_; @@ -6509,7 +6105,7 @@ struct rlf_timers_and_consts_scg_r12_c { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n314_r12_e_; @@ -6533,20 +6129,16 @@ struct rlf_timers_and_consts_scg_r12_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstantsSCG-r12"); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstantsSCG-r12"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstantsSCG-r12"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstantsSCG-r12"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6562,7 +6154,7 @@ struct scell_to_add_mod_r10_s { struct scell_state_r15_opts { enum options { activ, dormant, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated scell_state_r15_e_; @@ -6612,7 +6204,7 @@ struct scell_to_add_mod_ext_v1430_s { struct scell_state_r15_opts { enum options { activ, dormant, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated scell_state_r15_e_; @@ -6685,20 +6277,16 @@ struct phys_cfg_ded_scell_v13c0_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); + assert_choice_type(types::setup, type_, "pucch-SCell-v13c0"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "pucch-SCell-v13c0"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/security.h b/lib/include/srsran/asn1/rrc/security.h index ca43db4d6..bc17acc5b 100644 --- a/lib/include/srsran/asn1/rrc/security.h +++ b/lib/include/srsran/asn1/rrc/security.h @@ -43,7 +43,7 @@ struct security_algorithm_cfg_s { enum options { eia0_v920, eia1, eia2, eia3_v1130, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated integrity_prot_algorithm_e_; @@ -80,7 +80,7 @@ struct security_cfg_ho_v1530_s { struct types_opts { enum options { intra5_gc_r15, fivegc_to_epc_r15, epc_to5_gc_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -97,49 +97,37 @@ struct security_cfg_ho_v1530_s { // getters intra5_gc_r15_s_& intra5_gc_r15() { - assert_choice_type("intra5GC-r15", type_.to_string(), "handoverType-v1530"); + assert_choice_type(types::intra5_gc_r15, type_, "handoverType-v1530"); return c.get(); } fivegc_to_epc_r15_s_& fivegc_to_epc_r15() { - assert_choice_type("fivegc-ToEPC-r15", type_.to_string(), "handoverType-v1530"); + assert_choice_type(types::fivegc_to_epc_r15, type_, "handoverType-v1530"); return c.get(); } epc_to5_gc_r15_s_& epc_to5_gc_r15() { - assert_choice_type("epc-To5GC-r15", type_.to_string(), "handoverType-v1530"); + assert_choice_type(types::epc_to5_gc_r15, type_, "handoverType-v1530"); return c.get(); } const intra5_gc_r15_s_& intra5_gc_r15() const { - assert_choice_type("intra5GC-r15", type_.to_string(), "handoverType-v1530"); + assert_choice_type(types::intra5_gc_r15, type_, "handoverType-v1530"); return c.get(); } const fivegc_to_epc_r15_s_& fivegc_to_epc_r15() const { - assert_choice_type("fivegc-ToEPC-r15", type_.to_string(), "handoverType-v1530"); + assert_choice_type(types::fivegc_to_epc_r15, type_, "handoverType-v1530"); return c.get(); } const epc_to5_gc_r15_s_& epc_to5_gc_r15() const { - assert_choice_type("epc-To5GC-r15", type_.to_string(), "handoverType-v1530"); - return c.get(); - } - intra5_gc_r15_s_& set_intra5_gc_r15() - { - set(types::intra5_gc_r15); - return c.get(); - } - fivegc_to_epc_r15_s_& set_fivegc_to_epc_r15() - { - set(types::fivegc_to_epc_r15); - return c.get(); - } - epc_to5_gc_r15_s_& set_epc_to5_gc_r15() - { - set(types::epc_to5_gc_r15); + assert_choice_type(types::epc_to5_gc_r15, type_, "handoverType-v1530"); return c.get(); } + intra5_gc_r15_s_& set_intra5_gc_r15(); + fivegc_to_epc_r15_s_& set_fivegc_to_epc_r15(); + epc_to5_gc_r15_s_& set_epc_to5_gc_r15(); private: types type_; @@ -175,7 +163,7 @@ struct security_cfg_ho_s { struct types_opts { enum options { intra_lte, inter_rat, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -192,34 +180,26 @@ struct security_cfg_ho_s { // getters intra_lte_s_& intra_lte() { - assert_choice_type("intraLTE", type_.to_string(), "handoverType"); + assert_choice_type(types::intra_lte, type_, "handoverType"); return c.get(); } inter_rat_s_& inter_rat() { - assert_choice_type("interRAT", type_.to_string(), "handoverType"); + assert_choice_type(types::inter_rat, type_, "handoverType"); return c.get(); } const intra_lte_s_& intra_lte() const { - assert_choice_type("intraLTE", type_.to_string(), "handoverType"); + assert_choice_type(types::intra_lte, type_, "handoverType"); return c.get(); } const inter_rat_s_& inter_rat() const { - assert_choice_type("interRAT", type_.to_string(), "handoverType"); - return c.get(); - } - intra_lte_s_& set_intra_lte() - { - set(types::intra_lte); - return c.get(); - } - inter_rat_s_& set_inter_rat() - { - set(types::inter_rat); + assert_choice_type(types::inter_rat, type_, "handoverType"); return c.get(); } + intra_lte_s_& set_intra_lte(); + inter_rat_s_& set_inter_rat(); private: types type_; @@ -282,7 +262,7 @@ struct security_mode_cmd_s { struct types_opts { enum options { security_mode_cmd_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -296,22 +276,18 @@ struct security_mode_cmd_s { // getters security_mode_cmd_r8_ies_s& security_mode_cmd_r8() { - assert_choice_type("securityModeCommand-r8", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd_r8, type_, "c1"); return c; } const security_mode_cmd_r8_ies_s& security_mode_cmd_r8() const { - assert_choice_type("securityModeCommand-r8", type_.to_string(), "c1"); - return c; - } - security_mode_cmd_r8_ies_s& set_security_mode_cmd_r8() - { - set(types::security_mode_cmd_r8); + assert_choice_type(types::security_mode_cmd_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + security_mode_cmd_r8_ies_s& set_security_mode_cmd_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -329,20 +305,16 @@ struct security_mode_cmd_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -411,7 +383,7 @@ struct security_mode_complete_s { struct types_opts { enum options { security_mode_complete_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -425,20 +397,16 @@ struct security_mode_complete_s { // getters security_mode_complete_r8_ies_s& security_mode_complete_r8() { - assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_complete_r8, type_, "criticalExtensions"); return c; } const security_mode_complete_r8_ies_s& security_mode_complete_r8() const { - assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_complete_r8, type_, "criticalExtensions"); return c; } - security_mode_complete_r8_ies_s& set_security_mode_complete_r8() - { - set(types::security_mode_complete_r8); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + security_mode_complete_r8_ies_s& set_security_mode_complete_r8(); + void set_crit_exts_future(); private: types type_; @@ -461,7 +429,7 @@ struct security_mode_fail_s { struct types_opts { enum options { security_mode_fail_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -475,20 +443,16 @@ struct security_mode_fail_s { // getters security_mode_fail_r8_ies_s& security_mode_fail_r8() { - assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_fail_r8, type_, "criticalExtensions"); return c; } const security_mode_fail_r8_ies_s& security_mode_fail_r8() const { - assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions"); - return c; - } - security_mode_fail_r8_ies_s& set_security_mode_fail_r8() - { - set(types::security_mode_fail_r8); + assert_choice_type(types::security_mode_fail_r8, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + security_mode_fail_r8_ies_s& set_security_mode_fail_r8(); + void set_crit_exts_future(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/si.h b/lib/include/srsran/asn1/rrc/si.h index 796d247ed..832afc27b 100644 --- a/lib/include/srsran/asn1/rrc/si.h +++ b/lib/include/srsran/asn1/rrc/si.h @@ -43,7 +43,7 @@ struct mib_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dl_bw_e_; @@ -67,7 +67,7 @@ struct gnss_id_r15_s { struct gnss_id_r15_opts { enum options { gps, sbas, qzss, galileo, glonass, bds, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated gnss_id_r15_e_; @@ -87,7 +87,7 @@ struct sbas_id_r15_s { struct sbas_id_r15_opts { enum options { waas, egnos, msas, gagan, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sbas_id_r15_e_; @@ -137,7 +137,7 @@ struct pos_sib_type_r15_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pos_sib_type_r15_e_; @@ -165,7 +165,7 @@ struct plmn_id_info_v1530_s { struct cell_reserved_for_oper_crs_r15_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_crs_r15_e_; @@ -184,7 +184,7 @@ struct pos_sched_info_r15_s { enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pos_si_periodicity_r15_e_; @@ -205,7 +205,7 @@ struct cell_sel_info_ce_v1530_s { enum options { db_minus6, db_minus3, db3, db6, db9, db12, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated pwr_class14dbm_offset_r15_e_; @@ -243,14 +243,14 @@ struct sib_type1_v1530_ies_s { enum options { n6, n24, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated crs_intf_mitig_num_prbs_e_; struct types_opts { enum options { crs_intf_mitig_enabled, crs_intf_mitig_num_prbs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -264,20 +264,16 @@ struct sib_type1_v1530_ies_s { // getters crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() { - assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "crs-IntfMitigConfig-r15"); + assert_choice_type(types::crs_intf_mitig_num_prbs, type_, "crs-IntfMitigConfig-r15"); return c; } const crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() const { - assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "crs-IntfMitigConfig-r15"); - return c; - } - void set_crs_intf_mitig_enabled() { set(types::crs_intf_mitig_enabled); } - crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs() - { - set(types::crs_intf_mitig_num_prbs); + assert_choice_type(types::crs_intf_mitig_num_prbs, type_, "crs-IntfMitigConfig-r15"); return c; } + void set_crs_intf_mitig_enabled(); + crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs(); private: types type_; @@ -286,20 +282,20 @@ struct sib_type1_v1530_ies_s { struct cell_barred_crs_r15_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_crs_r15_e_; struct cell_access_related_info_minus5_gc_r15_s_ { struct cell_barred_minus5_gc_r15_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_minus5_gc_r15_e_; struct cell_barred_minus5_gc_crs_r15_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_minus5_gc_crs_r15_e_; using cell_access_related_info_list_minus5_gc_r15_l_ = dyn_array; @@ -419,7 +415,7 @@ struct sched_info_br_r13_s { enum options { b152, b208, b256, b328, b408, b504, b600, b712, b808, b936, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_tbs_r13_e_; @@ -454,16 +450,16 @@ struct barr_per_acdc_category_r13_s { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ac_barr_factor_r13_e_; struct ac_barr_time_r13_opts { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ac_barr_time_r13_e_; @@ -509,7 +505,7 @@ struct sib_type1_v1320_ies_s { enum options { nb2, nb4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mpdcch_pdsch_hop_nb_r13_e_; @@ -518,7 +514,7 @@ struct sib_type1_v1320_ies_s { enum options { int1, int2, int4, int8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -526,14 +522,14 @@ struct sib_type1_v1320_ies_s { enum options { int1, int5, int10, int20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -550,34 +546,26 @@ struct sib_type1_v1320_ies_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-DLHoppingConfigCommonModeA-r13"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_tdd_r13, type_, "interval-DLHoppingConfigCommonModeA-r13"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-DLHoppingConfigCommonModeA-r13"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "interval-DLHoppingConfigCommonModeA-r13"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -590,7 +578,7 @@ struct sib_type1_v1320_ies_s { enum options { int2, int4, int8, int16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_fdd_r13_e_; @@ -598,14 +586,14 @@ struct sib_type1_v1320_ies_s { enum options { int5, int10, int20, int40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interv_tdd_r13_e_; struct types_opts { enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -622,34 +610,26 @@ struct sib_type1_v1320_ies_s { // getters interv_fdd_r13_e_& interv_fdd_r13() { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-DLHoppingConfigCommonModeB-r13"); return c.get(); } interv_tdd_r13_e_& interv_tdd_r13() { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_tdd_r13, type_, "interval-DLHoppingConfigCommonModeB-r13"); return c.get(); } const interv_fdd_r13_e_& interv_fdd_r13() const { - assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13"); + assert_choice_type(types::interv_fdd_r13, type_, "interval-DLHoppingConfigCommonModeB-r13"); return c.get(); } const interv_tdd_r13_e_& interv_tdd_r13() const { - assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13"); - return c.get(); - } - interv_fdd_r13_e_& set_interv_fdd_r13() - { - set(types::interv_fdd_r13); - return c.get(); - } - interv_tdd_r13_e_& set_interv_tdd_r13() - { - set(types::interv_tdd_r13); + assert_choice_type(types::interv_tdd_r13, type_, "interval-DLHoppingConfigCommonModeB-r13"); return c.get(); } + interv_fdd_r13_e_& set_interv_fdd_r13(); + interv_tdd_r13_e_& set_interv_tdd_r13(); private: types type_; @@ -687,16 +667,16 @@ struct ac_barr_cfg_s { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ac_barr_factor_e_; struct ac_barr_time_opts { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ac_barr_time_e_; @@ -732,7 +712,7 @@ struct sib_type1_v1310_ies_s { enum options { ms20, ms40, ms60, ms80, ms120, ms160, ms200, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_win_len_br_r13_e_; @@ -740,7 +720,7 @@ struct sib_type1_v1310_ies_s { enum options { every_rf, every2nd_rf, every4th_rf, every8th_rf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_repeat_pattern_r13_e_; @@ -749,7 +729,7 @@ struct sib_type1_v1310_ies_s { enum options { sf_pattern10_r13, sf_pattern40_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -767,34 +747,26 @@ struct sib_type1_v1310_ies_s { // getters fixed_bitstring<10>& sf_pattern10_r13() { - assert_choice_type("subframePattern10-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13"); + assert_choice_type(types::sf_pattern10_r13, type_, "fdd-DownlinkOrTddSubframeBitmapBR-r13"); return c.get >(); } fixed_bitstring<40>& sf_pattern40_r13() { - assert_choice_type("subframePattern40-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13"); + assert_choice_type(types::sf_pattern40_r13, type_, "fdd-DownlinkOrTddSubframeBitmapBR-r13"); return c.get >(); } const fixed_bitstring<10>& sf_pattern10_r13() const { - assert_choice_type("subframePattern10-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13"); + assert_choice_type(types::sf_pattern10_r13, type_, "fdd-DownlinkOrTddSubframeBitmapBR-r13"); return c.get >(); } const fixed_bitstring<40>& sf_pattern40_r13() const { - assert_choice_type("subframePattern40-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13"); - return c.get >(); - } - fixed_bitstring<10>& set_sf_pattern10_r13() - { - set(types::sf_pattern10_r13); - return c.get >(); - } - fixed_bitstring<40>& set_sf_pattern40_r13() - { - set(types::sf_pattern40_r13); + assert_choice_type(types::sf_pattern40_r13, type_, "fdd-DownlinkOrTddSubframeBitmapBR-r13"); return c.get >(); } + fixed_bitstring<10>& set_sf_pattern10_r13(); + fixed_bitstring<40>& set_sf_pattern40_r13(); private: types type_; @@ -805,7 +777,7 @@ struct sib_type1_v1310_ies_s { struct si_hop_cfg_common_r13_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated si_hop_cfg_common_r13_e_; @@ -848,7 +820,7 @@ struct udt_restricting_r13_s { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated udt_restricting_time_r13_e_; @@ -968,7 +940,7 @@ struct sib_type_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_e; @@ -1045,7 +1017,7 @@ struct si_periodicity_r12_opts { enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_periodicity_r12_e; @@ -1077,7 +1049,7 @@ struct ue_timers_and_consts_s { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t300_e_; @@ -1085,7 +1057,7 @@ struct ue_timers_and_consts_s { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_e_; @@ -1093,7 +1065,7 @@ struct ue_timers_and_consts_s { enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_e_; @@ -1101,7 +1073,7 @@ struct ue_timers_and_consts_s { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_e_; @@ -1109,7 +1081,7 @@ struct ue_timers_and_consts_s { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_e_; @@ -1117,7 +1089,7 @@ struct ue_timers_and_consts_s { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_e_; @@ -1125,7 +1097,7 @@ struct ue_timers_and_consts_s { enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t300_v1310_e_; @@ -1133,7 +1105,7 @@ struct ue_timers_and_consts_s { enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_v1310_e_; @@ -1141,7 +1113,7 @@ struct ue_timers_and_consts_s { enum options { ms4000, ms6000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_v1330_e_; @@ -1149,7 +1121,7 @@ struct ue_timers_and_consts_s { enum options { ms4000, ms6000, ms8000, ms10000, ms15000, ms25000, ms40000, ms60000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t300_r15_e_; @@ -1220,7 +1192,7 @@ struct sib_type2_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_e_; @@ -1309,13 +1281,13 @@ struct sib_type1_s { struct cell_barred_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_e_; struct intra_freq_resel_opts { enum options { allowed, not_allowed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated intra_freq_resel_e_; @@ -1338,7 +1310,7 @@ struct sib_type1_s { enum options { ms1, ms2, ms5, ms10, ms15, ms20, ms40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_win_len_e_; diff --git a/lib/include/srsran/asn1/rrc/uecap.h b/lib/include/srsran/asn1/rrc/uecap.h index dd7e7b7bf..ae9b8aecd 100644 --- a/lib/include/srsran/asn1/rrc/uecap.h +++ b/lib/include/srsran/asn1/rrc/uecap.h @@ -41,7 +41,7 @@ namespace rrc { struct ca_bw_class_r10_opts { enum options { a, b, c, d, e, f, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ca_bw_class_r10_e; @@ -151,7 +151,7 @@ struct rat_type_opts { enum options { eutra, utra, geran_cs, geran_ps, cdma2000_minus1_xrtt, nr, eutra_nr, spare1, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated rat_type_e; @@ -207,7 +207,7 @@ struct ue_cap_enquiry_s { struct types_opts { enum options { ue_cap_enquiry_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -221,22 +221,18 @@ struct ue_cap_enquiry_s { // getters ue_cap_enquiry_r8_ies_s& ue_cap_enquiry_r8() { - assert_choice_type("ueCapabilityEnquiry-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r8, type_, "c1"); return c; } const ue_cap_enquiry_r8_ies_s& ue_cap_enquiry_r8() const { - assert_choice_type("ueCapabilityEnquiry-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r8, type_, "c1"); return c; } - ue_cap_enquiry_r8_ies_s& set_ue_cap_enquiry_r8() - { - set(types::ue_cap_enquiry_r8); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_cap_enquiry_r8_ies_s& set_ue_cap_enquiry_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -254,20 +250,16 @@ struct ue_cap_enquiry_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -290,7 +282,7 @@ struct ue_radio_paging_info_r12_s { enum options { ms40, ms240, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated wake_up_signal_min_gap_e_drx_r15_e_; @@ -298,7 +290,7 @@ struct ue_radio_paging_info_r12_s { enum options { ms40, ms240, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated wake_up_signal_min_gap_e_drx_tdd_r15_e_; @@ -384,7 +376,7 @@ struct ue_cap_info_s { struct types_opts { enum options { ue_cap_info_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -398,26 +390,22 @@ struct ue_cap_info_s { // getters ue_cap_info_r8_ies_s& ue_cap_info_r8() { - assert_choice_type("ueCapabilityInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info_r8, type_, "c1"); return c; } const ue_cap_info_r8_ies_s& ue_cap_info_r8() const { - assert_choice_type("ueCapabilityInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info_r8, type_, "c1"); return c; } - ue_cap_info_r8_ies_s& set_ue_cap_info_r8() - { - set(types::ue_cap_info_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_cap_info_r8_ies_s& set_ue_cap_info_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -435,20 +423,16 @@ struct ue_cap_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -511,7 +495,7 @@ struct mimo_cap_dl_r10_opts { enum options { two_layers, four_layers, eight_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mimo_cap_dl_r10_e; @@ -521,7 +505,7 @@ struct mimo_cap_ul_r10_opts { enum options { two_layers, four_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mimo_cap_ul_r10_e; @@ -579,7 +563,7 @@ struct band_params_r11_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_csi_proc_r11_e_; @@ -625,7 +609,7 @@ struct intra_band_contiguous_cc_info_r12_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_csi_proc_r12_e_; @@ -672,7 +656,7 @@ struct band_params_r13_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_csi_proc_r13_e_; @@ -701,7 +685,7 @@ struct band_combination_params_r13_s { enum options { three_entries_r13, four_entries_r13, five_entries_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -719,49 +703,37 @@ struct band_combination_params_r13_s { // getters fixed_bitstring<3>& three_entries_r13() { - assert_choice_type("threeEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); + assert_choice_type(types::three_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } fixed_bitstring<7>& four_entries_r13() { - assert_choice_type("fourEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); + assert_choice_type(types::four_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } fixed_bitstring<15>& five_entries_r13() { - assert_choice_type("fiveEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); + assert_choice_type(types::five_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } const fixed_bitstring<3>& three_entries_r13() const { - assert_choice_type("threeEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); + assert_choice_type(types::three_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } const fixed_bitstring<7>& four_entries_r13() const { - assert_choice_type("fourEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); + assert_choice_type(types::four_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } const fixed_bitstring<15>& five_entries_r13() const { - assert_choice_type("fiveEntries-r13", type_.to_string(), "supportedCellGrouping-r13"); - return c.get >(); - } - fixed_bitstring<3>& set_three_entries_r13() - { - set(types::three_entries_r13); - return c.get >(); - } - fixed_bitstring<7>& set_four_entries_r13() - { - set(types::four_entries_r13); - return c.get >(); - } - fixed_bitstring<15>& set_five_entries_r13() - { - set(types::five_entries_r13); + assert_choice_type(types::five_entries_r13, type_, "supportedCellGrouping-r13"); return c.get >(); } + fixed_bitstring<3>& set_three_entries_r13(); + fixed_bitstring<7>& set_four_entries_r13(); + fixed_bitstring<15>& set_five_entries_r13(); private: types type_; @@ -856,7 +828,7 @@ struct band_params_v1130_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_csi_proc_r11_e_; @@ -896,7 +868,7 @@ struct band_combination_params_v1250_s { enum options { three_entries_r12, four_entries_r12, five_entries_r12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -914,49 +886,37 @@ struct band_combination_params_v1250_s { // getters fixed_bitstring<3>& three_entries_r12() { - assert_choice_type("threeEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); + assert_choice_type(types::three_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } fixed_bitstring<7>& four_entries_r12() { - assert_choice_type("fourEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); + assert_choice_type(types::four_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } fixed_bitstring<15>& five_entries_r12() { - assert_choice_type("fiveEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); + assert_choice_type(types::five_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } const fixed_bitstring<3>& three_entries_r12() const { - assert_choice_type("threeEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); + assert_choice_type(types::three_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } const fixed_bitstring<7>& four_entries_r12() const { - assert_choice_type("fourEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); + assert_choice_type(types::four_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } const fixed_bitstring<15>& five_entries_r12() const { - assert_choice_type("fiveEntries-r12", type_.to_string(), "supportedCellGrouping-r12"); - return c.get >(); - } - fixed_bitstring<3>& set_three_entries_r12() - { - set(types::three_entries_r12); - return c.get >(); - } - fixed_bitstring<7>& set_four_entries_r12() - { - set(types::four_entries_r12); - return c.get >(); - } - fixed_bitstring<15>& set_five_entries_r12() - { - set(types::five_entries_r12); + assert_choice_type(types::five_entries_r12, type_, "supportedCellGrouping-r12"); return c.get >(); } + fixed_bitstring<3>& set_three_entries_r12(); + fixed_bitstring<7>& set_four_entries_r12(); + fixed_bitstring<15>& set_five_entries_r12(); private: types type_; @@ -1183,9 +1143,9 @@ struct srs_cap_per_band_pair_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rf_retuning_time_dl_r14_e_; struct rf_retuning_time_ul_r14_opts { @@ -1210,9 +1170,9 @@ struct srs_cap_per_band_pair_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated rf_retuning_time_ul_r14_e_; @@ -1325,7 +1285,7 @@ struct mimo_ca_params_per_bo_bc_per_tm_v1470_s { enum options { n8, n12, n16, n20, n24, n28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_advanced_max_ports_r14_e_; @@ -1490,7 +1450,7 @@ struct stti_spt_band_params_r15_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated stti_supported_csi_proc_r15_e_; @@ -1588,7 +1548,7 @@ struct v2x_bw_class_r14_opts { enum options { a, b, c, d, e, f, /*...*/ c1_v1530, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated v2x_bw_class_r14_e; @@ -1625,7 +1585,7 @@ struct feature_set_dl_per_cc_r15_s { enum options { n1, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_csi_proc_r15_e_; @@ -1761,13 +1721,13 @@ struct irat_params_cdma2000_minus1_xrtt_s { struct tx_cfg1_xrtt_opts { enum options { single, dual, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tx_cfg1_xrtt_e_; struct rx_cfg1_xrtt_opts { enum options { single, dual, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rx_cfg1_xrtt_e_; @@ -1790,13 +1750,13 @@ struct irat_params_cdma2000_hrpd_s { struct tx_cfg_hrpd_opts { enum options { single, dual, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tx_cfg_hrpd_e_; struct rx_cfg_hrpd_opts { enum options { single, dual, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rx_cfg_hrpd_e_; @@ -1834,7 +1794,7 @@ struct supported_band_geran_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_band_geran_e; @@ -1939,7 +1899,7 @@ struct supported_band_utra_fdd_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_band_utra_fdd_e; @@ -1960,7 +1920,7 @@ struct irat_params_utra_fdd_s { struct supported_band_utra_tdd128_opts { enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_band_utra_tdd128_e; @@ -1981,7 +1941,7 @@ struct irat_params_utra_tdd128_s { struct supported_band_utra_tdd384_opts { enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_band_utra_tdd384_e; @@ -2002,7 +1962,7 @@ struct irat_params_utra_tdd384_s { struct supported_band_utra_tdd768_opts { enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_band_utra_tdd768_e; @@ -2038,7 +1998,7 @@ struct processing_timeline_set_r15_opts { enum options { set1, set2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated processing_timeline_set_r15_e; @@ -2132,7 +2092,7 @@ struct mimo_ue_params_per_tm_v1430_s { enum options { ffs1, ffs2, ffs3, ffs4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nmax_res_r14_e_; @@ -2146,7 +2106,7 @@ struct mimo_ue_params_per_tm_v1430_s { enum options { ffs1, ffs2, ffs3, ffs4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nmax_res_r14_e_; @@ -2194,7 +2154,7 @@ struct mimo_ue_params_per_tm_v1470_s { enum options { n8, n12, n16, n20, n24, n28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated csi_report_advanced_max_ports_r14_e_; @@ -2264,7 +2224,7 @@ struct naics_cap_entry_r12_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nof_aggregated_prb_r12_e_; @@ -2339,7 +2299,7 @@ struct pdcp_params_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated max_num_rohc_context_sessions_e_; @@ -2416,7 +2376,7 @@ struct pdcp_params_nr_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated rohc_context_max_sessions_r15_e_; @@ -2523,7 +2483,7 @@ struct phy_layer_params_v1430_s { enum options { bw5, bw20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_pdsch_pusch_max_bw_r14_e_; @@ -2531,7 +2491,7 @@ struct phy_layer_params_v1430_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_retuning_symbols_r14_e_; @@ -2583,14 +2543,14 @@ struct phy_layer_params_v1530_s { enum options { one_layer, two_layers, four_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_layers_slot_or_subslot_pusch_r15_e_; struct sps_stti_r15_opts { enum options { slot, subslot, slot_and_subslot, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sps_stti_r15_e_; @@ -2930,7 +2890,7 @@ struct supported_band_eutra_v1320_s { enum options { class1, class2, class4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ue_pwr_class_n_r13_e_; @@ -3207,7 +3167,7 @@ struct sl_params_r12_s { enum options { n50, n400, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated disc_supported_proc_r12_e_; @@ -3302,7 +3262,7 @@ struct sl_params_v1530_s { struct slss_supported_tx_freq_r15_opts { enum options { single, multiple, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated slss_supported_tx_freq_r15_e_; @@ -3416,9 +3376,9 @@ struct rf_params_v1570_s { enum options { v1, v1dot2, v1dot25, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated dl_minus1024_qam_scaling_factor_r15_e_; @@ -3918,7 +3878,7 @@ struct laa_params_v1430_s { enum options { nplus1, nplus2, nplus3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated two_step_sched_timing_info_r14_e_; @@ -4055,7 +4015,7 @@ struct pdcp_params_v1430_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated max_num_rohc_context_sessions_r14_e_; @@ -4133,7 +4093,7 @@ struct ue_eutra_cap_v1430_ies_s { enum options { n16, n17, n18, n19, n20, m2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ue_category_ul_v1430_e_; @@ -4505,7 +4465,7 @@ struct ue_eutra_cap_v1310_ies_s { enum options { n17, m1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ue_category_dl_v1310_e_; @@ -4513,7 +4473,7 @@ struct ue_eutra_cap_v1310_ies_s { enum options { n14, m1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ue_category_ul_v1310_e_; @@ -5125,7 +5085,7 @@ struct access_stratum_release_opts { enum options { rel8, rel9, rel10, rel11, rel12, rel13, rel14, rel15, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated access_stratum_release_e; @@ -5228,7 +5188,7 @@ struct mbms_params_v1470_s { struct types_opts { enum options { implicit_value, explicit_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5242,20 +5202,16 @@ struct mbms_params_v1470_s { // getters uint8_t& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); + assert_choice_type(types::explicit_value, type_, "mbms-MaxBW-r14"); return c; } const uint8_t& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); - return c; - } - void set_implicit_value() { set(types::implicit_value); } - uint8_t& set_explicit_value() - { - set(types::explicit_value); + assert_choice_type(types::explicit_value, type_, "mbms-MaxBW-r14"); return c; } + void set_implicit_value(); + uint8_t& set_explicit_value(); private: types type_; @@ -5265,7 +5221,7 @@ struct mbms_params_v1470_s { enum options { n3, n6, n9, n12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mbms_scaling_factor1dot25_r14_e_; @@ -5273,7 +5229,7 @@ struct mbms_params_v1470_s { enum options { n1, n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mbms_scaling_factor7dot5_r14_e_; @@ -5727,7 +5683,7 @@ struct ue_radio_access_cap_info_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5741,26 +5697,22 @@ struct ue_radio_access_cap_info_s { // getters ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() { - assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_access_cap_info_r8, type_, "c1"); return c; } const ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() const { - assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_access_cap_info_r8, type_, "c1"); return c; } - ue_radio_access_cap_info_r8_ies_s& set_ue_radio_access_cap_info_r8() - { - set(types::ue_radio_access_cap_info_r8); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_access_cap_info_r8_ies_s& set_ue_radio_access_cap_info_r8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5778,20 +5730,16 @@ struct ue_radio_access_cap_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/ul_ccch_msg.h b/lib/include/srsran/asn1/rrc/ul_ccch_msg.h index 82660e10c..bca30021e 100644 --- a/lib/include/srsran/asn1/rrc/ul_ccch_msg.h +++ b/lib/include/srsran/asn1/rrc/ul_ccch_msg.h @@ -51,7 +51,7 @@ struct establishment_cause_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_e; @@ -69,7 +69,7 @@ struct establishment_cause_minus5_gc_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_minus5_gc_e; @@ -78,7 +78,7 @@ struct init_ue_id_c { struct types_opts { enum options { s_tmsi, random_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -95,34 +95,26 @@ struct init_ue_id_c { // getters s_tmsi_s& s_tmsi() { - assert_choice_type("s-TMSI", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::s_tmsi, type_, "InitialUE-Identity"); return c.get(); } fixed_bitstring<40>& random_value() { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::random_value, type_, "InitialUE-Identity"); return c.get >(); } const s_tmsi_s& s_tmsi() const { - assert_choice_type("s-TMSI", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::s_tmsi, type_, "InitialUE-Identity"); return c.get(); } const fixed_bitstring<40>& random_value() const { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity"); - return c.get >(); - } - s_tmsi_s& set_s_tmsi() - { - set(types::s_tmsi); - return c.get(); - } - fixed_bitstring<40>& set_random_value() - { - set(types::random_value); + assert_choice_type(types::random_value, type_, "InitialUE-Identity"); return c.get >(); } + s_tmsi_s& set_s_tmsi(); + fixed_bitstring<40>& set_random_value(); private: types type_; @@ -137,7 +129,7 @@ struct init_ue_id_minus5_gc_c { enum options { ng_minus5_g_s_tmsi_part1, random_value, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -155,34 +147,26 @@ struct init_ue_id_minus5_gc_c { // getters fixed_bitstring<40>& ng_minus5_g_s_tmsi_part1() { - assert_choice_type("ng-5G-S-TMSI-Part1", type_.to_string(), "InitialUE-Identity-5GC"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part1, type_, "InitialUE-Identity-5GC"); return c.get >(); } fixed_bitstring<40>& random_value() { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity-5GC"); + assert_choice_type(types::random_value, type_, "InitialUE-Identity-5GC"); return c.get >(); } const fixed_bitstring<40>& ng_minus5_g_s_tmsi_part1() const { - assert_choice_type("ng-5G-S-TMSI-Part1", type_.to_string(), "InitialUE-Identity-5GC"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part1, type_, "InitialUE-Identity-5GC"); return c.get >(); } const fixed_bitstring<40>& random_value() const { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity-5GC"); - return c.get >(); - } - fixed_bitstring<40>& set_ng_minus5_g_s_tmsi_part1() - { - set(types::ng_minus5_g_s_tmsi_part1); - return c.get >(); - } - fixed_bitstring<40>& set_random_value() - { - set(types::random_value); + assert_choice_type(types::random_value, type_, "InitialUE-Identity-5GC"); return c.get >(); } + fixed_bitstring<40>& set_ng_minus5_g_s_tmsi_part1(); + fixed_bitstring<40>& set_random_value(); private: types type_; @@ -219,7 +203,7 @@ struct reestab_ue_id_s { struct reest_cause_opts { enum options { recfg_fail, ho_fail, other_fail, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated reest_cause_e; @@ -237,7 +221,7 @@ struct resume_cause_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated resume_cause_e; @@ -255,7 +239,7 @@ struct resume_cause_r15_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated resume_cause_r15_e; @@ -301,7 +285,7 @@ struct rrc_conn_resume_request_minus5_gc_r15_ies_s { struct types_opts { enum options { full_i_rnti_r15, short_i_rnti_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -318,34 +302,26 @@ struct rrc_conn_resume_request_minus5_gc_r15_ies_s { // getters fixed_bitstring<40>& full_i_rnti_r15() { - assert_choice_type("fullI-RNTI-r15", type_.to_string(), "resumeIdentity-r15"); + assert_choice_type(types::full_i_rnti_r15, type_, "resumeIdentity-r15"); return c.get >(); } fixed_bitstring<24>& short_i_rnti_r15() { - assert_choice_type("shortI-RNTI-r15", type_.to_string(), "resumeIdentity-r15"); + assert_choice_type(types::short_i_rnti_r15, type_, "resumeIdentity-r15"); return c.get >(); } const fixed_bitstring<40>& full_i_rnti_r15() const { - assert_choice_type("fullI-RNTI-r15", type_.to_string(), "resumeIdentity-r15"); + assert_choice_type(types::full_i_rnti_r15, type_, "resumeIdentity-r15"); return c.get >(); } const fixed_bitstring<24>& short_i_rnti_r15() const { - assert_choice_type("shortI-RNTI-r15", type_.to_string(), "resumeIdentity-r15"); - return c.get >(); - } - fixed_bitstring<40>& set_full_i_rnti_r15() - { - set(types::full_i_rnti_r15); - return c.get >(); - } - fixed_bitstring<24>& set_short_i_rnti_r15() - { - set(types::short_i_rnti_r15); + assert_choice_type(types::short_i_rnti_r15, type_, "resumeIdentity-r15"); return c.get >(); } + fixed_bitstring<40>& set_full_i_rnti_r15(); + fixed_bitstring<24>& set_short_i_rnti_r15(); private: types type_; @@ -372,7 +348,7 @@ struct rrc_conn_resume_request_r13_ies_s { struct types_opts { enum options { resume_id_r13, truncated_resume_id_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -389,34 +365,26 @@ struct rrc_conn_resume_request_r13_ies_s { // getters fixed_bitstring<40>& resume_id_r13() { - assert_choice_type("resumeID-r13", type_.to_string(), "resumeIdentity-r13"); + assert_choice_type(types::resume_id_r13, type_, "resumeIdentity-r13"); return c.get >(); } fixed_bitstring<24>& truncated_resume_id_r13() { - assert_choice_type("truncatedResumeID-r13", type_.to_string(), "resumeIdentity-r13"); + assert_choice_type(types::truncated_resume_id_r13, type_, "resumeIdentity-r13"); return c.get >(); } const fixed_bitstring<40>& resume_id_r13() const { - assert_choice_type("resumeID-r13", type_.to_string(), "resumeIdentity-r13"); + assert_choice_type(types::resume_id_r13, type_, "resumeIdentity-r13"); return c.get >(); } const fixed_bitstring<24>& truncated_resume_id_r13() const { - assert_choice_type("truncatedResumeID-r13", type_.to_string(), "resumeIdentity-r13"); - return c.get >(); - } - fixed_bitstring<40>& set_resume_id_r13() - { - set(types::resume_id_r13); - return c.get >(); - } - fixed_bitstring<24>& set_truncated_resume_id_r13() - { - set(types::truncated_resume_id_r13); + assert_choice_type(types::truncated_resume_id_r13, type_, "resumeIdentity-r13"); return c.get >(); } + fixed_bitstring<40>& set_resume_id_r13(); + fixed_bitstring<24>& set_truncated_resume_id_r13(); private: types type_; @@ -442,7 +410,7 @@ struct rrc_early_data_request_r15_ies_s { struct establishment_cause_r15_opts { enum options { mo_data, delay_tolerant_access, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_r15_e_; @@ -465,7 +433,7 @@ struct rrc_conn_reest_request_s { struct types_opts { enum options { rrc_conn_reest_request_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -479,20 +447,16 @@ struct rrc_conn_reest_request_s { // getters rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8() { - assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_request_r8, type_, "criticalExtensions"); return c; } const rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8() const { - assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_reest_request_r8_ies_s& set_rrc_conn_reest_request_r8() - { - set(types::rrc_conn_reest_request_r8); + assert_choice_type(types::rrc_conn_reest_request_r8, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_reest_request_r8_ies_s& set_rrc_conn_reest_request_r8(); + void set_crit_exts_future(); private: types type_; @@ -514,7 +478,7 @@ struct rrc_conn_request_s { struct types_opts { enum options { rrc_conn_request_r8, rrc_conn_request_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -531,34 +495,26 @@ struct rrc_conn_request_s { // getters rrc_conn_request_r8_ies_s& rrc_conn_request_r8() { - assert_choice_type("rrcConnectionRequest-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_request_r8, type_, "criticalExtensions"); return c.get(); } rrc_conn_request_minus5_gc_r15_ies_s& rrc_conn_request_r15() { - assert_choice_type("rrcConnectionRequest-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_request_r15, type_, "criticalExtensions"); return c.get(); } const rrc_conn_request_r8_ies_s& rrc_conn_request_r8() const { - assert_choice_type("rrcConnectionRequest-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_request_r8, type_, "criticalExtensions"); return c.get(); } const rrc_conn_request_minus5_gc_r15_ies_s& rrc_conn_request_r15() const { - assert_choice_type("rrcConnectionRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); - } - rrc_conn_request_r8_ies_s& set_rrc_conn_request_r8() - { - set(types::rrc_conn_request_r8); - return c.get(); - } - rrc_conn_request_minus5_gc_r15_ies_s& set_rrc_conn_request_r15() - { - set(types::rrc_conn_request_r15); + assert_choice_type(types::rrc_conn_request_r15, type_, "criticalExtensions"); return c.get(); } + rrc_conn_request_r8_ies_s& set_rrc_conn_request_r8(); + rrc_conn_request_minus5_gc_r15_ies_s& set_rrc_conn_request_r15(); private: types type_; @@ -582,7 +538,7 @@ struct rrc_conn_resume_request_r13_s { struct types_opts { enum options { rrc_conn_resume_request_r13, rrc_conn_resume_request_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -599,34 +555,26 @@ struct rrc_conn_resume_request_r13_s { // getters rrc_conn_resume_request_r13_ies_s& rrc_conn_resume_request_r13() { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "criticalExtensions"); return c.get(); } rrc_conn_resume_request_minus5_gc_r15_ies_s& rrc_conn_resume_request_r15() { - assert_choice_type("rrcConnectionResumeRequest-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_request_r15, type_, "criticalExtensions"); return c.get(); } const rrc_conn_resume_request_r13_ies_s& rrc_conn_resume_request_r13() const { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "criticalExtensions"); return c.get(); } const rrc_conn_resume_request_minus5_gc_r15_ies_s& rrc_conn_resume_request_r15() const { - assert_choice_type("rrcConnectionResumeRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); - } - rrc_conn_resume_request_r13_ies_s& set_rrc_conn_resume_request_r13() - { - set(types::rrc_conn_resume_request_r13); - return c.get(); - } - rrc_conn_resume_request_minus5_gc_r15_ies_s& set_rrc_conn_resume_request_r15() - { - set(types::rrc_conn_resume_request_r15); + assert_choice_type(types::rrc_conn_resume_request_r15, type_, "criticalExtensions"); return c.get(); } + rrc_conn_resume_request_r13_ies_s& set_rrc_conn_resume_request_r13(); + rrc_conn_resume_request_minus5_gc_r15_ies_s& set_rrc_conn_resume_request_r15(); private: types type_; @@ -650,7 +598,7 @@ struct rrc_early_data_request_r15_s { struct types_opts { enum options { rrc_early_data_request_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -664,20 +612,16 @@ struct rrc_early_data_request_r15_s { // getters rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15() { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "criticalExtensions"); return c; } const rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15() const { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_early_data_request_r15_ies_s& set_rrc_early_data_request_r15() - { - set(types::rrc_early_data_request_r15); + assert_choice_type(types::rrc_early_data_request_r15, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_early_data_request_r15_ies_s& set_rrc_early_data_request_r15(); + void set_crit_exts_future(); private: types type_; @@ -699,7 +643,7 @@ struct ul_ccch_msg_type_c { struct types_opts { enum options { rrc_conn_reest_request, rrc_conn_request, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -716,34 +660,26 @@ struct ul_ccch_msg_type_c { // getters rrc_conn_reest_request_s& rrc_conn_reest_request() { - assert_choice_type("rrcConnectionReestablishmentRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_request, type_, "c1"); return c.get(); } rrc_conn_request_s& rrc_conn_request() { - assert_choice_type("rrcConnectionRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_request, type_, "c1"); return c.get(); } const rrc_conn_reest_request_s& rrc_conn_reest_request() const { - assert_choice_type("rrcConnectionReestablishmentRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_request, type_, "c1"); return c.get(); } const rrc_conn_request_s& rrc_conn_request() const { - assert_choice_type("rrcConnectionRequest", type_.to_string(), "c1"); - return c.get(); - } - rrc_conn_reest_request_s& set_rrc_conn_reest_request() - { - set(types::rrc_conn_reest_request); - return c.get(); - } - rrc_conn_request_s& set_rrc_conn_request() - { - set(types::rrc_conn_request); + assert_choice_type(types::rrc_conn_request, type_, "c1"); return c.get(); } + rrc_conn_reest_request_s& set_rrc_conn_reest_request(); + rrc_conn_request_s& set_rrc_conn_request(); private: types type_; @@ -756,7 +692,7 @@ struct ul_ccch_msg_type_c { struct types_opts { enum options { rrc_conn_resume_request_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -777,7 +713,7 @@ struct ul_ccch_msg_type_c { struct types_opts { enum options { rrc_early_data_request_r15, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -791,22 +727,18 @@ struct ul_ccch_msg_type_c { // getters rrc_early_data_request_r15_s& rrc_early_data_request_r15() { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c3"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "c3"); return c; } const rrc_early_data_request_r15_s& rrc_early_data_request_r15() const { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c3"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "c3"); return c; } - rrc_early_data_request_r15_s& set_rrc_early_data_request_r15() - { - set(types::rrc_early_data_request_r15); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_early_data_request_r15_s& set_rrc_early_data_request_r15(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -816,7 +748,7 @@ struct ul_ccch_msg_type_c { enum options { c3, msg_class_ext_future_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -831,20 +763,16 @@ struct ul_ccch_msg_type_c { // getters c3_c_& c3() { - assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13"); + assert_choice_type(types::c3, type_, "messageClassExtensionFuture-r13"); return c; } const c3_c_& c3() const { - assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13"); - return c; - } - c3_c_& set_c3() - { - set(types::c3); + assert_choice_type(types::c3, type_, "messageClassExtensionFuture-r13"); return c; } - void set_msg_class_ext_future_r15() { set(types::msg_class_ext_future_r15); } + c3_c_& set_c3(); + void set_msg_class_ext_future_r15(); private: types type_; @@ -854,7 +782,7 @@ struct ul_ccch_msg_type_c { enum options { c2, msg_class_ext_future_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -872,34 +800,26 @@ struct ul_ccch_msg_type_c { // getters c2_c_& c2() { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c.get(); } msg_class_ext_future_r13_c_& msg_class_ext_future_r13() { - assert_choice_type("messageClassExtensionFuture-r13", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::msg_class_ext_future_r13, type_, "messageClassExtension"); return c.get(); } const c2_c_& c2() const { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c.get(); } const msg_class_ext_future_r13_c_& msg_class_ext_future_r13() const { - assert_choice_type("messageClassExtensionFuture-r13", type_.to_string(), "messageClassExtension"); - return c.get(); - } - c2_c_& set_c2() - { - set(types::c2); - return c.get(); - } - msg_class_ext_future_r13_c_& set_msg_class_ext_future_r13() - { - set(types::msg_class_ext_future_r13); + assert_choice_type(types::msg_class_ext_future_r13, type_, "messageClassExtension"); return c.get(); } + c2_c_& set_c2(); + msg_class_ext_future_r13_c_& set_msg_class_ext_future_r13(); private: types type_; @@ -911,7 +831,7 @@ struct ul_ccch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -929,34 +849,26 @@ struct ul_ccch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType"); return c.get(); } msg_class_ext_c_& msg_class_ext() { - assert_choice_type("messageClassExtension", type_.to_string(), "UL-CCCH-MessageType"); + assert_choice_type(types::msg_class_ext, type_, "UL-CCCH-MessageType"); return c.get(); } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType"); return c.get(); } const msg_class_ext_c_& msg_class_ext() const { - assert_choice_type("messageClassExtension", type_.to_string(), "UL-CCCH-MessageType"); - return c.get(); - } - c1_c_& set_c1() - { - set(types::c1); - return c.get(); - } - msg_class_ext_c_& set_msg_class_ext() - { - set(types::msg_class_ext); + assert_choice_type(types::msg_class_ext, type_, "UL-CCCH-MessageType"); return c.get(); } + c1_c_& set_c1(); + msg_class_ext_c_& set_msg_class_ext(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc/ul_dcch_msg.h b/lib/include/srsran/asn1/rrc/ul_dcch_msg.h index 73aa1f60e..d1cdedd75 100644 --- a/lib/include/srsran/asn1/rrc/ul_dcch_msg.h +++ b/lib/include/srsran/asn1/rrc/ul_dcch_msg.h @@ -46,7 +46,7 @@ struct tmgi_r9_s { struct types_opts { enum options { plmn_idx_r9, explicit_value_r9, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -63,34 +63,26 @@ struct tmgi_r9_s { // getters uint8_t& plmn_idx_r9() { - assert_choice_type("plmn-Index-r9", type_.to_string(), "plmn-Id-r9"); + assert_choice_type(types::plmn_idx_r9, type_, "plmn-Id-r9"); return c.get(); } plmn_id_s& explicit_value_r9() { - assert_choice_type("explicitValue-r9", type_.to_string(), "plmn-Id-r9"); + assert_choice_type(types::explicit_value_r9, type_, "plmn-Id-r9"); return c.get(); } const uint8_t& plmn_idx_r9() const { - assert_choice_type("plmn-Index-r9", type_.to_string(), "plmn-Id-r9"); + assert_choice_type(types::plmn_idx_r9, type_, "plmn-Id-r9"); return c.get(); } const plmn_id_s& explicit_value_r9() const { - assert_choice_type("explicitValue-r9", type_.to_string(), "plmn-Id-r9"); - return c.get(); - } - uint8_t& set_plmn_idx_r9() - { - set(types::plmn_idx_r9); - return c.get(); - } - plmn_id_s& set_explicit_value_r9() - { - set(types::explicit_value_r9); + assert_choice_type(types::explicit_value_r9, type_, "plmn-Id-r9"); return c.get(); } + uint8_t& set_plmn_idx_r9(); + plmn_id_s& set_explicit_value_r9(); private: types type_; @@ -134,7 +126,7 @@ struct rrc_conn_setup_complete_v1540_ies_s { struct guami_type_r15_opts { enum options { native, mapped, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated guami_type_r15_e_; @@ -167,7 +159,7 @@ struct s_nssai_r15_c { struct types_opts { enum options { sst, sst_sd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -184,34 +176,26 @@ struct s_nssai_r15_c { // getters fixed_bitstring<8>& sst() { - assert_choice_type("sst", type_.to_string(), "S-NSSAI-r15"); + assert_choice_type(types::sst, type_, "S-NSSAI-r15"); return c.get >(); } fixed_bitstring<32>& sst_sd() { - assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI-r15"); + assert_choice_type(types::sst_sd, type_, "S-NSSAI-r15"); return c.get >(); } const fixed_bitstring<8>& sst() const { - assert_choice_type("sst", type_.to_string(), "S-NSSAI-r15"); + assert_choice_type(types::sst, type_, "S-NSSAI-r15"); return c.get >(); } const fixed_bitstring<32>& sst_sd() const { - assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI-r15"); - return c.get >(); - } - fixed_bitstring<8>& set_sst() - { - set(types::sst); - return c.get >(); - } - fixed_bitstring<32>& set_sst_sd() - { - set(types::sst_sd); + assert_choice_type(types::sst_sd, type_, "S-NSSAI-r15"); return c.get >(); } + fixed_bitstring<8>& set_sst(); + fixed_bitstring<32>& set_sst_sd(); private: types type_; @@ -230,7 +214,7 @@ struct rrc_conn_setup_complete_v1530_ies_s { struct types_opts { enum options { ng_minus5_g_s_tmsi_r15, ng_minus5_g_s_tmsi_part2_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -247,34 +231,26 @@ struct rrc_conn_setup_complete_v1530_ies_s { // getters fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() { - assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15"); + assert_choice_type(types::ng_minus5_g_s_tmsi_r15, type_, "ng-5G-S-TMSI-Bits-r15"); return c.get >(); } fixed_bitstring<8>& ng_minus5_g_s_tmsi_part2_r15() { - assert_choice_type("ng-5G-S-TMSI-Part2-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part2_r15, type_, "ng-5G-S-TMSI-Bits-r15"); return c.get >(); } const fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() const { - assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15"); + assert_choice_type(types::ng_minus5_g_s_tmsi_r15, type_, "ng-5G-S-TMSI-Bits-r15"); return c.get >(); } const fixed_bitstring<8>& ng_minus5_g_s_tmsi_part2_r15() const { - assert_choice_type("ng-5G-S-TMSI-Part2-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15"); - return c.get >(); - } - fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15() - { - set(types::ng_minus5_g_s_tmsi_r15); - return c.get >(); - } - fixed_bitstring<8>& set_ng_minus5_g_s_tmsi_part2_r15() - { - set(types::ng_minus5_g_s_tmsi_part2_r15); + assert_choice_type(types::ng_minus5_g_s_tmsi_part2_r15, type_, "ng-5G-S-TMSI-Bits-r15"); return c.get >(); } + fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15(); + fixed_bitstring<8>& set_ng_minus5_g_s_tmsi_part2_r15(); private: types type_; @@ -320,7 +296,7 @@ struct meas_result_idle_r15_s { struct types_opts { enum options { meas_result_idle_list_eutra_r15, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -355,7 +331,7 @@ struct per_cc_gap_ind_r14_s { struct gap_ind_r14_opts { enum options { gap, ncsg, nogap_no_ncsg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated gap_ind_r14_e_; @@ -420,7 +396,7 @@ struct visited_cell_info_r12_s { struct types_opts { enum options { cell_global_id_r12, pci_arfcn_r12, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -437,34 +413,26 @@ struct visited_cell_info_r12_s { // getters cell_global_id_eutra_s& cell_global_id_r12() { - assert_choice_type("cellGlobalId-r12", type_.to_string(), "visitedCellId-r12"); + assert_choice_type(types::cell_global_id_r12, type_, "visitedCellId-r12"); return c.get(); } pci_arfcn_r12_s_& pci_arfcn_r12() { - assert_choice_type("pci-arfcn-r12", type_.to_string(), "visitedCellId-r12"); + assert_choice_type(types::pci_arfcn_r12, type_, "visitedCellId-r12"); return c.get(); } const cell_global_id_eutra_s& cell_global_id_r12() const { - assert_choice_type("cellGlobalId-r12", type_.to_string(), "visitedCellId-r12"); + assert_choice_type(types::cell_global_id_r12, type_, "visitedCellId-r12"); return c.get(); } const pci_arfcn_r12_s_& pci_arfcn_r12() const { - assert_choice_type("pci-arfcn-r12", type_.to_string(), "visitedCellId-r12"); - return c.get(); - } - cell_global_id_eutra_s& set_cell_global_id_r12() - { - set(types::cell_global_id_r12); - return c.get(); - } - pci_arfcn_r12_s_& set_pci_arfcn_r12() - { - set(types::pci_arfcn_r12); + assert_choice_type(types::pci_arfcn_r12, type_, "visitedCellId-r12"); return c.get(); } + cell_global_id_eutra_s& set_cell_global_id_r12(); + pci_arfcn_r12_s_& set_pci_arfcn_r12(); private: types type_; @@ -503,7 +471,7 @@ struct affected_carrier_freq_comb_info_mrdc_r15_s { struct interference_direction_mrdc_r15_opts { enum options { eutra_nr, nr, other, eutra_nr_other, nr_other, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated interference_direction_mrdc_r15_e_; struct affected_carrier_freq_comb_mrdc_r15_s_ { @@ -795,7 +763,7 @@ struct rrc_conn_setup_complete_v1250_ies_s { struct mob_state_r12_opts { enum options { normal, medium, high, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mob_state_r12_e_; @@ -863,7 +831,7 @@ struct idc_sf_pattern_r11_c { enum options { sf_cfg0_r11, sf_cfg1_minus5_r11, sf_cfg6_r11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -881,49 +849,37 @@ struct idc_sf_pattern_r11_c { // getters fixed_bitstring<70>& sf_cfg0_r11() { - assert_choice_type("subframeConfig0-r11", type_.to_string(), "subframePatternTDD-r11"); + assert_choice_type(types::sf_cfg0_r11, type_, "subframePatternTDD-r11"); return c.get >(); } fixed_bitstring<10>& sf_cfg1_minus5_r11() { - assert_choice_type("subframeConfig1-5-r11", type_.to_string(), "subframePatternTDD-r11"); + assert_choice_type(types::sf_cfg1_minus5_r11, type_, "subframePatternTDD-r11"); return c.get >(); } fixed_bitstring<60>& sf_cfg6_r11() { - assert_choice_type("subframeConfig6-r11", type_.to_string(), "subframePatternTDD-r11"); + assert_choice_type(types::sf_cfg6_r11, type_, "subframePatternTDD-r11"); return c.get >(); } const fixed_bitstring<70>& sf_cfg0_r11() const { - assert_choice_type("subframeConfig0-r11", type_.to_string(), "subframePatternTDD-r11"); + assert_choice_type(types::sf_cfg0_r11, type_, "subframePatternTDD-r11"); return c.get >(); } const fixed_bitstring<10>& sf_cfg1_minus5_r11() const { - assert_choice_type("subframeConfig1-5-r11", type_.to_string(), "subframePatternTDD-r11"); + assert_choice_type(types::sf_cfg1_minus5_r11, type_, "subframePatternTDD-r11"); return c.get >(); } const fixed_bitstring<60>& sf_cfg6_r11() const { - assert_choice_type("subframeConfig6-r11", type_.to_string(), "subframePatternTDD-r11"); - return c.get >(); - } - fixed_bitstring<70>& set_sf_cfg0_r11() - { - set(types::sf_cfg0_r11); - return c.get >(); - } - fixed_bitstring<10>& set_sf_cfg1_minus5_r11() - { - set(types::sf_cfg1_minus5_r11); - return c.get >(); - } - fixed_bitstring<60>& set_sf_cfg6_r11() - { - set(types::sf_cfg6_r11); + assert_choice_type(types::sf_cfg6_r11, type_, "subframePatternTDD-r11"); return c.get >(); } + fixed_bitstring<70>& set_sf_cfg0_r11(); + fixed_bitstring<10>& set_sf_cfg1_minus5_r11(); + fixed_bitstring<60>& set_sf_cfg6_r11(); private: types type_; @@ -934,7 +890,7 @@ struct idc_sf_pattern_r11_c { struct types_opts { enum options { sf_pattern_fdd_r11, sf_pattern_tdd_r11, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -951,34 +907,26 @@ struct idc_sf_pattern_r11_c { // getters fixed_bitstring<4>& sf_pattern_fdd_r11() { - assert_choice_type("subframePatternFDD-r11", type_.to_string(), "IDC-SubframePattern-r11"); + assert_choice_type(types::sf_pattern_fdd_r11, type_, "IDC-SubframePattern-r11"); return c.get >(); } sf_pattern_tdd_r11_c_& sf_pattern_tdd_r11() { - assert_choice_type("subframePatternTDD-r11", type_.to_string(), "IDC-SubframePattern-r11"); + assert_choice_type(types::sf_pattern_tdd_r11, type_, "IDC-SubframePattern-r11"); return c.get(); } const fixed_bitstring<4>& sf_pattern_fdd_r11() const { - assert_choice_type("subframePatternFDD-r11", type_.to_string(), "IDC-SubframePattern-r11"); + assert_choice_type(types::sf_pattern_fdd_r11, type_, "IDC-SubframePattern-r11"); return c.get >(); } const sf_pattern_tdd_r11_c_& sf_pattern_tdd_r11() const { - assert_choice_type("subframePatternTDD-r11", type_.to_string(), "IDC-SubframePattern-r11"); - return c.get(); - } - fixed_bitstring<4>& set_sf_pattern_fdd_r11() - { - set(types::sf_pattern_fdd_r11); - return c.get >(); - } - sf_pattern_tdd_r11_c_& set_sf_pattern_tdd_r11() - { - set(types::sf_pattern_tdd_r11); + assert_choice_type(types::sf_pattern_tdd_r11, type_, "IDC-SubframePattern-r11"); return c.get(); } + fixed_bitstring<4>& set_sf_pattern_fdd_r11(); + sf_pattern_tdd_r11_c_& set_sf_pattern_tdd_r11(); private: types type_; @@ -1005,16 +953,16 @@ struct mbms_rom_info_r15_s { enum options { khz15, khz7dot5, khz1dot25, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mbms_rom_subcarrier_spacing_r15_e_; struct mbms_bw_r15_opts { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mbms_bw_r15_e_; @@ -1143,7 +1091,7 @@ struct sl_disc_sys_info_report_r13_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_r13_e_; @@ -1158,7 +1106,7 @@ struct sl_disc_sys_info_report_r13_s { enum options { n6, n15, n25, n50, n75, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_bw_r13_e_; @@ -1261,7 +1209,7 @@ struct traffic_pattern_info_r14_s { enum options { sf20, sf50, sf100, sf200, sf300, sf400, sf500, sf600, sf700, sf800, sf900, sf1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated traffic_periodicity_r14_e_; @@ -1316,7 +1264,7 @@ struct affected_carrier_freq_r11_s { struct interference_direction_r11_opts { enum options { eutra, other, both, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated interference_direction_r11_e_; @@ -1339,18 +1287,18 @@ struct bw_pref_r14_s { enum options { mhz1dot4, mhz5, mhz20, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated dl_pref_r14_e_; struct ul_pref_r14_opts { enum options { mhz1dot4, mhz5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ul_pref_r14_e_; @@ -1415,7 +1363,7 @@ struct delay_budget_report_r14_c { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated type1_e_; @@ -1442,7 +1390,7 @@ struct delay_budget_report_r14_c { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated type2_e_; @@ -1450,7 +1398,7 @@ struct delay_budget_report_r14_c { enum options { type1, type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1468,34 +1416,26 @@ struct delay_budget_report_r14_c { // getters type1_e_& type1() { - assert_choice_type("type1", type_.to_string(), "DelayBudgetReport-r14"); + assert_choice_type(types::type1, type_, "DelayBudgetReport-r14"); return c.get(); } type2_e_& type2() { - assert_choice_type("type2", type_.to_string(), "DelayBudgetReport-r14"); + assert_choice_type(types::type2, type_, "DelayBudgetReport-r14"); return c.get(); } const type1_e_& type1() const { - assert_choice_type("type1", type_.to_string(), "DelayBudgetReport-r14"); + assert_choice_type(types::type1, type_, "DelayBudgetReport-r14"); return c.get(); } const type2_e_& type2() const { - assert_choice_type("type2", type_.to_string(), "DelayBudgetReport-r14"); - return c.get(); - } - type1_e_& set_type1() - { - set(types::type1); - return c.get(); - } - type2_e_& set_type2() - { - set(types::type2); + assert_choice_type(types::type2, type_, "DelayBudgetReport-r14"); return c.get(); } + type1_e_& set_type1(); + type2_e_& set_type2(); private: types type_; @@ -1574,13 +1514,13 @@ struct rrc_conn_setup_complete_v1020_ies_s { struct gummei_type_r10_opts { enum options { native, mapped, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated gummei_type_r10_e_; struct rn_sf_cfg_req_r10_opts { enum options { required, not_required, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rn_sf_cfg_req_r10_e_; @@ -1630,7 +1570,7 @@ struct rstd_inter_freq_info_r10_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1648,319 +1588,235 @@ struct rstd_inter_freq_info_r10_s { // getters uint8_t& rstd0_r15() { - assert_choice_type("rstd0-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd0_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint8_t& rstd1_r15() { - assert_choice_type("rstd1-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd1_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd2_r15() { - assert_choice_type("rstd2-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd2_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd3_r15() { - assert_choice_type("rstd3-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd3_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd4_r15() { - assert_choice_type("rstd4-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd4_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint8_t& rstd5_r15() { - assert_choice_type("rstd5-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd5_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd6_r15() { - assert_choice_type("rstd6-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd6_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd7_r15() { - assert_choice_type("rstd7-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd7_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd8_r15() { - assert_choice_type("rstd8-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd8_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd9_r15() { - assert_choice_type("rstd9-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd9_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd10_r15() { - assert_choice_type("rstd10-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd10_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd11_r15() { - assert_choice_type("rstd11-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd11_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd12_r15() { - assert_choice_type("rstd12-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd12_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd13_r15() { - assert_choice_type("rstd13-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd13_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd14_r15() { - assert_choice_type("rstd14-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd14_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd15_r15() { - assert_choice_type("rstd15-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd15_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd16_r15() { - assert_choice_type("rstd16-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd16_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd17_r15() { - assert_choice_type("rstd17-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd17_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd18_r15() { - assert_choice_type("rstd18-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd18_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd19_r15() { - assert_choice_type("rstd19-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd19_r15, type_, "measPRS-Offset-r15"); return c.get(); } uint16_t& rstd20_r15() { - assert_choice_type("rstd20-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd20_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint8_t& rstd0_r15() const { - assert_choice_type("rstd0-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd0_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint8_t& rstd1_r15() const { - assert_choice_type("rstd1-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd1_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd2_r15() const { - assert_choice_type("rstd2-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd2_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd3_r15() const { - assert_choice_type("rstd3-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd3_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd4_r15() const { - assert_choice_type("rstd4-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd4_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint8_t& rstd5_r15() const { - assert_choice_type("rstd5-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd5_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd6_r15() const { - assert_choice_type("rstd6-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd6_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd7_r15() const { - assert_choice_type("rstd7-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd7_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd8_r15() const { - assert_choice_type("rstd8-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd8_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd9_r15() const { - assert_choice_type("rstd9-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd9_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd10_r15() const { - assert_choice_type("rstd10-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd10_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd11_r15() const { - assert_choice_type("rstd11-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd11_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd12_r15() const { - assert_choice_type("rstd12-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd12_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd13_r15() const { - assert_choice_type("rstd13-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd13_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd14_r15() const { - assert_choice_type("rstd14-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd14_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd15_r15() const { - assert_choice_type("rstd15-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd15_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd16_r15() const { - assert_choice_type("rstd16-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd16_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd17_r15() const { - assert_choice_type("rstd17-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd17_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd18_r15() const { - assert_choice_type("rstd18-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd18_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd19_r15() const { - assert_choice_type("rstd19-r15", type_.to_string(), "measPRS-Offset-r15"); + assert_choice_type(types::rstd19_r15, type_, "measPRS-Offset-r15"); return c.get(); } const uint16_t& rstd20_r15() const { - assert_choice_type("rstd20-r15", type_.to_string(), "measPRS-Offset-r15"); - return c.get(); - } - uint8_t& set_rstd0_r15() - { - set(types::rstd0_r15); - return c.get(); - } - uint8_t& set_rstd1_r15() - { - set(types::rstd1_r15); - return c.get(); - } - uint16_t& set_rstd2_r15() - { - set(types::rstd2_r15); - return c.get(); - } - uint16_t& set_rstd3_r15() - { - set(types::rstd3_r15); - return c.get(); - } - uint16_t& set_rstd4_r15() - { - set(types::rstd4_r15); - return c.get(); - } - uint8_t& set_rstd5_r15() - { - set(types::rstd5_r15); - return c.get(); - } - uint16_t& set_rstd6_r15() - { - set(types::rstd6_r15); - return c.get(); - } - uint16_t& set_rstd7_r15() - { - set(types::rstd7_r15); - return c.get(); - } - uint16_t& set_rstd8_r15() - { - set(types::rstd8_r15); - return c.get(); - } - uint16_t& set_rstd9_r15() - { - set(types::rstd9_r15); - return c.get(); - } - uint16_t& set_rstd10_r15() - { - set(types::rstd10_r15); - return c.get(); - } - uint16_t& set_rstd11_r15() - { - set(types::rstd11_r15); - return c.get(); - } - uint16_t& set_rstd12_r15() - { - set(types::rstd12_r15); - return c.get(); - } - uint16_t& set_rstd13_r15() - { - set(types::rstd13_r15); - return c.get(); - } - uint16_t& set_rstd14_r15() - { - set(types::rstd14_r15); - return c.get(); - } - uint16_t& set_rstd15_r15() - { - set(types::rstd15_r15); - return c.get(); - } - uint16_t& set_rstd16_r15() - { - set(types::rstd16_r15); - return c.get(); - } - uint16_t& set_rstd17_r15() - { - set(types::rstd17_r15); - return c.get(); - } - uint16_t& set_rstd18_r15() - { - set(types::rstd18_r15); - return c.get(); - } - uint16_t& set_rstd19_r15() - { - set(types::rstd19_r15); - return c.get(); - } - uint16_t& set_rstd20_r15() - { - set(types::rstd20_r15); + assert_choice_type(types::rstd20_r15, type_, "measPRS-Offset-r15"); return c.get(); } + uint8_t& set_rstd0_r15(); + uint8_t& set_rstd1_r15(); + uint16_t& set_rstd2_r15(); + uint16_t& set_rstd3_r15(); + uint16_t& set_rstd4_r15(); + uint8_t& set_rstd5_r15(); + uint16_t& set_rstd6_r15(); + uint16_t& set_rstd7_r15(); + uint16_t& set_rstd8_r15(); + uint16_t& set_rstd9_r15(); + uint16_t& set_rstd10_r15(); + uint16_t& set_rstd11_r15(); + uint16_t& set_rstd12_r15(); + uint16_t& set_rstd13_r15(); + uint16_t& set_rstd14_r15(); + uint16_t& set_rstd15_r15(); + uint16_t& set_rstd16_r15(); + uint16_t& set_rstd17_r15(); + uint16_t& set_rstd18_r15(); + uint16_t& set_rstd19_r15(); + uint16_t& set_rstd20_r15(); private: types type_; @@ -2056,7 +1912,7 @@ struct ue_info_resp_v1020_ies_s { struct wlan_status_v1430_opts { enum options { suspended, resumed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated wlan_status_v1430_e; @@ -2111,7 +1967,7 @@ struct fail_report_scg_nr_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_r15_e_; @@ -2137,7 +1993,7 @@ struct fail_report_scg_r12_s { enum options { t313_expiry, random_access_problem, rlc_max_num_retx, scg_change_fail, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_r12_e_; @@ -2243,7 +2099,7 @@ struct rlf_report_r9_s { struct types_opts { enum options { cell_global_id_r10, pci_arfcn_r10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2260,34 +2116,26 @@ struct rlf_report_r9_s { // getters cell_global_id_eutra_s& cell_global_id_r10() { - assert_choice_type("cellGlobalId-r10", type_.to_string(), "failedPCellId-r10"); + assert_choice_type(types::cell_global_id_r10, type_, "failedPCellId-r10"); return c.get(); } pci_arfcn_r10_s_& pci_arfcn_r10() { - assert_choice_type("pci-arfcn-r10", type_.to_string(), "failedPCellId-r10"); + assert_choice_type(types::pci_arfcn_r10, type_, "failedPCellId-r10"); return c.get(); } const cell_global_id_eutra_s& cell_global_id_r10() const { - assert_choice_type("cellGlobalId-r10", type_.to_string(), "failedPCellId-r10"); + assert_choice_type(types::cell_global_id_r10, type_, "failedPCellId-r10"); return c.get(); } const pci_arfcn_r10_s_& pci_arfcn_r10() const { - assert_choice_type("pci-arfcn-r10", type_.to_string(), "failedPCellId-r10"); - return c.get(); - } - cell_global_id_eutra_s& set_cell_global_id_r10() - { - set(types::cell_global_id_r10); - return c.get(); - } - pci_arfcn_r10_s_& set_pci_arfcn_r10() - { - set(types::pci_arfcn_r10); + assert_choice_type(types::pci_arfcn_r10, type_, "failedPCellId-r10"); return c.get(); } + cell_global_id_eutra_s& set_cell_global_id_r10(); + pci_arfcn_r10_s_& set_pci_arfcn_r10(); private: types type_; @@ -2298,7 +2146,7 @@ struct rlf_report_r9_s { struct conn_fail_type_r10_opts { enum options { rlf, hof, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated conn_fail_type_r10_e_; struct failed_pcell_id_v1090_s_ { @@ -2309,7 +2157,7 @@ struct rlf_report_r9_s { enum options { t310_expiry, random_access_problem, rlc_max_num_retx, t312_expiry_r12, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated rlf_cause_r11_e_; @@ -2324,7 +2172,7 @@ struct rlf_report_r9_s { struct types_opts { enum options { fdd_r11, tdd_r11, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2341,34 +2189,26 @@ struct rlf_report_r9_s { // getters uint16_t& fdd_r11() { - assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::fdd_r11, type_, "physCellId-r11"); return c.get(); } uint8_t& tdd_r11() { - assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::tdd_r11, type_, "physCellId-r11"); return c.get(); } const uint16_t& fdd_r11() const { - assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::fdd_r11, type_, "physCellId-r11"); return c.get(); } const uint8_t& tdd_r11() const { - assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11"); - return c.get(); - } - uint16_t& set_fdd_r11() - { - set(types::fdd_r11); - return c.get(); - } - uint8_t& set_tdd_r11() - { - set(types::tdd_r11); + assert_choice_type(types::tdd_r11, type_, "physCellId-r11"); return c.get(); } + uint16_t& set_fdd_r11(); + uint8_t& set_tdd_r11(); private: types type_; @@ -2388,7 +2228,7 @@ struct rlf_report_r9_s { struct types_opts { enum options { fdd_r11, tdd_r11, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2405,34 +2245,26 @@ struct rlf_report_r9_s { // getters uint16_t& fdd_r11() { - assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::fdd_r11, type_, "physCellId-r11"); return c.get(); } uint8_t& tdd_r11() { - assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::tdd_r11, type_, "physCellId-r11"); return c.get(); } const uint16_t& fdd_r11() const { - assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11"); + assert_choice_type(types::fdd_r11, type_, "physCellId-r11"); return c.get(); } const uint8_t& tdd_r11() const { - assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11"); - return c.get(); - } - uint16_t& set_fdd_r11() - { - set(types::fdd_r11); - return c.get(); - } - uint8_t& set_tdd_r11() - { - set(types::tdd_r11); + assert_choice_type(types::tdd_r11, type_, "physCellId-r11"); return c.get(); } + uint16_t& set_fdd_r11(); + uint8_t& set_tdd_r11(); private: types type_; @@ -2589,7 +2421,7 @@ struct sidelink_ue_info_v1310_ies_s { struct ue_type_r13_opts { enum options { relay_ue, remote_ue, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_type_r13_e_; @@ -2638,7 +2470,7 @@ struct tdm_assist_info_r11_c { enum options { sf40, sf64, sf80, sf128, sf160, sf256, spare2, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_cycle_len_r11_e_; @@ -2646,7 +2478,7 @@ struct tdm_assist_info_r11_c { enum options { sf20, sf30, sf40, sf60, sf80, sf100, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_active_time_r11_e_; @@ -2660,7 +2492,7 @@ struct tdm_assist_info_r11_c { struct types_opts { enum options { drx_assist_info_r11, idc_sf_pattern_list_r11, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2677,34 +2509,26 @@ struct tdm_assist_info_r11_c { // getters drx_assist_info_r11_s_& drx_assist_info_r11() { - assert_choice_type("drx-AssistanceInfo-r11", type_.to_string(), "TDM-AssistanceInfo-r11"); + assert_choice_type(types::drx_assist_info_r11, type_, "TDM-AssistanceInfo-r11"); return c.get(); } idc_sf_pattern_list_r11_l& idc_sf_pattern_list_r11() { - assert_choice_type("idc-SubframePatternList-r11", type_.to_string(), "TDM-AssistanceInfo-r11"); + assert_choice_type(types::idc_sf_pattern_list_r11, type_, "TDM-AssistanceInfo-r11"); return c.get(); } const drx_assist_info_r11_s_& drx_assist_info_r11() const { - assert_choice_type("drx-AssistanceInfo-r11", type_.to_string(), "TDM-AssistanceInfo-r11"); + assert_choice_type(types::drx_assist_info_r11, type_, "TDM-AssistanceInfo-r11"); return c.get(); } const idc_sf_pattern_list_r11_l& idc_sf_pattern_list_r11() const { - assert_choice_type("idc-SubframePatternList-r11", type_.to_string(), "TDM-AssistanceInfo-r11"); - return c.get(); - } - drx_assist_info_r11_s_& set_drx_assist_info_r11() - { - set(types::drx_assist_info_r11); - return c.get(); - } - idc_sf_pattern_list_r11_l& set_idc_sf_pattern_list_r11() - { - set(types::idc_sf_pattern_list_r11); + assert_choice_type(types::idc_sf_pattern_list_r11, type_, "TDM-AssistanceInfo-r11"); return c.get(); } + drx_assist_info_r11_s_& set_drx_assist_info_r11(); + idc_sf_pattern_list_r11_l& set_idc_sf_pattern_list_r11(); private: types type_; @@ -2725,14 +2549,14 @@ struct ueassist_info_v1430_ies_s { struct rlm_event_r14_opts { enum options { early_out_of_sync, early_in_sync, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rlm_event_r14_e_; struct excess_rep_mpdcch_r14_opts { enum options { excess_rep1, excess_rep2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated excess_rep_mpdcch_r14_e_; @@ -2802,7 +2626,7 @@ struct ul_info_transfer_v8a0_ies_s { struct wlan_status_r13_opts { enum options { successful_assoc, fail_wlan_radio_link, fail_wlan_unavailable, fail_timeout, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated wlan_status_r13_e; @@ -2846,7 +2670,7 @@ struct failed_lc_ch_info_r15_s { struct cell_group_ind_r15_opts { enum options { mn, sn, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_group_ind_r15_e_; @@ -2860,7 +2684,7 @@ struct failed_lc_ch_info_r15_s { struct fail_type_opts { enum options { dupl, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated fail_type_e_; @@ -2900,7 +2724,7 @@ struct inter_freq_rstd_meas_ind_r10_ies_s { struct types_opts { enum options { start, stop, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2914,20 +2738,16 @@ struct inter_freq_rstd_meas_ind_r10_ies_s { // getters start_s_& start() { - assert_choice_type("start", type_.to_string(), "rstd-InterFreqIndication-r10"); + assert_choice_type(types::start, type_, "rstd-InterFreqIndication-r10"); return c; } const start_s_& start() const { - assert_choice_type("start", type_.to_string(), "rstd-InterFreqIndication-r10"); - return c; - } - start_s_& set_start() - { - set(types::start); + assert_choice_type(types::start, type_, "rstd-InterFreqIndication-r10"); return c; } - void set_stop() { set(types::stop); } + start_s_& set_start(); + void set_stop(); private: types type_; @@ -2983,7 +2803,7 @@ struct meas_report_app_layer_r15_ies_s { struct service_type_r15_opts { enum options { qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated service_type_r15_e_; @@ -3006,7 +2826,7 @@ struct proximity_ind_r9_ies_s { struct type_r9_opts { enum options { entering, leaving, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated type_r9_e_; struct carrier_freq_r9_c_ { @@ -3014,7 +2834,7 @@ struct proximity_ind_r9_ies_s { enum options { eutra_r9, utra_r9, /*...*/ eutra2_v9e0, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3032,49 +2852,37 @@ struct proximity_ind_r9_ies_s { // getters uint32_t& eutra_r9() { - assert_choice_type("eutra-r9", type_.to_string(), "carrierFreq-r9"); + assert_choice_type(types::eutra_r9, type_, "carrierFreq-r9"); return c.get(); } uint16_t& utra_r9() { - assert_choice_type("utra-r9", type_.to_string(), "carrierFreq-r9"); + assert_choice_type(types::utra_r9, type_, "carrierFreq-r9"); return c.get(); } uint32_t& eutra2_v9e0() { - assert_choice_type("eutra2-v9e0", type_.to_string(), "carrierFreq-r9"); + assert_choice_type(types::eutra2_v9e0, type_, "carrierFreq-r9"); return c.get(); } const uint32_t& eutra_r9() const { - assert_choice_type("eutra-r9", type_.to_string(), "carrierFreq-r9"); + assert_choice_type(types::eutra_r9, type_, "carrierFreq-r9"); return c.get(); } const uint16_t& utra_r9() const { - assert_choice_type("utra-r9", type_.to_string(), "carrierFreq-r9"); + assert_choice_type(types::utra_r9, type_, "carrierFreq-r9"); return c.get(); } const uint32_t& eutra2_v9e0() const { - assert_choice_type("eutra2-v9e0", type_.to_string(), "carrierFreq-r9"); - return c.get(); - } - uint32_t& set_eutra_r9() - { - set(types::eutra_r9); - return c.get(); - } - uint16_t& set_utra_r9() - { - set(types::utra_r9); - return c.get(); - } - uint32_t& set_eutra2_v9e0() - { - set(types::eutra2_v9e0); + assert_choice_type(types::eutra2_v9e0, type_, "carrierFreq-r9"); return c.get(); } + uint32_t& set_eutra_r9(); + uint16_t& set_utra_r9(); + uint32_t& set_eutra2_v9e0(); private: types type_; @@ -3134,7 +2942,7 @@ struct rrc_conn_resume_complete_r13_ies_s { struct mob_state_r13_opts { enum options { normal, medium, high, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mob_state_r13_e_; @@ -3227,7 +3035,7 @@ struct ueassist_info_r11_ies_s { struct pwr_pref_ind_r11_opts { enum options { normal, low_pwr_consumption, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pwr_pref_ind_r11_e_; @@ -3287,7 +3095,7 @@ struct ul_info_transfer_r8_ies_s { struct types_opts { enum options { ded_info_nas, ded_info_cdma2000_minus1_xrtt, ded_info_cdma2000_hrpd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3304,49 +3112,37 @@ struct ul_info_transfer_r8_ies_s { // getters dyn_octstring& ded_info_nas() { - assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_nas, type_, "dedicatedInfoType"); return c.get(); } dyn_octstring& ded_info_cdma2000_minus1_xrtt() { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt, type_, "dedicatedInfoType"); return c.get(); } dyn_octstring& ded_info_cdma2000_hrpd() { - assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_hrpd, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_nas() const { - assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_nas, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_cdma2000_minus1_xrtt() const { - assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType"); + assert_choice_type(types::ded_info_cdma2000_minus1_xrtt, type_, "dedicatedInfoType"); return c.get(); } const dyn_octstring& ded_info_cdma2000_hrpd() const { - assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType"); - return c.get(); - } - dyn_octstring& set_ded_info_nas() - { - set(types::ded_info_nas); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_minus1_xrtt() - { - set(types::ded_info_cdma2000_minus1_xrtt); - return c.get(); - } - dyn_octstring& set_ded_info_cdma2000_hrpd() - { - set(types::ded_info_cdma2000_hrpd); + assert_choice_type(types::ded_info_cdma2000_hrpd, type_, "dedicatedInfoType"); return c.get(); } + dyn_octstring& set_ded_info_nas(); + dyn_octstring& set_ded_info_cdma2000_minus1_xrtt(); + dyn_octstring& set_ded_info_cdma2000_hrpd(); private: types type_; @@ -3401,7 +3197,7 @@ struct csfb_params_request_cdma2000_s { enum options { csfb_params_request_cdma2000_r8, crit_exts_future, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -3416,20 +3212,16 @@ struct csfb_params_request_cdma2000_s { // getters csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8() { - assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::csfb_params_request_cdma2000_r8, type_, "criticalExtensions"); return c; } const csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8() const { - assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::csfb_params_request_cdma2000_r8, type_, "criticalExtensions"); return c; } - csfb_params_request_cdma2000_r8_ies_s& set_csfb_params_request_cdma2000_r8() - { - set(types::csfb_params_request_cdma2000_r8); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + csfb_params_request_cdma2000_r8_ies_s& set_csfb_params_request_cdma2000_r8(); + void set_crit_exts_future(); private: types type_; @@ -3451,7 +3243,7 @@ struct counter_check_resp_s { struct types_opts { enum options { counter_check_resp_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3465,20 +3257,16 @@ struct counter_check_resp_s { // getters counter_check_resp_r8_ies_s& counter_check_resp_r8() { - assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::counter_check_resp_r8, type_, "criticalExtensions"); return c; } const counter_check_resp_r8_ies_s& counter_check_resp_r8() const { - assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions"); - return c; - } - counter_check_resp_r8_ies_s& set_counter_check_resp_r8() - { - set(types::counter_check_resp_r8); + assert_choice_type(types::counter_check_resp_r8, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + counter_check_resp_r8_ies_s& set_counter_check_resp_r8(); + void set_crit_exts_future(); private: types type_; @@ -3513,7 +3301,7 @@ struct in_dev_coex_ind_r11_s { struct types_opts { enum options { in_dev_coex_ind_r11, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3527,22 +3315,18 @@ struct in_dev_coex_ind_r11_s { // getters in_dev_coex_ind_r11_ies_s& in_dev_coex_ind_r11() { - assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c1"); + assert_choice_type(types::in_dev_coex_ind_r11, type_, "c1"); return c; } const in_dev_coex_ind_r11_ies_s& in_dev_coex_ind_r11() const { - assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c1"); - return c; - } - in_dev_coex_ind_r11_ies_s& set_in_dev_coex_ind_r11() - { - set(types::in_dev_coex_ind_r11); + assert_choice_type(types::in_dev_coex_ind_r11, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + in_dev_coex_ind_r11_ies_s& set_in_dev_coex_ind_r11(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -3560,20 +3344,16 @@ struct in_dev_coex_ind_r11_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -3596,7 +3376,7 @@ struct inter_freq_rstd_meas_ind_r10_s { struct types_opts { enum options { inter_freq_rstd_meas_ind_r10, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3610,22 +3390,18 @@ struct inter_freq_rstd_meas_ind_r10_s { // getters inter_freq_rstd_meas_ind_r10_ies_s& inter_freq_rstd_meas_ind_r10() { - assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1"); + assert_choice_type(types::inter_freq_rstd_meas_ind_r10, type_, "c1"); return c; } const inter_freq_rstd_meas_ind_r10_ies_s& inter_freq_rstd_meas_ind_r10() const { - assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1"); - return c; - } - inter_freq_rstd_meas_ind_r10_ies_s& set_inter_freq_rstd_meas_ind_r10() - { - set(types::inter_freq_rstd_meas_ind_r10); + assert_choice_type(types::inter_freq_rstd_meas_ind_r10, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + inter_freq_rstd_meas_ind_r10_ies_s& set_inter_freq_rstd_meas_ind_r10(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -3643,20 +3419,16 @@ struct inter_freq_rstd_meas_ind_r10_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -3679,7 +3451,7 @@ struct mbms_count_resp_r10_s { struct types_opts { enum options { count_resp_r10, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3693,22 +3465,18 @@ struct mbms_count_resp_r10_s { // getters mbms_count_resp_r10_ies_s& count_resp_r10() { - assert_choice_type("countingResponse-r10", type_.to_string(), "c1"); + assert_choice_type(types::count_resp_r10, type_, "c1"); return c; } const mbms_count_resp_r10_ies_s& count_resp_r10() const { - assert_choice_type("countingResponse-r10", type_.to_string(), "c1"); - return c; - } - mbms_count_resp_r10_ies_s& set_count_resp_r10() - { - set(types::count_resp_r10); + assert_choice_type(types::count_resp_r10, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + mbms_count_resp_r10_ies_s& set_count_resp_r10(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -3726,20 +3494,16 @@ struct mbms_count_resp_r10_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -3762,7 +3526,7 @@ struct mbms_interest_ind_r11_s { struct types_opts { enum options { interest_ind_r11, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3776,22 +3540,18 @@ struct mbms_interest_ind_r11_s { // getters mbms_interest_ind_r11_ies_s& interest_ind_r11() { - assert_choice_type("interestIndication-r11", type_.to_string(), "c1"); + assert_choice_type(types::interest_ind_r11, type_, "c1"); return c; } const mbms_interest_ind_r11_ies_s& interest_ind_r11() const { - assert_choice_type("interestIndication-r11", type_.to_string(), "c1"); + assert_choice_type(types::interest_ind_r11, type_, "c1"); return c; } - mbms_interest_ind_r11_ies_s& set_interest_ind_r11() - { - set(types::interest_ind_r11); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + mbms_interest_ind_r11_ies_s& set_interest_ind_r11(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -3809,20 +3569,16 @@ struct mbms_interest_ind_r11_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -3844,7 +3600,7 @@ struct meas_report_app_layer_r15_s { struct types_opts { enum options { meas_report_app_layer_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3858,20 +3614,16 @@ struct meas_report_app_layer_r15_s { // getters meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15() { - assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::meas_report_app_layer_r15, type_, "criticalExtensions"); return c; } const meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15() const { - assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions"); - return c; - } - meas_report_app_layer_r15_ies_s& set_meas_report_app_layer_r15() - { - set(types::meas_report_app_layer_r15); + assert_choice_type(types::meas_report_app_layer_r15, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + meas_report_app_layer_r15_ies_s& set_meas_report_app_layer_r15(); + void set_crit_exts_future(); private: types type_; @@ -3894,7 +3646,7 @@ struct proximity_ind_r9_s { struct types_opts { enum options { proximity_ind_r9, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3908,22 +3660,18 @@ struct proximity_ind_r9_s { // getters proximity_ind_r9_ies_s& proximity_ind_r9() { - assert_choice_type("proximityIndication-r9", type_.to_string(), "c1"); + assert_choice_type(types::proximity_ind_r9, type_, "c1"); return c; } const proximity_ind_r9_ies_s& proximity_ind_r9() const { - assert_choice_type("proximityIndication-r9", type_.to_string(), "c1"); - return c; - } - proximity_ind_r9_ies_s& set_proximity_ind_r9() - { - set(types::proximity_ind_r9); + assert_choice_type(types::proximity_ind_r9, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + proximity_ind_r9_ies_s& set_proximity_ind_r9(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -3941,20 +3689,16 @@ struct proximity_ind_r9_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -3977,7 +3721,7 @@ struct rn_recfg_complete_r10_s { struct types_opts { enum options { rn_recfg_complete_r10, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3991,22 +3735,18 @@ struct rn_recfg_complete_r10_s { // getters rn_recfg_complete_r10_ies_s& rn_recfg_complete_r10() { - assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_complete_r10, type_, "c1"); return c; } const rn_recfg_complete_r10_ies_s& rn_recfg_complete_r10() const { - assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1"); - return c; - } - rn_recfg_complete_r10_ies_s& set_rn_recfg_complete_r10() - { - set(types::rn_recfg_complete_r10); + assert_choice_type(types::rn_recfg_complete_r10, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rn_recfg_complete_r10_ies_s& set_rn_recfg_complete_r10(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4024,20 +3764,16 @@ struct rn_recfg_complete_r10_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4060,7 +3796,7 @@ struct rrc_conn_recfg_complete_s { struct types_opts { enum options { rrc_conn_recfg_complete_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4074,20 +3810,16 @@ struct rrc_conn_recfg_complete_s { // getters rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8() { - assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_recfg_complete_r8, type_, "criticalExtensions"); return c; } const rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8() const { - assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_recfg_complete_r8, type_, "criticalExtensions"); return c; } - rrc_conn_recfg_complete_r8_ies_s& set_rrc_conn_recfg_complete_r8() - { - set(types::rrc_conn_recfg_complete_r8); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_recfg_complete_r8_ies_s& set_rrc_conn_recfg_complete_r8(); + void set_crit_exts_future(); private: types type_; @@ -4110,7 +3842,7 @@ struct rrc_conn_reest_complete_s { struct types_opts { enum options { rrc_conn_reest_complete_r8, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4124,20 +3856,16 @@ struct rrc_conn_reest_complete_s { // getters rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8() { - assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_complete_r8, type_, "criticalExtensions"); return c; } const rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8() const { - assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_complete_r8, type_, "criticalExtensions"); return c; } - rrc_conn_reest_complete_r8_ies_s& set_rrc_conn_reest_complete_r8() - { - set(types::rrc_conn_reest_complete_r8); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_reest_complete_r8_ies_s& set_rrc_conn_reest_complete_r8(); + void set_crit_exts_future(); private: types type_; @@ -4160,7 +3888,7 @@ struct rrc_conn_resume_complete_r13_s { struct types_opts { enum options { rrc_conn_resume_complete_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4174,20 +3902,16 @@ struct rrc_conn_resume_complete_r13_s { // getters rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13() { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "criticalExtensions"); return c; } const rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13() const { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_resume_complete_r13_ies_s& set_rrc_conn_resume_complete_r13() - { - set(types::rrc_conn_resume_complete_r13); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_resume_complete_r13_ies_s& set_rrc_conn_resume_complete_r13(); + void set_crit_exts_future(); private: types type_; @@ -4211,7 +3935,7 @@ struct rrc_conn_setup_complete_s { struct types_opts { enum options { rrc_conn_setup_complete_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4225,22 +3949,18 @@ struct rrc_conn_setup_complete_s { // getters rrc_conn_setup_complete_r8_ies_s& rrc_conn_setup_complete_r8() { - assert_choice_type("rrcConnectionSetupComplete-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete_r8, type_, "c1"); return c; } const rrc_conn_setup_complete_r8_ies_s& rrc_conn_setup_complete_r8() const { - assert_choice_type("rrcConnectionSetupComplete-r8", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete_r8, type_, "c1"); return c; } - rrc_conn_setup_complete_r8_ies_s& set_rrc_conn_setup_complete_r8() - { - set(types::rrc_conn_setup_complete_r8); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_setup_complete_r8_ies_s& set_rrc_conn_setup_complete_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4258,20 +3978,16 @@ struct rrc_conn_setup_complete_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4295,7 +4011,7 @@ struct scg_fail_info_r12_s { struct types_opts { enum options { scg_fail_info_r12, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4309,22 +4025,18 @@ struct scg_fail_info_r12_s { // getters scg_fail_info_r12_ies_s& scg_fail_info_r12() { - assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info_r12, type_, "c1"); return c; } const scg_fail_info_r12_ies_s& scg_fail_info_r12() const { - assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info_r12, type_, "c1"); return c; } - scg_fail_info_r12_ies_s& set_scg_fail_info_r12() - { - set(types::scg_fail_info_r12); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + scg_fail_info_r12_ies_s& set_scg_fail_info_r12(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4342,20 +4054,16 @@ struct scg_fail_info_r12_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4378,7 +4086,7 @@ struct scg_fail_info_nr_r15_s { struct types_opts { enum options { scg_fail_info_nr_r15, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4392,22 +4100,18 @@ struct scg_fail_info_nr_r15_s { // getters scg_fail_info_nr_r15_ies_s& scg_fail_info_nr_r15() { - assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info_nr_r15, type_, "c1"); return c; } const scg_fail_info_nr_r15_ies_s& scg_fail_info_nr_r15() const { - assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info_nr_r15, type_, "c1"); return c; } - scg_fail_info_nr_r15_ies_s& set_scg_fail_info_nr_r15() - { - set(types::scg_fail_info_nr_r15); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + scg_fail_info_nr_r15_ies_s& set_scg_fail_info_nr_r15(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4425,20 +4129,16 @@ struct scg_fail_info_nr_r15_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4461,7 +4161,7 @@ struct sidelink_ue_info_r12_s { struct types_opts { enum options { sidelink_ue_info_r12, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4475,22 +4175,18 @@ struct sidelink_ue_info_r12_s { // getters sidelink_ue_info_r12_ies_s& sidelink_ue_info_r12() { - assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c1"); + assert_choice_type(types::sidelink_ue_info_r12, type_, "c1"); return c; } const sidelink_ue_info_r12_ies_s& sidelink_ue_info_r12() const { - assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c1"); - return c; - } - sidelink_ue_info_r12_ies_s& set_sidelink_ue_info_r12() - { - set(types::sidelink_ue_info_r12); + assert_choice_type(types::sidelink_ue_info_r12, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + sidelink_ue_info_r12_ies_s& set_sidelink_ue_info_r12(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4508,20 +4204,16 @@ struct sidelink_ue_info_r12_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4544,7 +4236,7 @@ struct ueassist_info_r11_s { struct types_opts { enum options { ue_assist_info_r11, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4558,22 +4250,18 @@ struct ueassist_info_r11_s { // getters ueassist_info_r11_ies_s& ue_assist_info_r11() { - assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c1"); + assert_choice_type(types::ue_assist_info_r11, type_, "c1"); return c; } const ueassist_info_r11_ies_s& ue_assist_info_r11() const { - assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c1"); + assert_choice_type(types::ue_assist_info_r11, type_, "c1"); return c; } - ueassist_info_r11_ies_s& set_ue_assist_info_r11() - { - set(types::ue_assist_info_r11); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ueassist_info_r11_ies_s& set_ue_assist_info_r11(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4591,20 +4279,16 @@ struct ueassist_info_r11_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4627,7 +4311,7 @@ struct ue_info_resp_r9_s { struct types_opts { enum options { ue_info_resp_r9, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4641,22 +4325,18 @@ struct ue_info_resp_r9_s { // getters ue_info_resp_r9_ies_s& ue_info_resp_r9() { - assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_resp_r9, type_, "c1"); return c; } const ue_info_resp_r9_ies_s& ue_info_resp_r9() const { - assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1"); - return c; - } - ue_info_resp_r9_ies_s& set_ue_info_resp_r9() - { - set(types::ue_info_resp_r9); + assert_choice_type(types::ue_info_resp_r9, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_info_resp_r9_ies_s& set_ue_info_resp_r9(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4674,20 +4354,16 @@ struct ue_info_resp_r9_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4711,7 +4387,7 @@ struct ul_ho_prep_transfer_s { struct types_opts { enum options { ul_ho_prep_transfer_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4725,22 +4401,18 @@ struct ul_ho_prep_transfer_s { // getters ul_ho_prep_transfer_r8_ies_s& ul_ho_prep_transfer_r8() { - assert_choice_type("ulHandoverPreparationTransfer-r8", type_.to_string(), "c1"); + assert_choice_type(types::ul_ho_prep_transfer_r8, type_, "c1"); return c; } const ul_ho_prep_transfer_r8_ies_s& ul_ho_prep_transfer_r8() const { - assert_choice_type("ulHandoverPreparationTransfer-r8", type_.to_string(), "c1"); - return c; - } - ul_ho_prep_transfer_r8_ies_s& set_ul_ho_prep_transfer_r8() - { - set(types::ul_ho_prep_transfer_r8); + assert_choice_type(types::ul_ho_prep_transfer_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ul_ho_prep_transfer_r8_ies_s& set_ul_ho_prep_transfer_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4758,20 +4430,16 @@ struct ul_ho_prep_transfer_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4794,7 +4462,7 @@ struct ul_info_transfer_s { struct types_opts { enum options { ul_info_transfer_r8, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4808,22 +4476,18 @@ struct ul_info_transfer_s { // getters ul_info_transfer_r8_ies_s& ul_info_transfer_r8() { - assert_choice_type("ulInformationTransfer-r8", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_r8, type_, "c1"); return c; } const ul_info_transfer_r8_ies_s& ul_info_transfer_r8() const { - assert_choice_type("ulInformationTransfer-r8", type_.to_string(), "c1"); - return c; - } - ul_info_transfer_r8_ies_s& set_ul_info_transfer_r8() - { - set(types::ul_info_transfer_r8); + assert_choice_type(types::ul_info_transfer_r8, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ul_info_transfer_r8_ies_s& set_ul_info_transfer_r8(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4841,20 +4505,16 @@ struct ul_info_transfer_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4877,7 +4537,7 @@ struct ul_info_transfer_mrdc_r15_s { struct types_opts { enum options { ul_info_transfer_mrdc_r15, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4891,22 +4551,18 @@ struct ul_info_transfer_mrdc_r15_s { // getters ul_info_transfer_mrdc_r15_ies_s& ul_info_transfer_mrdc_r15() { - assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_mrdc_r15, type_, "c1"); return c; } const ul_info_transfer_mrdc_r15_ies_s& ul_info_transfer_mrdc_r15() const { - assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c1"); - return c; - } - ul_info_transfer_mrdc_r15_ies_s& set_ul_info_transfer_mrdc_r15() - { - set(types::ul_info_transfer_mrdc_r15); + assert_choice_type(types::ul_info_transfer_mrdc_r15, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ul_info_transfer_mrdc_r15_ies_s& set_ul_info_transfer_mrdc_r15(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4924,20 +4580,16 @@ struct ul_info_transfer_mrdc_r15_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -4960,7 +4612,7 @@ struct wlan_conn_status_report_r13_s { struct types_opts { enum options { wlan_conn_status_report_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4974,22 +4626,18 @@ struct wlan_conn_status_report_r13_s { // getters wlan_conn_status_report_r13_ies_s& wlan_conn_status_report_r13() { - assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c1"); + assert_choice_type(types::wlan_conn_status_report_r13, type_, "c1"); return c; } const wlan_conn_status_report_r13_ies_s& wlan_conn_status_report_r13() const { - assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c1"); + assert_choice_type(types::wlan_conn_status_report_r13, type_, "c1"); return c; } - wlan_conn_status_report_r13_ies_s& set_wlan_conn_status_report_r13() - { - set(types::wlan_conn_status_report_r13); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + wlan_conn_status_report_r13_ies_s& set_wlan_conn_status_report_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5007,20 +4655,16 @@ struct wlan_conn_status_report_r13_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5061,7 +4705,7 @@ struct ul_dcch_msg_type_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -5079,244 +4723,180 @@ struct ul_dcch_msg_type_c { // getters csfb_params_request_cdma2000_s& csfb_params_request_cdma2000() { - assert_choice_type("csfbParametersRequestCDMA2000", type_.to_string(), "c1"); + assert_choice_type(types::csfb_params_request_cdma2000, type_, "c1"); return c.get(); } meas_report_s& meas_report() { - assert_choice_type("measurementReport", type_.to_string(), "c1"); + assert_choice_type(types::meas_report, type_, "c1"); return c.get(); } rrc_conn_recfg_complete_s& rrc_conn_recfg_complete() { - assert_choice_type("rrcConnectionReconfigurationComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_complete, type_, "c1"); return c.get(); } rrc_conn_reest_complete_s& rrc_conn_reest_complete() { - assert_choice_type("rrcConnectionReestablishmentComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_complete, type_, "c1"); return c.get(); } rrc_conn_setup_complete_s& rrc_conn_setup_complete() { - assert_choice_type("rrcConnectionSetupComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete, type_, "c1"); return c.get(); } security_mode_complete_s& security_mode_complete() { - assert_choice_type("securityModeComplete", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete, type_, "c1"); return c.get(); } security_mode_fail_s& security_mode_fail() { - assert_choice_type("securityModeFailure", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail, type_, "c1"); return c.get(); } ue_cap_info_s& ue_cap_info() { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info, type_, "c1"); return c.get(); } ul_ho_prep_transfer_s& ul_ho_prep_transfer() { - assert_choice_type("ulHandoverPreparationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_ho_prep_transfer, type_, "c1"); return c.get(); } ul_info_transfer_s& ul_info_transfer() { - assert_choice_type("ulInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer, type_, "c1"); return c.get(); } counter_check_resp_s& counter_check_resp() { - assert_choice_type("counterCheckResponse", type_.to_string(), "c1"); + assert_choice_type(types::counter_check_resp, type_, "c1"); return c.get(); } ue_info_resp_r9_s& ue_info_resp_r9() { - assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_resp_r9, type_, "c1"); return c.get(); } proximity_ind_r9_s& proximity_ind_r9() { - assert_choice_type("proximityIndication-r9", type_.to_string(), "c1"); + assert_choice_type(types::proximity_ind_r9, type_, "c1"); return c.get(); } rn_recfg_complete_r10_s& rn_recfg_complete_r10() { - assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_complete_r10, type_, "c1"); return c.get(); } mbms_count_resp_r10_s& mbms_count_resp_r10() { - assert_choice_type("mbmsCountingResponse-r10", type_.to_string(), "c1"); + assert_choice_type(types::mbms_count_resp_r10, type_, "c1"); return c.get(); } inter_freq_rstd_meas_ind_r10_s& inter_freq_rstd_meas_ind_r10() { - assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1"); + assert_choice_type(types::inter_freq_rstd_meas_ind_r10, type_, "c1"); return c.get(); } const csfb_params_request_cdma2000_s& csfb_params_request_cdma2000() const { - assert_choice_type("csfbParametersRequestCDMA2000", type_.to_string(), "c1"); + assert_choice_type(types::csfb_params_request_cdma2000, type_, "c1"); return c.get(); } const meas_report_s& meas_report() const { - assert_choice_type("measurementReport", type_.to_string(), "c1"); + assert_choice_type(types::meas_report, type_, "c1"); return c.get(); } const rrc_conn_recfg_complete_s& rrc_conn_recfg_complete() const { - assert_choice_type("rrcConnectionReconfigurationComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_complete, type_, "c1"); return c.get(); } const rrc_conn_reest_complete_s& rrc_conn_reest_complete() const { - assert_choice_type("rrcConnectionReestablishmentComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_complete, type_, "c1"); return c.get(); } const rrc_conn_setup_complete_s& rrc_conn_setup_complete() const { - assert_choice_type("rrcConnectionSetupComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete, type_, "c1"); return c.get(); } const security_mode_complete_s& security_mode_complete() const { - assert_choice_type("securityModeComplete", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete, type_, "c1"); return c.get(); } const security_mode_fail_s& security_mode_fail() const { - assert_choice_type("securityModeFailure", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail, type_, "c1"); return c.get(); } const ue_cap_info_s& ue_cap_info() const { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info, type_, "c1"); return c.get(); } const ul_ho_prep_transfer_s& ul_ho_prep_transfer() const { - assert_choice_type("ulHandoverPreparationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_ho_prep_transfer, type_, "c1"); return c.get(); } const ul_info_transfer_s& ul_info_transfer() const { - assert_choice_type("ulInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer, type_, "c1"); return c.get(); } const counter_check_resp_s& counter_check_resp() const { - assert_choice_type("counterCheckResponse", type_.to_string(), "c1"); + assert_choice_type(types::counter_check_resp, type_, "c1"); return c.get(); } const ue_info_resp_r9_s& ue_info_resp_r9() const { - assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1"); + assert_choice_type(types::ue_info_resp_r9, type_, "c1"); return c.get(); } const proximity_ind_r9_s& proximity_ind_r9() const { - assert_choice_type("proximityIndication-r9", type_.to_string(), "c1"); + assert_choice_type(types::proximity_ind_r9, type_, "c1"); return c.get(); } const rn_recfg_complete_r10_s& rn_recfg_complete_r10() const { - assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1"); + assert_choice_type(types::rn_recfg_complete_r10, type_, "c1"); return c.get(); } const mbms_count_resp_r10_s& mbms_count_resp_r10() const { - assert_choice_type("mbmsCountingResponse-r10", type_.to_string(), "c1"); + assert_choice_type(types::mbms_count_resp_r10, type_, "c1"); return c.get(); } const inter_freq_rstd_meas_ind_r10_s& inter_freq_rstd_meas_ind_r10() const { - assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1"); - return c.get(); - } - csfb_params_request_cdma2000_s& set_csfb_params_request_cdma2000() - { - set(types::csfb_params_request_cdma2000); - return c.get(); - } - meas_report_s& set_meas_report() - { - set(types::meas_report); - return c.get(); - } - rrc_conn_recfg_complete_s& set_rrc_conn_recfg_complete() - { - set(types::rrc_conn_recfg_complete); - return c.get(); - } - rrc_conn_reest_complete_s& set_rrc_conn_reest_complete() - { - set(types::rrc_conn_reest_complete); - return c.get(); - } - rrc_conn_setup_complete_s& set_rrc_conn_setup_complete() - { - set(types::rrc_conn_setup_complete); - return c.get(); - } - security_mode_complete_s& set_security_mode_complete() - { - set(types::security_mode_complete); - return c.get(); - } - security_mode_fail_s& set_security_mode_fail() - { - set(types::security_mode_fail); - return c.get(); - } - ue_cap_info_s& set_ue_cap_info() - { - set(types::ue_cap_info); - return c.get(); - } - ul_ho_prep_transfer_s& set_ul_ho_prep_transfer() - { - set(types::ul_ho_prep_transfer); - return c.get(); - } - ul_info_transfer_s& set_ul_info_transfer() - { - set(types::ul_info_transfer); - return c.get(); - } - counter_check_resp_s& set_counter_check_resp() - { - set(types::counter_check_resp); - return c.get(); - } - ue_info_resp_r9_s& set_ue_info_resp_r9() - { - set(types::ue_info_resp_r9); - return c.get(); - } - proximity_ind_r9_s& set_proximity_ind_r9() - { - set(types::proximity_ind_r9); - return c.get(); - } - rn_recfg_complete_r10_s& set_rn_recfg_complete_r10() - { - set(types::rn_recfg_complete_r10); - return c.get(); - } - mbms_count_resp_r10_s& set_mbms_count_resp_r10() - { - set(types::mbms_count_resp_r10); - return c.get(); - } - inter_freq_rstd_meas_ind_r10_s& set_inter_freq_rstd_meas_ind_r10() - { - set(types::inter_freq_rstd_meas_ind_r10); + assert_choice_type(types::inter_freq_rstd_meas_ind_r10, type_, "c1"); return c.get(); } + csfb_params_request_cdma2000_s& set_csfb_params_request_cdma2000(); + meas_report_s& set_meas_report(); + rrc_conn_recfg_complete_s& set_rrc_conn_recfg_complete(); + rrc_conn_reest_complete_s& set_rrc_conn_reest_complete(); + rrc_conn_setup_complete_s& set_rrc_conn_setup_complete(); + security_mode_complete_s& set_security_mode_complete(); + security_mode_fail_s& set_security_mode_fail(); + ue_cap_info_s& set_ue_cap_info(); + ul_ho_prep_transfer_s& set_ul_ho_prep_transfer(); + ul_info_transfer_s& set_ul_info_transfer(); + counter_check_resp_s& set_counter_check_resp(); + ue_info_resp_r9_s& set_ue_info_resp_r9(); + proximity_ind_r9_s& set_proximity_ind_r9(); + rn_recfg_complete_r10_s& set_rn_recfg_complete_r10(); + mbms_count_resp_r10_s& set_mbms_count_resp_r10(); + inter_freq_rstd_meas_ind_r10_s& set_inter_freq_rstd_meas_ind_r10(); private: types type_; @@ -5363,7 +4943,7 @@ struct ul_dcch_msg_type_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5380,174 +4960,130 @@ struct ul_dcch_msg_type_c { // getters ueassist_info_r11_s& ue_assist_info_r11() { - assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c2"); + assert_choice_type(types::ue_assist_info_r11, type_, "c2"); return c.get(); } in_dev_coex_ind_r11_s& in_dev_coex_ind_r11() { - assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c2"); + assert_choice_type(types::in_dev_coex_ind_r11, type_, "c2"); return c.get(); } mbms_interest_ind_r11_s& mbms_interest_ind_r11() { - assert_choice_type("mbmsInterestIndication-r11", type_.to_string(), "c2"); + assert_choice_type(types::mbms_interest_ind_r11, type_, "c2"); return c.get(); } scg_fail_info_r12_s& scg_fail_info_r12() { - assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c2"); + assert_choice_type(types::scg_fail_info_r12, type_, "c2"); return c.get(); } sidelink_ue_info_r12_s& sidelink_ue_info_r12() { - assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c2"); + assert_choice_type(types::sidelink_ue_info_r12, type_, "c2"); return c.get(); } wlan_conn_status_report_r13_s& wlan_conn_status_report_r13() { - assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c2"); + assert_choice_type(types::wlan_conn_status_report_r13, type_, "c2"); return c.get(); } rrc_conn_resume_complete_r13_s& rrc_conn_resume_complete_r13() { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c2"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "c2"); return c.get(); } ul_info_transfer_mrdc_r15_s& ul_info_transfer_mrdc_r15() { - assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c2"); + assert_choice_type(types::ul_info_transfer_mrdc_r15, type_, "c2"); return c.get(); } scg_fail_info_nr_r15_s& scg_fail_info_nr_r15() { - assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c2"); + assert_choice_type(types::scg_fail_info_nr_r15, type_, "c2"); return c.get(); } meas_report_app_layer_r15_s& meas_report_app_layer_r15() { - assert_choice_type("measReportAppLayer-r15", type_.to_string(), "c2"); + assert_choice_type(types::meas_report_app_layer_r15, type_, "c2"); return c.get(); } fail_info_r15_s& fail_info_r15() { - assert_choice_type("failureInformation-r15", type_.to_string(), "c2"); + assert_choice_type(types::fail_info_r15, type_, "c2"); return c.get(); } const ueassist_info_r11_s& ue_assist_info_r11() const { - assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c2"); + assert_choice_type(types::ue_assist_info_r11, type_, "c2"); return c.get(); } const in_dev_coex_ind_r11_s& in_dev_coex_ind_r11() const { - assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c2"); + assert_choice_type(types::in_dev_coex_ind_r11, type_, "c2"); return c.get(); } const mbms_interest_ind_r11_s& mbms_interest_ind_r11() const { - assert_choice_type("mbmsInterestIndication-r11", type_.to_string(), "c2"); + assert_choice_type(types::mbms_interest_ind_r11, type_, "c2"); return c.get(); } const scg_fail_info_r12_s& scg_fail_info_r12() const { - assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c2"); + assert_choice_type(types::scg_fail_info_r12, type_, "c2"); return c.get(); } const sidelink_ue_info_r12_s& sidelink_ue_info_r12() const { - assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c2"); + assert_choice_type(types::sidelink_ue_info_r12, type_, "c2"); return c.get(); } const wlan_conn_status_report_r13_s& wlan_conn_status_report_r13() const { - assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c2"); + assert_choice_type(types::wlan_conn_status_report_r13, type_, "c2"); return c.get(); } const rrc_conn_resume_complete_r13_s& rrc_conn_resume_complete_r13() const { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c2"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "c2"); return c.get(); } const ul_info_transfer_mrdc_r15_s& ul_info_transfer_mrdc_r15() const { - assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c2"); + assert_choice_type(types::ul_info_transfer_mrdc_r15, type_, "c2"); return c.get(); } const scg_fail_info_nr_r15_s& scg_fail_info_nr_r15() const { - assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c2"); + assert_choice_type(types::scg_fail_info_nr_r15, type_, "c2"); return c.get(); } const meas_report_app_layer_r15_s& meas_report_app_layer_r15() const { - assert_choice_type("measReportAppLayer-r15", type_.to_string(), "c2"); + assert_choice_type(types::meas_report_app_layer_r15, type_, "c2"); return c.get(); } const fail_info_r15_s& fail_info_r15() const { - assert_choice_type("failureInformation-r15", type_.to_string(), "c2"); - return c.get(); - } - ueassist_info_r11_s& set_ue_assist_info_r11() - { - set(types::ue_assist_info_r11); - return c.get(); - } - in_dev_coex_ind_r11_s& set_in_dev_coex_ind_r11() - { - set(types::in_dev_coex_ind_r11); - return c.get(); - } - mbms_interest_ind_r11_s& set_mbms_interest_ind_r11() - { - set(types::mbms_interest_ind_r11); - return c.get(); - } - scg_fail_info_r12_s& set_scg_fail_info_r12() - { - set(types::scg_fail_info_r12); - return c.get(); - } - sidelink_ue_info_r12_s& set_sidelink_ue_info_r12() - { - set(types::sidelink_ue_info_r12); - return c.get(); - } - wlan_conn_status_report_r13_s& set_wlan_conn_status_report_r13() - { - set(types::wlan_conn_status_report_r13); - return c.get(); - } - rrc_conn_resume_complete_r13_s& set_rrc_conn_resume_complete_r13() - { - set(types::rrc_conn_resume_complete_r13); - return c.get(); - } - ul_info_transfer_mrdc_r15_s& set_ul_info_transfer_mrdc_r15() - { - set(types::ul_info_transfer_mrdc_r15); - return c.get(); - } - scg_fail_info_nr_r15_s& set_scg_fail_info_nr_r15() - { - set(types::scg_fail_info_nr_r15); - return c.get(); - } - meas_report_app_layer_r15_s& set_meas_report_app_layer_r15() - { - set(types::meas_report_app_layer_r15); - return c.get(); - } - fail_info_r15_s& set_fail_info_r15() - { - set(types::fail_info_r15); + assert_choice_type(types::fail_info_r15, type_, "c2"); return c.get(); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ueassist_info_r11_s& set_ue_assist_info_r11(); + in_dev_coex_ind_r11_s& set_in_dev_coex_ind_r11(); + mbms_interest_ind_r11_s& set_mbms_interest_ind_r11(); + scg_fail_info_r12_s& set_scg_fail_info_r12(); + sidelink_ue_info_r12_s& set_sidelink_ue_info_r12(); + wlan_conn_status_report_r13_s& set_wlan_conn_status_report_r13(); + rrc_conn_resume_complete_r13_s& set_rrc_conn_resume_complete_r13(); + ul_info_transfer_mrdc_r15_s& set_ul_info_transfer_mrdc_r15(); + scg_fail_info_nr_r15_s& set_scg_fail_info_nr_r15(); + meas_report_app_layer_r15_s& set_meas_report_app_layer_r15(); + fail_info_r15_s& set_fail_info_r15(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -5570,7 +5106,7 @@ struct ul_dcch_msg_type_c { enum options { c2, msg_class_ext_future_r11, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5585,20 +5121,16 @@ struct ul_dcch_msg_type_c { // getters c2_c_& c2() { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } const c2_c_& c2() const { - assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c; - } - c2_c_& set_c2() - { - set(types::c2); + assert_choice_type(types::c2, type_, "messageClassExtension"); return c; } - void set_msg_class_ext_future_r11() { set(types::msg_class_ext_future_r11); } + c2_c_& set_c2(); + void set_msg_class_ext_future_r11(); private: types type_; @@ -5608,7 +5140,7 @@ struct ul_dcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5626,34 +5158,26 @@ struct ul_dcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType"); return c.get(); } msg_class_ext_c_& msg_class_ext() { - assert_choice_type("messageClassExtension", type_.to_string(), "UL-DCCH-MessageType"); + assert_choice_type(types::msg_class_ext, type_, "UL-DCCH-MessageType"); return c.get(); } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType"); return c.get(); } const msg_class_ext_c_& msg_class_ext() const { - assert_choice_type("messageClassExtension", type_.to_string(), "UL-DCCH-MessageType"); - return c.get(); - } - c1_c_& set_c1() - { - set(types::c1); - return c.get(); - } - msg_class_ext_c_& set_msg_class_ext() - { - set(types::msg_class_ext); + assert_choice_type(types::msg_class_ext, type_, "UL-DCCH-MessageType"); return c.get(); } + c1_c_& set_c1(); + msg_class_ext_c_& set_msg_class_ext(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc_nbiot.h b/lib/include/srsran/asn1/rrc_nbiot.h index bf2b987e0..c0be0ca0a 100644 --- a/lib/include/srsran/asn1/rrc_nbiot.h +++ b/lib/include/srsran/asn1/rrc_nbiot.h @@ -42,7 +42,7 @@ struct ab_cfg_nb_r13_s { struct ab_category_r13_opts { enum options { a, b, c, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ab_category_r13_e_; @@ -92,7 +92,7 @@ struct t_poll_retx_nb_r13_opts { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t_poll_retx_nb_r13_e; @@ -126,9 +126,9 @@ struct carrier_freq_nb_r13_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated carrier_freq_offset_r13_e_; @@ -149,9 +149,9 @@ struct carrier_freq_nb_v1550_s { enum options { v_minus8dot5, v_minus4dot5, v3dot5, v7dot5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated carrier_freq_offset_v1550_e_; @@ -180,7 +180,7 @@ struct dl_bitmap_nb_r13_c { enum options { sf_pattern10_r13, sf_pattern40_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -198,34 +198,26 @@ struct dl_bitmap_nb_r13_c { // getters fixed_bitstring<10>& sf_pattern10_r13() { - assert_choice_type("subframePattern10-r13", type_.to_string(), "DL-Bitmap-NB-r13"); + assert_choice_type(types::sf_pattern10_r13, type_, "DL-Bitmap-NB-r13"); return c.get >(); } fixed_bitstring<40>& sf_pattern40_r13() { - assert_choice_type("subframePattern40-r13", type_.to_string(), "DL-Bitmap-NB-r13"); + assert_choice_type(types::sf_pattern40_r13, type_, "DL-Bitmap-NB-r13"); return c.get >(); } const fixed_bitstring<10>& sf_pattern10_r13() const { - assert_choice_type("subframePattern10-r13", type_.to_string(), "DL-Bitmap-NB-r13"); + assert_choice_type(types::sf_pattern10_r13, type_, "DL-Bitmap-NB-r13"); return c.get >(); } const fixed_bitstring<40>& sf_pattern40_r13() const { - assert_choice_type("subframePattern40-r13", type_.to_string(), "DL-Bitmap-NB-r13"); - return c.get >(); - } - fixed_bitstring<10>& set_sf_pattern10_r13() - { - set(types::sf_pattern10_r13); - return c.get >(); - } - fixed_bitstring<40>& set_sf_pattern40_r13() - { - set(types::sf_pattern40_r13); + assert_choice_type(types::sf_pattern40_r13, type_, "DL-Bitmap-NB-r13"); return c.get >(); } + fixed_bitstring<10>& set_sf_pattern10_r13(); + fixed_bitstring<40>& set_sf_pattern40_r13(); private: types type_; @@ -240,7 +232,7 @@ struct dl_gap_cfg_nb_r13_s { enum options { n32, n64, n128, n256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated dl_gap_thres_r13_e_; @@ -248,7 +240,7 @@ struct dl_gap_cfg_nb_r13_s { enum options { sf64, sf128, sf256, sf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated dl_gap_periodicity_r13_e_; @@ -256,9 +248,9 @@ struct dl_gap_cfg_nb_r13_s { enum options { one_eighth, one_fourth, three_eighth, one_half, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated dl_gap_dur_coeff_r13_e_; @@ -286,9 +278,9 @@ struct tdd_ul_dl_align_offset_nb_r15_opts { enum options { khz_minus7dot5, khz0, khz7dot5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated tdd_ul_dl_align_offset_nb_r15_e; @@ -298,7 +290,7 @@ struct ul_am_rlc_nb_r13_s { enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_retx_thres_r13_e_; @@ -318,7 +310,7 @@ struct ack_nack_num_repeats_nb_r13_opts { enum options { r1, r2, r4, r8, r16, r32, r64, r128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ack_nack_num_repeats_nb_r13_e; @@ -329,7 +321,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { struct types_opts { enum options { use_no_bitmap_r13, use_anchor_bitmap_r13, explicit_bitmap_cfg_r13, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -343,22 +335,18 @@ struct dl_carrier_cfg_ded_nb_r13_s { // getters dl_bitmap_nb_r13_c& explicit_bitmap_cfg_r13() { - assert_choice_type("explicitBitmapConfiguration-r13", type_.to_string(), "downlinkBitmapNonAnchor-r13"); + assert_choice_type(types::explicit_bitmap_cfg_r13, type_, "downlinkBitmapNonAnchor-r13"); return c; } const dl_bitmap_nb_r13_c& explicit_bitmap_cfg_r13() const { - assert_choice_type("explicitBitmapConfiguration-r13", type_.to_string(), "downlinkBitmapNonAnchor-r13"); + assert_choice_type(types::explicit_bitmap_cfg_r13, type_, "downlinkBitmapNonAnchor-r13"); return c; } - void set_use_no_bitmap_r13() { set(types::use_no_bitmap_r13); } - void set_use_anchor_bitmap_r13() { set(types::use_anchor_bitmap_r13); } - dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r13() - { - set(types::explicit_bitmap_cfg_r13); - return c; - } - void set_spare() { set(types::spare); } + void set_use_no_bitmap_r13(); + void set_use_anchor_bitmap_r13(); + dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r13(); + void set_spare(); private: types type_; @@ -368,7 +356,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { struct types_opts { enum options { use_no_gap_r13, use_anchor_gap_cfg_r13, explicit_gap_cfg_r13, spare, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -382,22 +370,18 @@ struct dl_carrier_cfg_ded_nb_r13_s { // getters dl_gap_cfg_nb_r13_s& explicit_gap_cfg_r13() { - assert_choice_type("explicitGapConfiguration-r13", type_.to_string(), "dl-GapNonAnchor-r13"); + assert_choice_type(types::explicit_gap_cfg_r13, type_, "dl-GapNonAnchor-r13"); return c; } const dl_gap_cfg_nb_r13_s& explicit_gap_cfg_r13() const { - assert_choice_type("explicitGapConfiguration-r13", type_.to_string(), "dl-GapNonAnchor-r13"); - return c; - } - void set_use_no_gap_r13() { set(types::use_no_gap_r13); } - void set_use_anchor_gap_cfg_r13() { set(types::use_anchor_gap_cfg_r13); } - dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r13() - { - set(types::explicit_gap_cfg_r13); + assert_choice_type(types::explicit_gap_cfg_r13, type_, "dl-GapNonAnchor-r13"); return c; } - void set_spare() { set(types::spare); } + void set_use_no_gap_r13(); + void set_use_anchor_gap_cfg_r13(); + dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r13(); + void set_spare(); private: types type_; @@ -413,7 +397,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { enum options { same, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_num_crs_ports_r13_e_; @@ -424,7 +408,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { struct types_opts { enum options { same_pci_r13, different_pci_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -441,34 +425,26 @@ struct dl_carrier_cfg_ded_nb_r13_s { // getters same_pci_r13_s_& same_pci_r13() { - assert_choice_type("samePCI-r13", type_.to_string(), "samePCI-Indicator-r13"); + assert_choice_type(types::same_pci_r13, type_, "samePCI-Indicator-r13"); return c.get(); } different_pci_r13_s_& different_pci_r13() { - assert_choice_type("differentPCI-r13", type_.to_string(), "samePCI-Indicator-r13"); + assert_choice_type(types::different_pci_r13, type_, "samePCI-Indicator-r13"); return c.get(); } const same_pci_r13_s_& same_pci_r13() const { - assert_choice_type("samePCI-r13", type_.to_string(), "samePCI-Indicator-r13"); + assert_choice_type(types::same_pci_r13, type_, "samePCI-Indicator-r13"); return c.get(); } const different_pci_r13_s_& different_pci_r13() const { - assert_choice_type("differentPCI-r13", type_.to_string(), "samePCI-Indicator-r13"); - return c.get(); - } - same_pci_r13_s_& set_same_pci_r13() - { - set(types::same_pci_r13); - return c.get(); - } - different_pci_r13_s_& set_different_pci_r13() - { - set(types::different_pci_r13); + assert_choice_type(types::different_pci_r13, type_, "samePCI-Indicator-r13"); return c.get(); } + same_pci_r13_s_& set_same_pci_r13(); + different_pci_r13_s_& set_different_pci_r13(); private: types type_; @@ -480,7 +456,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { enum options { n1, n2, n3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_ctrl_region_size_r13_e_; @@ -494,7 +470,7 @@ struct dl_carrier_cfg_ded_nb_r13_s { enum options { db_minus12, db_minus10, db_minus8, db_minus6, db_minus4, db_minus2, db0, db3, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated nrs_pwr_offset_non_anchor_v1330_e_; @@ -544,7 +520,7 @@ struct pdcp_cfg_nb_r13_s { enum options { ms5120, ms10240, ms20480, ms40960, ms81920, infinity, spare2, spare1, nulltype } value; typedef int32_t number_type; - std::string to_string() const; + const char* to_string() const; int32_t to_number() const; }; typedef enumerated discard_timer_r13_e_; @@ -570,7 +546,7 @@ struct pdcp_cfg_nb_r13_s { struct types_opts { enum options { not_used, rohc, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -584,20 +560,16 @@ struct pdcp_cfg_nb_r13_s { // getters rohc_s_& rohc() { - assert_choice_type("rohc", type_.to_string(), "headerCompression-r13"); + assert_choice_type(types::rohc, type_, "headerCompression-r13"); return c; } const rohc_s_& rohc() const { - assert_choice_type("rohc", type_.to_string(), "headerCompression-r13"); - return c; - } - void set_not_used() { set(types::not_used); } - rohc_s_& set_rohc() - { - set(types::rohc); + assert_choice_type(types::rohc, type_, "headerCompression-r13"); return c; } + void set_not_used(); + rohc_s_& set_rohc(); private: types type_; @@ -626,7 +598,7 @@ struct rlc_cfg_nb_r13_c { struct types_opts { enum options { am, /*...*/ um_bi_dir_r15, um_uni_dir_ul_r15, um_uni_dir_dl_r15, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -640,22 +612,18 @@ struct rlc_cfg_nb_r13_c { // getters am_s_& am() { - assert_choice_type("am", type_.to_string(), "RLC-Config-NB-r13"); + assert_choice_type(types::am, type_, "RLC-Config-NB-r13"); return c; } const am_s_& am() const { - assert_choice_type("am", type_.to_string(), "RLC-Config-NB-r13"); - return c; - } - am_s_& set_am() - { - set(types::am); + assert_choice_type(types::am, type_, "RLC-Config-NB-r13"); return c; } - void set_um_bi_dir_r15() { set(types::um_bi_dir_r15); } - void set_um_uni_dir_ul_r15() { set(types::um_uni_dir_ul_r15); } - void set_um_uni_dir_dl_r15() { set(types::um_uni_dir_dl_r15); } + am_s_& set_am(); + void set_um_bi_dir_r15(); + void set_um_uni_dir_ul_r15(); + void set_um_uni_dir_dl_r15(); private: types type_; @@ -680,7 +648,7 @@ struct sr_nprach_res_nb_r15_s { enum options { nprach_fmt0_fmt1_r15, nprach_fmt2_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -698,34 +666,26 @@ struct sr_nprach_res_nb_r15_s { // getters uint8_t& nprach_fmt0_fmt1_r15() { - assert_choice_type("nprach-Fmt0Fmt1-r15", type_.to_string(), "nprach-SubCarrierIndex-r15"); + assert_choice_type(types::nprach_fmt0_fmt1_r15, type_, "nprach-SubCarrierIndex-r15"); return c.get(); } uint8_t& nprach_fmt2_r15() { - assert_choice_type("nprach-Fmt2-r15", type_.to_string(), "nprach-SubCarrierIndex-r15"); + assert_choice_type(types::nprach_fmt2_r15, type_, "nprach-SubCarrierIndex-r15"); return c.get(); } const uint8_t& nprach_fmt0_fmt1_r15() const { - assert_choice_type("nprach-Fmt0Fmt1-r15", type_.to_string(), "nprach-SubCarrierIndex-r15"); + assert_choice_type(types::nprach_fmt0_fmt1_r15, type_, "nprach-SubCarrierIndex-r15"); return c.get(); } const uint8_t& nprach_fmt2_r15() const { - assert_choice_type("nprach-Fmt2-r15", type_.to_string(), "nprach-SubCarrierIndex-r15"); - return c.get(); - } - uint8_t& set_nprach_fmt0_fmt1_r15() - { - set(types::nprach_fmt0_fmt1_r15); - return c.get(); - } - uint8_t& set_nprach_fmt2_r15() - { - set(types::nprach_fmt2_r15); + assert_choice_type(types::nprach_fmt2_r15, type_, "nprach-SubCarrierIndex-r15"); return c.get(); } + uint8_t& set_nprach_fmt0_fmt1_r15(); + uint8_t& set_nprach_fmt2_r15(); private: types type_; @@ -737,9 +697,9 @@ struct sr_nprach_res_nb_r15_s { enum options { al0, al04, al05, al06, al07, al08, al09, al1, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated alpha_r15_e_; @@ -814,7 +774,7 @@ struct drx_cfg_nb_r13_c { enum options { pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated on_dur_timer_r13_e_; @@ -822,7 +782,7 @@ struct drx_cfg_nb_r13_c { enum options { pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_inactivity_timer_r13_e_; @@ -848,7 +808,7 @@ struct drx_cfg_nb_r13_c { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_retx_timer_r13_e_; @@ -874,7 +834,7 @@ struct drx_cfg_nb_r13_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_cycle_r13_e_; @@ -901,7 +861,7 @@ struct drx_cfg_nb_r13_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_ul_retx_timer_r13_e_; @@ -926,20 +886,16 @@ struct drx_cfg_nb_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "DRX-Config-NB-r13"); + assert_choice_type(types::setup, type_, "DRX-Config-NB-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "DRX-Config-NB-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "DRX-Config-NB-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -970,7 +926,7 @@ struct npdcch_cfg_ded_nb_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_r13_e_; @@ -978,18 +934,18 @@ struct npdcch_cfg_ded_nb_r13_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_uss_r13_e_; struct npdcch_offset_uss_r13_opts { enum options { zero, one_eighth, one_fourth, three_eighth, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_uss_r13_e_; @@ -1010,7 +966,7 @@ struct npdcch_cfg_ded_nb_v1530_s { enum options { v96, v128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated npdcch_start_sf_uss_v1530_e_; @@ -1043,7 +999,7 @@ struct periodic_bsr_timer_nb_r13_opts { enum options { pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated periodic_bsr_timer_nb_r13_e; @@ -1053,7 +1009,7 @@ struct retx_bsr_timer_nb_r13_opts { enum options { pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated retx_bsr_timer_nb_r13_e; @@ -1065,7 +1021,7 @@ struct sr_sps_bsr_cfg_nb_r15_c { enum options { sf128, sf256, sf512, sf1024, sf1280, sf2048, sf2560, sf5120, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated semi_persist_sched_interv_ul_r15_e_; @@ -1086,20 +1042,16 @@ struct sr_sps_bsr_cfg_nb_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SR-SPS-BSR-Config-NB-r15"); + assert_choice_type(types::setup, type_, "SR-SPS-BSR-Config-NB-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SR-SPS-BSR-Config-NB-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SR-SPS-BSR-Config-NB-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1126,20 +1078,16 @@ struct sr_without_harq_ack_cfg_nb_r15_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "SR-WithoutHARQ-ACK-Config-NB-r15"); + assert_choice_type(types::setup, type_, "SR-WithoutHARQ-ACK-Config-NB-r15"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "SR-WithoutHARQ-ACK-Config-NB-r15"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "SR-WithoutHARQ-ACK-Config-NB-r15"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1152,7 +1100,7 @@ struct srb_to_add_mod_nb_r13_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1166,20 +1114,16 @@ struct srb_to_add_mod_nb_r13_s { // getters rlc_cfg_nb_r13_c& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "rlc-Config-r13"); + assert_choice_type(types::explicit_value, type_, "rlc-Config-r13"); return c; } const rlc_cfg_nb_r13_c& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "rlc-Config-r13"); + assert_choice_type(types::explicit_value, type_, "rlc-Config-r13"); return c; } - rlc_cfg_nb_r13_c& set_explicit_value() - { - set(types::explicit_value); - return c; - } - void set_default_value() { set(types::default_value); } + rlc_cfg_nb_r13_c& set_explicit_value(); + void set_default_value(); private: types type_; @@ -1189,7 +1133,7 @@ struct srb_to_add_mod_nb_r13_s { struct types_opts { enum options { explicit_value, default_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1203,20 +1147,16 @@ struct srb_to_add_mod_nb_r13_s { // getters lc_ch_cfg_nb_r13_s& explicit_value() { - assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig-r13"); + assert_choice_type(types::explicit_value, type_, "logicalChannelConfig-r13"); return c; } const lc_ch_cfg_nb_r13_s& explicit_value() const { - assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig-r13"); + assert_choice_type(types::explicit_value, type_, "logicalChannelConfig-r13"); return c; } - lc_ch_cfg_nb_r13_s& set_explicit_value() - { - set(types::explicit_value); - return c; - } - void set_default_value() { set(types::default_value); } + lc_ch_cfg_nb_r13_s& set_explicit_value(); + void set_default_value(); private: types type_; @@ -1268,7 +1208,7 @@ struct mac_main_cfg_nb_r13_s { enum options { pp2, pp8, pp32, pp128, pp512, pp1024, pp2048, spare, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated lc_ch_sr_prohibit_timer_r13_e_; @@ -1288,20 +1228,16 @@ struct mac_main_cfg_nb_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r13"); + assert_choice_type(types::setup, type_, "logicalChannelSR-Config-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "logicalChannelSR-Config-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1323,20 +1259,16 @@ struct mac_main_cfg_nb_r13_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); + assert_choice_type(types::setup, type_, "dataInactivityTimerConfig-r14"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "dataInactivityTimerConfig-r14"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1346,7 +1278,7 @@ struct mac_main_cfg_nb_r13_s { enum options { sf1280, sf2560, sf5120, sf10240, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_cycle_v1430_e_; @@ -1410,7 +1342,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms2500, ms4000, ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_r13_e_; @@ -1418,7 +1350,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_r13_e_; @@ -1426,7 +1358,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_r13_e_; @@ -1434,7 +1366,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_r13_e_; @@ -1442,7 +1374,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_r13_e_; @@ -1450,7 +1382,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms40000, ms60000, ms90000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t311_v1350_e_; @@ -1458,7 +1390,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms80000, ms100000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t301_v1530_e_; @@ -1466,7 +1398,7 @@ struct rlf_timers_and_consts_nb_r13_c { enum options { ms160000, ms200000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t311_v1530_e_; @@ -1505,20 +1437,16 @@ struct rlf_timers_and_consts_nb_r13_c { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-NB-r13"); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-NB-r13"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-NB-r13"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "RLF-TimersAndConstants-NB-r13"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -1550,7 +1478,7 @@ struct rr_cfg_ded_nb_r13_s { struct types_opts { enum options { explicit_value_r13, default_value_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1564,20 +1492,16 @@ struct rr_cfg_ded_nb_r13_s { // getters mac_main_cfg_nb_r13_s& explicit_value_r13() { - assert_choice_type("explicitValue-r13", type_.to_string(), "mac-MainConfig-r13"); + assert_choice_type(types::explicit_value_r13, type_, "mac-MainConfig-r13"); return c; } const mac_main_cfg_nb_r13_s& explicit_value_r13() const { - assert_choice_type("explicitValue-r13", type_.to_string(), "mac-MainConfig-r13"); + assert_choice_type(types::explicit_value_r13, type_, "mac-MainConfig-r13"); return c; } - mac_main_cfg_nb_r13_s& set_explicit_value_r13() - { - set(types::explicit_value_r13); - return c; - } - void set_default_value_r13() { set(types::default_value_r13); } + mac_main_cfg_nb_r13_s& set_explicit_value_r13(); + void set_default_value_r13(); private: types type_; @@ -1661,9 +1585,9 @@ struct ch_raster_offset_nb_r13_opts { enum options { khz_minus7dot5, khz_minus2dot5, khz2dot5, khz7dot5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ch_raster_offset_nb_r13_e; @@ -1684,7 +1608,7 @@ struct inband_different_pci_nb_r13_s { enum options { same, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_num_crs_ports_r13_e_; @@ -1727,7 +1651,7 @@ struct mib_nb_s { enum options { inband_same_pci_r13, inband_different_pci_r13, guardband_r13, standalone_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -1745,64 +1669,48 @@ struct mib_nb_s { // getters inband_same_pci_nb_r13_s& inband_same_pci_r13() { - assert_choice_type("inband-SamePCI-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::inband_same_pci_r13, type_, "operationModeInfo-r13"); return c.get(); } inband_different_pci_nb_r13_s& inband_different_pci_r13() { - assert_choice_type("inband-DifferentPCI-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::inband_different_pci_r13, type_, "operationModeInfo-r13"); return c.get(); } guardband_nb_r13_s& guardband_r13() { - assert_choice_type("guardband-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::guardband_r13, type_, "operationModeInfo-r13"); return c.get(); } standalone_nb_r13_s& standalone_r13() { - assert_choice_type("standalone-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::standalone_r13, type_, "operationModeInfo-r13"); return c.get(); } const inband_same_pci_nb_r13_s& inband_same_pci_r13() const { - assert_choice_type("inband-SamePCI-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::inband_same_pci_r13, type_, "operationModeInfo-r13"); return c.get(); } const inband_different_pci_nb_r13_s& inband_different_pci_r13() const { - assert_choice_type("inband-DifferentPCI-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::inband_different_pci_r13, type_, "operationModeInfo-r13"); return c.get(); } const guardband_nb_r13_s& guardband_r13() const { - assert_choice_type("guardband-r13", type_.to_string(), "operationModeInfo-r13"); + assert_choice_type(types::guardband_r13, type_, "operationModeInfo-r13"); return c.get(); } const standalone_nb_r13_s& standalone_r13() const { - assert_choice_type("standalone-r13", type_.to_string(), "operationModeInfo-r13"); - return c.get(); - } - inband_same_pci_nb_r13_s& set_inband_same_pci_r13() - { - set(types::inband_same_pci_r13); - return c.get(); - } - inband_different_pci_nb_r13_s& set_inband_different_pci_r13() - { - set(types::inband_different_pci_r13); - return c.get(); - } - guardband_nb_r13_s& set_guardband_r13() - { - set(types::guardband_r13); - return c.get(); - } - standalone_nb_r13_s& set_standalone_r13() - { - set(types::standalone_r13); + assert_choice_type(types::standalone_r13, type_, "operationModeInfo-r13"); return c.get(); } + inband_same_pci_nb_r13_s& set_inband_same_pci_r13(); + inband_different_pci_nb_r13_s& set_inband_different_pci_r13(); + guardband_nb_r13_s& set_guardband_r13(); + standalone_nb_r13_s& set_standalone_r13(); private: types type_; @@ -1855,7 +1763,7 @@ struct sib_guardband_guardband_tdd_nb_r15_s { struct sib_guardband_guardband_location_r15_opts { enum options { same, opposite, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sib_guardband_guardband_location_r15_e_; @@ -1874,7 +1782,7 @@ struct sib_guardband_inband_diff_pci_tdd_nb_r15_s { enum options { same, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_eutra_num_crs_ports_r15_e_; @@ -1910,7 +1818,7 @@ struct guardband_tdd_nb_r15_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1927,64 +1835,48 @@ struct guardband_tdd_nb_r15_s { // getters sib_guardband_anchor_tdd_nb_r15_s& sib_guardband_anchor_r15() { - assert_choice_type("sib-GuardbandAnchor-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_anchor_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } sib_guardband_guardband_tdd_nb_r15_s& sib_guardband_guardband_r15() { - assert_choice_type("sib-GuardbandGuardband-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_guardband_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } sib_guardband_inband_same_pci_tdd_nb_r15_s& sib_guardband_inband_same_pci_r15() { - assert_choice_type("sib-GuardbandInbandSamePCI-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_inband_same_pci_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } sib_guardband_inband_diff_pci_tdd_nb_r15_s& sib_guardbandinband_diff_pci_r15() { - assert_choice_type("sib-GuardbandinbandDiffPCI-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardbandinband_diff_pci_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } const sib_guardband_anchor_tdd_nb_r15_s& sib_guardband_anchor_r15() const { - assert_choice_type("sib-GuardbandAnchor-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_anchor_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } const sib_guardband_guardband_tdd_nb_r15_s& sib_guardband_guardband_r15() const { - assert_choice_type("sib-GuardbandGuardband-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_guardband_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } const sib_guardband_inband_same_pci_tdd_nb_r15_s& sib_guardband_inband_same_pci_r15() const { - assert_choice_type("sib-GuardbandInbandSamePCI-r15", type_.to_string(), "sib-GuardbandInfo-r15"); + assert_choice_type(types::sib_guardband_inband_same_pci_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } const sib_guardband_inband_diff_pci_tdd_nb_r15_s& sib_guardbandinband_diff_pci_r15() const { - assert_choice_type("sib-GuardbandinbandDiffPCI-r15", type_.to_string(), "sib-GuardbandInfo-r15"); - return c.get(); - } - sib_guardband_anchor_tdd_nb_r15_s& set_sib_guardband_anchor_r15() - { - set(types::sib_guardband_anchor_r15); - return c.get(); - } - sib_guardband_guardband_tdd_nb_r15_s& set_sib_guardband_guardband_r15() - { - set(types::sib_guardband_guardband_r15); - return c.get(); - } - sib_guardband_inband_same_pci_tdd_nb_r15_s& set_sib_guardband_inband_same_pci_r15() - { - set(types::sib_guardband_inband_same_pci_r15); - return c.get(); - } - sib_guardband_inband_diff_pci_tdd_nb_r15_s& set_sib_guardbandinband_diff_pci_r15() - { - set(types::sib_guardbandinband_diff_pci_r15); + assert_choice_type(types::sib_guardbandinband_diff_pci_r15, type_, "sib-GuardbandInfo-r15"); return c.get(); } + sib_guardband_anchor_tdd_nb_r15_s& set_sib_guardband_anchor_r15(); + sib_guardband_guardband_tdd_nb_r15_s& set_sib_guardband_guardband_r15(); + sib_guardband_inband_same_pci_tdd_nb_r15_s& set_sib_guardband_inband_same_pci_r15(); + sib_guardband_inband_diff_pci_tdd_nb_r15_s& set_sib_guardbandinband_diff_pci_r15(); private: types type_; @@ -2000,7 +1892,7 @@ struct guardband_tdd_nb_r15_s { enum options { bw5or10, bw15or20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_bandwitdh_r15_e_; @@ -2022,14 +1914,14 @@ struct inband_different_pci_tdd_nb_r15_s { enum options { same, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_num_crs_ports_r15_e_; struct sib_inband_location_r15_opts { enum options { lower, higher, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sib_inband_location_r15_e_; @@ -2050,7 +1942,7 @@ struct inband_same_pci_tdd_nb_r15_s { struct sib_inband_location_r15_opts { enum options { lower, higher, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sib_inband_location_r15_e_; @@ -2069,7 +1961,7 @@ struct standalone_tdd_nb_r15_s { struct sib_standalone_location_r15_opts { enum options { lower, higher, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sib_standalone_location_r15_e_; @@ -2090,7 +1982,7 @@ struct mib_tdd_nb_r15_s { enum options { inband_same_pci_r15, inband_different_pci_r15, guardband_r15, standalone_r15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -2108,64 +2000,48 @@ struct mib_tdd_nb_r15_s { // getters inband_same_pci_tdd_nb_r15_s& inband_same_pci_r15() { - assert_choice_type("inband-SamePCI-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::inband_same_pci_r15, type_, "operationModeInfo-r15"); return c.get(); } inband_different_pci_tdd_nb_r15_s& inband_different_pci_r15() { - assert_choice_type("inband-DifferentPCI-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::inband_different_pci_r15, type_, "operationModeInfo-r15"); return c.get(); } guardband_tdd_nb_r15_s& guardband_r15() { - assert_choice_type("guardband-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::guardband_r15, type_, "operationModeInfo-r15"); return c.get(); } standalone_tdd_nb_r15_s& standalone_r15() { - assert_choice_type("standalone-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::standalone_r15, type_, "operationModeInfo-r15"); return c.get(); } const inband_same_pci_tdd_nb_r15_s& inband_same_pci_r15() const { - assert_choice_type("inband-SamePCI-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::inband_same_pci_r15, type_, "operationModeInfo-r15"); return c.get(); } const inband_different_pci_tdd_nb_r15_s& inband_different_pci_r15() const { - assert_choice_type("inband-DifferentPCI-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::inband_different_pci_r15, type_, "operationModeInfo-r15"); return c.get(); } const guardband_tdd_nb_r15_s& guardband_r15() const { - assert_choice_type("guardband-r15", type_.to_string(), "operationModeInfo-r15"); + assert_choice_type(types::guardband_r15, type_, "operationModeInfo-r15"); return c.get(); } const standalone_tdd_nb_r15_s& standalone_r15() const { - assert_choice_type("standalone-r15", type_.to_string(), "operationModeInfo-r15"); - return c.get(); - } - inband_same_pci_tdd_nb_r15_s& set_inband_same_pci_r15() - { - set(types::inband_same_pci_r15); - return c.get(); - } - inband_different_pci_tdd_nb_r15_s& set_inband_different_pci_r15() - { - set(types::inband_different_pci_r15); - return c.get(); - } - guardband_tdd_nb_r15_s& set_guardband_r15() - { - set(types::guardband_r15); - return c.get(); - } - standalone_tdd_nb_r15_s& set_standalone_r15() - { - set(types::standalone_r15); + assert_choice_type(types::standalone_r15, type_, "operationModeInfo-r15"); return c.get(); } + inband_same_pci_tdd_nb_r15_s& set_inband_same_pci_r15(); + inband_different_pci_tdd_nb_r15_s& set_inband_different_pci_r15(); + guardband_tdd_nb_r15_s& set_guardband_r15(); + standalone_tdd_nb_r15_s& set_standalone_r15(); private: types type_; @@ -2180,7 +2056,7 @@ struct mib_tdd_nb_r15_s { struct sib1_carrier_info_r15_opts { enum options { anchor, non_anchor, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sib1_carrier_info_r15_e_; @@ -2230,7 +2106,7 @@ struct sib_type_nb_v1530_opts { enum options { sib_type23_nb_r15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_nb_v1530_e; @@ -2244,7 +2120,7 @@ struct nsss_rrm_cfg_nb_r15_s { enum options { db_minus3, db0, db3, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated nsss_rrm_pwr_offset_r15_e_; @@ -2252,7 +2128,7 @@ struct nsss_rrm_cfg_nb_r15_s { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nsss_num_occ_diff_precoders_r15_e_; @@ -2277,7 +2153,7 @@ struct edt_tbs_nb_r15_s { enum options { b328, b408, b504, b584, b680, b808, b936, b1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated edt_tbs_r15_e_; @@ -2322,7 +2198,7 @@ struct nprach_params_nb_r13_s { enum options { ms40, ms80, ms160, ms240, ms320, ms640, ms1280, ms2560, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_periodicity_r13_e_; @@ -2330,7 +2206,7 @@ struct nprach_params_nb_r13_s { enum options { ms8, ms16, ms32, ms64, ms128, ms256, ms512, ms1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_start_time_r13_e_; @@ -2338,7 +2214,7 @@ struct nprach_params_nb_r13_s { enum options { n0, n12, n24, n36, n2, n18, n34, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_subcarrier_offset_r13_e_; @@ -2346,7 +2222,7 @@ struct nprach_params_nb_r13_s { enum options { n12, n24, n36, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_subcarriers_r13_e_; @@ -2354,16 +2230,16 @@ struct nprach_params_nb_r13_s { enum options { zero, one_third, two_third, one, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_subcarrier_msg3_range_start_r13_e_; struct max_num_preamb_attempt_ce_r13_opts { enum options { n3, n4, n5, n6, n7, n8, n10, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_preamb_attempt_ce_r13_e_; @@ -2371,7 +2247,7 @@ struct nprach_params_nb_r13_s { enum options { n1, n2, n4, n8, n16, n32, n64, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_repeats_per_preamb_attempt_r13_e_; @@ -2397,7 +2273,7 @@ struct nprach_params_nb_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_ra_r13_e_; @@ -2405,18 +2281,18 @@ struct nprach_params_nb_r13_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_css_ra_r13_e_; struct npdcch_offset_ra_r13_opts { enum options { zero, one_eighth, one_fourth, three_eighth, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_ra_r13_e_; @@ -2445,7 +2321,7 @@ struct nprach_params_nb_r14_s { enum options { ms40, ms80, ms160, ms240, ms320, ms640, ms1280, ms2560, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_periodicity_r14_e_; @@ -2453,7 +2329,7 @@ struct nprach_params_nb_r14_s { enum options { ms8, ms16, ms32, ms64, ms128, ms256, ms512, ms1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_start_time_r14_e_; @@ -2461,7 +2337,7 @@ struct nprach_params_nb_r14_s { enum options { n0, n12, n24, n36, n2, n18, n34, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_subcarrier_offset_r14_e_; @@ -2469,7 +2345,7 @@ struct nprach_params_nb_r14_s { enum options { n12, n24, n36, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_subcarriers_r14_e_; @@ -2477,9 +2353,9 @@ struct nprach_params_nb_r14_s { enum options { zero, one_third, two_third, one, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_subcarrier_msg3_range_start_r14_e_; struct npdcch_num_repeats_ra_r14_opts { @@ -2504,7 +2380,7 @@ struct nprach_params_nb_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_ra_r14_e_; @@ -2512,25 +2388,25 @@ struct nprach_params_nb_r14_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_css_ra_r14_e_; struct npdcch_offset_ra_r14_opts { enum options { zero, one_eighth, one_fourth, three_eighth, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_ra_r14_e_; struct nprach_num_cbra_start_subcarriers_r14_opts { enum options { n8, n10, n11, n12, n20, n22, n23, n24, n32, n34, n35, n36, n40, n44, n46, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_cbra_start_subcarriers_r14_e_; @@ -2576,7 +2452,7 @@ struct nprach_params_nb_v1330_s { enum options { n8, n10, n11, n12, n20, n22, n23, n24, n32, n34, n35, n36, n40, n44, n46, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_cbra_start_subcarriers_r13_e_; @@ -2597,7 +2473,7 @@ struct nprach_params_fmt2_nb_r15_s { enum options { ms40, ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_periodicity_r15_e_; @@ -2605,7 +2481,7 @@ struct nprach_params_fmt2_nb_r15_s { enum options { ms8, ms16, ms32, ms64, ms128, ms256, ms512, ms1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_start_time_r15_e_; @@ -2613,7 +2489,7 @@ struct nprach_params_fmt2_nb_r15_s { enum options { n0, n36, n72, n108, n6, n54, n102, n42, n78, n90, n12, n24, n48, n84, n60, n18, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_subcarrier_offset_r15_e_; @@ -2621,7 +2497,7 @@ struct nprach_params_fmt2_nb_r15_s { enum options { n36, n72, n108, n144, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_subcarriers_r15_e_; @@ -2629,9 +2505,9 @@ struct nprach_params_fmt2_nb_r15_s { enum options { zero, one_third, two_third, one, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_subcarrier_msg3_range_start_r15_e_; struct npdcch_num_repeats_ra_r15_opts { @@ -2656,7 +2532,7 @@ struct nprach_params_fmt2_nb_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_ra_r15_e_; @@ -2664,18 +2540,18 @@ struct nprach_params_fmt2_nb_r15_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_css_ra_r15_e_; struct npdcch_offset_ra_r15_opts { enum options { zero, one_eighth, one_fourth, three_eighth, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_ra_r15_e_; struct nprach_num_cbra_start_subcarriers_r15_opts { @@ -2700,7 +2576,7 @@ struct nprach_params_fmt2_nb_r15_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_cbra_start_subcarriers_r15_e_; @@ -2747,7 +2623,7 @@ struct nprach_params_tdd_nb_r15_s { enum options { ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120, ms10240, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_periodicity_r15_e_; @@ -2773,7 +2649,7 @@ struct nprach_params_tdd_nb_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nprach_start_time_r15_e_; @@ -2781,7 +2657,7 @@ struct nprach_params_tdd_nb_r15_s { enum options { n0, n12, n24, n36, n2, n18, n34, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_subcarrier_offset_r15_e_; @@ -2789,7 +2665,7 @@ struct nprach_params_tdd_nb_r15_s { enum options { n12, n24, n36, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_subcarriers_r15_e_; @@ -2797,9 +2673,9 @@ struct nprach_params_tdd_nb_r15_s { enum options { zero, one_third, two_third, one, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_subcarrier_msg3_range_start_r15_e_; struct npdcch_num_repeats_ra_r15_opts { @@ -2824,7 +2700,7 @@ struct nprach_params_tdd_nb_r15_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_ra_r15_e_; @@ -2832,7 +2708,7 @@ struct nprach_params_tdd_nb_r15_s { enum options { v4, v8, v16, v32, v48, v64, v96, v128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated npdcch_start_sf_css_ra_r15_e_; @@ -2840,16 +2716,16 @@ struct nprach_params_tdd_nb_r15_s { enum options { zero, one_eighth, one_fourth, three_eighth, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_ra_r15_e_; struct nprach_num_cbra_start_subcarriers_r15_opts { enum options { n8, n10, n11, n12, n20, n22, n23, n24, n32, n34, n35, n36, n40, n44, n46, n48, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nprach_num_cbra_start_subcarriers_r15_e_; @@ -2893,7 +2769,7 @@ struct nprach_params_tdd_nb_v1550_s { enum options { n3, n4, n5, n6, n7, n8, n10, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_preamb_attempt_ce_v1550_e_; @@ -2901,7 +2777,7 @@ struct nprach_params_tdd_nb_v1550_s { enum options { n1, n2, n4, n8, n16, n32, n64, n128, n256, n512, n1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated num_repeats_per_preamb_attempt_v1550_e_; @@ -2921,7 +2797,7 @@ struct paging_weight_nb_r14_opts { enum options { w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15, w16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated paging_weight_nb_r14_e; @@ -2932,7 +2808,7 @@ struct rach_info_nb_r13_s { enum options { pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ra_resp_win_size_r13_e_; @@ -2940,7 +2816,7 @@ struct rach_info_nb_r13_s { enum options { pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mac_contention_resolution_timer_r13_e_; @@ -2961,7 +2837,7 @@ struct rach_info_nb_v1530_s { enum options { pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mac_contention_resolution_timer_r15_e_; @@ -2991,9 +2867,9 @@ struct wus_max_dur_factor_nb_r15_opts { enum options { one128th, one64th, one32th, one16th, one_eighth, one_quarter, one_half, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated wus_max_dur_factor_nb_r15_e; @@ -3003,7 +2879,7 @@ struct dl_carrier_cfg_common_nb_r14_s { struct types_opts { enum options { use_no_bitmap_r14, use_anchor_bitmap_r14, explicit_bitmap_cfg_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3017,21 +2893,17 @@ struct dl_carrier_cfg_common_nb_r14_s { // getters dl_bitmap_nb_r13_c& explicit_bitmap_cfg_r14() { - assert_choice_type("explicitBitmapConfiguration-r14", type_.to_string(), "downlinkBitmapNonAnchor-r14"); + assert_choice_type(types::explicit_bitmap_cfg_r14, type_, "downlinkBitmapNonAnchor-r14"); return c; } const dl_bitmap_nb_r13_c& explicit_bitmap_cfg_r14() const { - assert_choice_type("explicitBitmapConfiguration-r14", type_.to_string(), "downlinkBitmapNonAnchor-r14"); - return c; - } - void set_use_no_bitmap_r14() { set(types::use_no_bitmap_r14); } - void set_use_anchor_bitmap_r14() { set(types::use_anchor_bitmap_r14); } - dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r14() - { - set(types::explicit_bitmap_cfg_r14); + assert_choice_type(types::explicit_bitmap_cfg_r14, type_, "downlinkBitmapNonAnchor-r14"); return c; } + void set_use_no_bitmap_r14(); + void set_use_anchor_bitmap_r14(); + dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r14(); private: types type_; @@ -3041,7 +2913,7 @@ struct dl_carrier_cfg_common_nb_r14_s { struct types_opts { enum options { use_no_gap_r14, use_anchor_gap_cfg_r14, explicit_gap_cfg_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3055,21 +2927,17 @@ struct dl_carrier_cfg_common_nb_r14_s { // getters dl_gap_cfg_nb_r13_s& explicit_gap_cfg_r14() { - assert_choice_type("explicitGapConfiguration-r14", type_.to_string(), "dl-GapNonAnchor-r14"); + assert_choice_type(types::explicit_gap_cfg_r14, type_, "dl-GapNonAnchor-r14"); return c; } const dl_gap_cfg_nb_r13_s& explicit_gap_cfg_r14() const { - assert_choice_type("explicitGapConfiguration-r14", type_.to_string(), "dl-GapNonAnchor-r14"); - return c; - } - void set_use_no_gap_r14() { set(types::use_no_gap_r14); } - void set_use_anchor_gap_cfg_r14() { set(types::use_anchor_gap_cfg_r14); } - dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r14() - { - set(types::explicit_gap_cfg_r14); + assert_choice_type(types::explicit_gap_cfg_r14, type_, "dl-GapNonAnchor-r14"); return c; } + void set_use_no_gap_r14(); + void set_use_anchor_gap_cfg_r14(); + dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r14(); private: types type_; @@ -3085,7 +2953,7 @@ struct dl_carrier_cfg_common_nb_r14_s { enum options { same, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_num_crs_ports_r14_e_; @@ -3096,7 +2964,7 @@ struct dl_carrier_cfg_common_nb_r14_s { struct types_opts { enum options { same_pci_r14, different_pci_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3113,34 +2981,26 @@ struct dl_carrier_cfg_common_nb_r14_s { // getters same_pci_r14_s_& same_pci_r14() { - assert_choice_type("samePCI-r14", type_.to_string(), "samePCI-Indicator-r14"); + assert_choice_type(types::same_pci_r14, type_, "samePCI-Indicator-r14"); return c.get(); } different_pci_r14_s_& different_pci_r14() { - assert_choice_type("differentPCI-r14", type_.to_string(), "samePCI-Indicator-r14"); + assert_choice_type(types::different_pci_r14, type_, "samePCI-Indicator-r14"); return c.get(); } const same_pci_r14_s_& same_pci_r14() const { - assert_choice_type("samePCI-r14", type_.to_string(), "samePCI-Indicator-r14"); + assert_choice_type(types::same_pci_r14, type_, "samePCI-Indicator-r14"); return c.get(); } const different_pci_r14_s_& different_pci_r14() const { - assert_choice_type("differentPCI-r14", type_.to_string(), "samePCI-Indicator-r14"); - return c.get(); - } - same_pci_r14_s_& set_same_pci_r14() - { - set(types::same_pci_r14); - return c.get(); - } - different_pci_r14_s_& set_different_pci_r14() - { - set(types::different_pci_r14); + assert_choice_type(types::different_pci_r14, type_, "samePCI-Indicator-r14"); return c.get(); } + same_pci_r14_s_& set_same_pci_r14(); + different_pci_r14_s_& set_different_pci_r14(); private: types type_; @@ -3152,7 +3012,7 @@ struct dl_carrier_cfg_common_nb_r14_s { enum options { n1, n2, n3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_ctrl_region_size_r14_e_; @@ -3166,7 +3026,7 @@ struct dl_carrier_cfg_common_nb_r14_s { enum options { db_minus12, db_minus10, db_minus8, db_minus6, db_minus4, db_minus2, db0, db3, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated nrs_pwr_offset_non_anchor_r14_e_; @@ -3249,7 +3109,7 @@ struct pcch_cfg_nb_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeat_paging_r14_e_; @@ -3286,7 +3146,7 @@ struct pwr_ramp_params_nb_v1450_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated preamb_init_rx_target_pwr_v1450_e_; @@ -3295,7 +3155,7 @@ struct pwr_ramp_params_nb_v1450_s { enum options { db0, db2, db4, db6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pwr_ramp_step_ce1_r14_e_; @@ -3331,7 +3191,7 @@ struct pwr_ramp_params_nb_v1450_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated preamb_init_rx_target_pwr_ce1_r14_e_; @@ -3371,7 +3231,7 @@ struct tdd_cfg_nb_r15_s { enum options { sa1, sa2, sa3, sa4, sa5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sf_assign_r15_e_; @@ -3392,7 +3252,7 @@ struct tdd_cfg_nb_r15_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated special_sf_patterns_r15_e_; @@ -3433,7 +3293,7 @@ struct bcch_cfg_nb_r13_s { enum options { n16, n32, n64, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mod_period_coeff_r13_e_; @@ -3469,7 +3329,7 @@ struct inter_freq_carrier_freq_info_nb_r13_s { enum options { db_minus6, db_minus3, db3, db6, db9, db12, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated pwr_class14dbm_offset_r14_e_; @@ -3477,7 +3337,7 @@ struct inter_freq_carrier_freq_info_nb_r13_s { enum options { db5, db10, db15, db20, db25, db30, db35, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_authorisation_offset_r14_e_; @@ -3559,9 +3419,9 @@ struct nprach_cfg_sib_nb_r13_s { enum options { us66dot7, us266dot7, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_cp_len_r13_e_; @@ -3593,7 +3453,7 @@ struct nprach_cfg_sib_nb_v1450_s { enum options { n3, n4, n5, n6, n7, n8, n10, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_preamb_attempt_ce_r14_e_; @@ -3613,14 +3473,14 @@ struct nprach_cfg_sib_nb_v1530_s { struct nprach_preamb_format_r15_opts { enum options { fmt0, fmt1, fmt2, fmt0_a, fmt1_a, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated nprach_preamb_format_r15_e_; struct dummy_opts { enum options { n1, n2, n4, n8, n16, n32, n64, n128, n256, n512, n1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated dummy_e_; @@ -3696,9 +3556,9 @@ struct nprach_probability_anchor_nb_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nprach_probability_anchor_r14_e_; @@ -3737,7 +3597,7 @@ struct npusch_cfg_common_nb_r13_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_sf_cfg_r13_e_; @@ -3772,7 +3632,7 @@ struct pcch_cfg_nb_r13_s { enum options { rf128, rf256, rf512, rf1024, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated default_paging_cycle_r13_e_; @@ -3798,9 +3658,9 @@ struct pcch_cfg_nb_r13_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nb_r13_e_; struct npdcch_num_repeat_paging_r13_opts { @@ -3825,7 +3685,7 @@ struct pcch_cfg_nb_r13_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeat_paging_r13_e_; @@ -3876,7 +3736,7 @@ struct sib_type_nb_r13_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_nb_r13_e; @@ -3887,7 +3747,7 @@ struct sib_type1_nb_v1530_s { struct tdd_si_carrier_info_r15_opts { enum options { anchor, non_anchor, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tdd_si_carrier_info_r15_e_; @@ -3962,9 +3822,9 @@ struct ul_pwr_ctrl_common_nb_r13_s { enum options { al0, al04, al05, al06, al07, al08, al09, al1, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated alpha_r13_e_; @@ -3985,7 +3845,7 @@ struct wus_cfg_nb_r15_s { enum options { n1, n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_pos_r15_e_; @@ -3993,7 +3853,7 @@ struct wus_cfg_nb_r15_s { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated num_drx_cycles_relaxed_r15_e_; @@ -4001,7 +3861,7 @@ struct wus_cfg_nb_r15_s { enum options { ms40, ms80, ms160, ms240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_offset_drx_r15_e_; @@ -4009,7 +3869,7 @@ struct wus_cfg_nb_r15_s { enum options { ms40, ms80, ms160, ms240, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_offset_e_drx_short_r15_e_; @@ -4017,7 +3877,7 @@ struct wus_cfg_nb_r15_s { enum options { ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated time_offset_e_drx_long_r15_e_; @@ -4046,7 +3906,7 @@ struct cell_resel_info_common_nb_v1450_s { enum options { db6, db9, db12, db15, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated s_search_delta_p_r14_e_; @@ -4066,7 +3926,7 @@ struct cell_sel_info_nb_v1430_s { enum options { db_minus6, db_minus3, db3, db6, db9, db12, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated pwr_class14dbm_offset_r14_e_; @@ -4074,7 +3934,7 @@ struct cell_sel_info_nb_v1430_s { enum options { db5, db10, db15, db20, db25, db30, db35, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_authorisation_offset_r14_e_; @@ -4123,7 +3983,7 @@ struct intra_freq_cell_resel_info_nb_v1430_s { enum options { db_minus6, db_minus3, db3, db6, db9, db12, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated pwr_class14dbm_offset_r14_e_; @@ -4131,7 +3991,7 @@ struct intra_freq_cell_resel_info_nb_v1430_s { enum options { db5, db10, db15, db20, db25, db30, db35, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ce_authorisation_offset_r14_e_; @@ -4160,7 +4020,7 @@ struct npdcch_sc_mcch_cfg_nb_r14_s { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, r512, r1024, r2048, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_sc_mcch_r14_e_; @@ -4168,9 +4028,9 @@ struct npdcch_sc_mcch_cfg_nb_r14_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_sc_mcch_r14_e_; struct npdcch_offset_sc_mcch_r14_opts { @@ -4187,9 +4047,9 @@ struct npdcch_sc_mcch_cfg_nb_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_sc_mcch_r14_e_; @@ -4243,7 +4103,7 @@ struct sc_mcch_sched_info_nb_r14_s { enum options { pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r14_e_; @@ -4251,7 +4111,7 @@ struct sc_mcch_sched_info_nb_r14_s { enum options { pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r14_e_; @@ -4278,7 +4138,7 @@ struct sc_mcch_sched_info_nb_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -4296,244 +4156,180 @@ struct sc_mcch_sched_info_nb_r14_s { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf4096() { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf8192() { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf4096() const { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf8192() const { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf4096() - { - set(types::sf4096); - return c.get(); - } - uint16_t& set_sf8192() - { - set(types::sf8192); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf2048(); + uint16_t& set_sf4096(); + uint16_t& set_sf8192(); private: types type_; @@ -4582,9 +4378,9 @@ struct sib_type1_nb_v1450_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nrs_crs_pwr_offset_v1450_e_; @@ -4605,7 +4401,7 @@ struct t_resel_nb_r13_opts { enum options { s0, s3, s6, s9, s12, s15, s18, s21, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_resel_nb_r13_e; @@ -4616,7 +4412,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms2500, ms4000, ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t300_r13_e_; @@ -4624,7 +4420,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms2500, ms4000, ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_r13_e_; @@ -4632,7 +4428,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_r13_e_; @@ -4640,7 +4436,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_r13_e_; @@ -4648,7 +4444,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_r13_e_; @@ -4656,7 +4452,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_r13_e_; @@ -4664,7 +4460,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms40000, ms60000, ms90000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t311_v1350_e_; @@ -4672,7 +4468,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms80000, ms100000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t300_v1530_e_; @@ -4680,7 +4476,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms80000, ms100000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t301_v1530_e_; @@ -4688,7 +4484,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms160000, ms200000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t311_v1530_e_; @@ -4696,7 +4492,7 @@ struct ue_timers_and_consts_nb_r13_s { enum options { ms6000, ms10000, ms15000, ms25000, ms40000, ms60000, ms80000, ms120000, nulltype } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated t300_r15_e_; @@ -4753,7 +4549,7 @@ struct plmn_id_info_nb_r13_s { struct cell_reserved_for_oper_r13_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_r13_e_; @@ -4774,7 +4570,7 @@ struct sched_info_nb_r13_s { enum options { rf64, rf128, rf256, rf512, rf1024, rf2048, rf4096, spare, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_periodicity_r13_e_; @@ -4782,7 +4578,7 @@ struct sched_info_nb_r13_s { enum options { every2nd_rf, every4th_rf, every8th_rf, every16th_rf, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_repeat_pattern_r13_e_; @@ -4790,7 +4586,7 @@ struct sched_info_nb_r13_s { enum options { b56, b120, b208, b256, b328, b440, b552, b680, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_tb_r13_e_; @@ -4827,7 +4623,7 @@ struct sib_type14_nb_r13_s { struct types_opts { enum options { ab_common_r13, ab_per_plmn_list_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4844,34 +4640,26 @@ struct sib_type14_nb_r13_s { // getters ab_cfg_nb_r13_s& ab_common_r13() { - assert_choice_type("ab-Common-r13", type_.to_string(), "ab-Param-r13"); + assert_choice_type(types::ab_common_r13, type_, "ab-Param-r13"); return c.get(); } ab_per_plmn_list_r13_l_& ab_per_plmn_list_r13() { - assert_choice_type("ab-PerPLMN-List-r13", type_.to_string(), "ab-Param-r13"); + assert_choice_type(types::ab_per_plmn_list_r13, type_, "ab-Param-r13"); return c.get(); } const ab_cfg_nb_r13_s& ab_common_r13() const { - assert_choice_type("ab-Common-r13", type_.to_string(), "ab-Param-r13"); + assert_choice_type(types::ab_common_r13, type_, "ab-Param-r13"); return c.get(); } const ab_per_plmn_list_r13_l_& ab_per_plmn_list_r13() const { - assert_choice_type("ab-PerPLMN-List-r13", type_.to_string(), "ab-Param-r13"); - return c.get(); - } - ab_cfg_nb_r13_s& set_ab_common_r13() - { - set(types::ab_common_r13); - return c.get(); - } - ab_per_plmn_list_r13_l_& set_ab_per_plmn_list_r13() - { - set(types::ab_per_plmn_list_r13); + assert_choice_type(types::ab_per_plmn_list_r13, type_, "ab-Param-r13"); return c.get(); } + ab_cfg_nb_r13_s& set_ab_common_r13(); + ab_per_plmn_list_r13_l_& set_ab_per_plmn_list_r13(); private: types type_; @@ -4883,7 +4671,7 @@ struct sib_type14_nb_r13_s { enum options { thresh1, thresh2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ab_per_nrsrp_r15_e_; @@ -4968,7 +4756,7 @@ struct sib_type20_nb_r14_s { struct types_opts { enum options { dl_carrier_cfg_r14, dl_carrier_idx_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4985,34 +4773,26 @@ struct sib_type20_nb_r14_s { // getters dl_carrier_cfg_common_nb_r14_s& dl_carrier_cfg_r14() { - assert_choice_type("dl-CarrierConfig-r14", type_.to_string(), "sc-mcch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_cfg_r14, type_, "sc-mcch-CarrierConfig-r14"); return c.get(); } uint8_t& dl_carrier_idx_r14() { - assert_choice_type("dl-CarrierIndex-r14", type_.to_string(), "sc-mcch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_idx_r14, type_, "sc-mcch-CarrierConfig-r14"); return c.get(); } const dl_carrier_cfg_common_nb_r14_s& dl_carrier_cfg_r14() const { - assert_choice_type("dl-CarrierConfig-r14", type_.to_string(), "sc-mcch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_cfg_r14, type_, "sc-mcch-CarrierConfig-r14"); return c.get(); } const uint8_t& dl_carrier_idx_r14() const { - assert_choice_type("dl-CarrierIndex-r14", type_.to_string(), "sc-mcch-CarrierConfig-r14"); - return c.get(); - } - dl_carrier_cfg_common_nb_r14_s& set_dl_carrier_cfg_r14() - { - set(types::dl_carrier_cfg_r14); - return c.get(); - } - uint8_t& set_dl_carrier_idx_r14() - { - set(types::dl_carrier_idx_r14); + assert_choice_type(types::dl_carrier_idx_r14, type_, "sc-mcch-CarrierConfig-r14"); return c.get(); } + dl_carrier_cfg_common_nb_r14_s& set_dl_carrier_cfg_r14(); + uint8_t& set_dl_carrier_idx_r14(); private: types type_; @@ -5024,7 +4804,7 @@ struct sib_type20_nb_r14_s { enum options { rf32, rf128, rf512, rf1024, rf2048, rf4096, rf8192, rf16384, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sc_mcch_repeat_period_r14_e_; @@ -5050,7 +4830,7 @@ struct sib_type20_nb_r14_s { } value; typedef uint32_t number_type; - std::string to_string() const; + const char* to_string() const; uint32_t to_number() const; }; typedef enumerated sc_mcch_mod_period_r14_e_; @@ -5150,7 +4930,7 @@ struct sib_type3_nb_r13_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_r13_e_; @@ -5269,7 +5049,7 @@ struct sys_info_nb_r13_ies_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5287,154 +5067,114 @@ struct sys_info_nb_r13_ies_s { // getters sib_type2_nb_r13_s& sib2_r13() { - assert_choice_type("sib2-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib2_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type3_nb_r13_s& sib3_r13() { - assert_choice_type("sib3-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib3_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type4_nb_r13_s& sib4_r13() { - assert_choice_type("sib4-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib4_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type5_nb_r13_s& sib5_r13() { - assert_choice_type("sib5-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib5_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type14_nb_r13_s& sib14_r13() { - assert_choice_type("sib14-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib14_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type16_nb_r13_s& sib16_r13() { - assert_choice_type("sib16-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib16_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type15_nb_r14_s& sib15_v1430() { - assert_choice_type("sib15-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib15_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type20_nb_r14_s& sib20_v1430() { - assert_choice_type("sib20-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib20_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type22_nb_r14_s& sib22_v1430() { - assert_choice_type("sib22-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib22_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } sib_type23_nb_r15_s& sib23_v1530() { - assert_choice_type("sib23-v1530", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib23_v1530, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type2_nb_r13_s& sib2_r13() const { - assert_choice_type("sib2-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib2_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type3_nb_r13_s& sib3_r13() const { - assert_choice_type("sib3-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib3_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type4_nb_r13_s& sib4_r13() const { - assert_choice_type("sib4-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib4_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type5_nb_r13_s& sib5_r13() const { - assert_choice_type("sib5-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib5_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type14_nb_r13_s& sib14_r13() const { - assert_choice_type("sib14-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib14_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type16_nb_r13_s& sib16_r13() const { - assert_choice_type("sib16-r13", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib16_r13, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type15_nb_r14_s& sib15_v1430() const { - assert_choice_type("sib15-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib15_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type20_nb_r14_s& sib20_v1430() const { - assert_choice_type("sib20-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib20_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type22_nb_r14_s& sib22_v1430() const { - assert_choice_type("sib22-v1430", type_.to_string(), "sib-TypeAndInfo-r13-item"); + assert_choice_type(types::sib22_v1430, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } const sib_type23_nb_r15_s& sib23_v1530() const { - assert_choice_type("sib23-v1530", type_.to_string(), "sib-TypeAndInfo-r13-item"); - return c.get(); - } - sib_type2_nb_r13_s& set_sib2_r13() - { - set(types::sib2_r13); - return c.get(); - } - sib_type3_nb_r13_s& set_sib3_r13() - { - set(types::sib3_r13); - return c.get(); - } - sib_type4_nb_r13_s& set_sib4_r13() - { - set(types::sib4_r13); - return c.get(); - } - sib_type5_nb_r13_s& set_sib5_r13() - { - set(types::sib5_r13); - return c.get(); - } - sib_type14_nb_r13_s& set_sib14_r13() - { - set(types::sib14_r13); - return c.get(); - } - sib_type16_nb_r13_s& set_sib16_r13() - { - set(types::sib16_r13); - return c.get(); - } - sib_type15_nb_r14_s& set_sib15_v1430() - { - set(types::sib15_v1430); - return c.get(); - } - sib_type20_nb_r14_s& set_sib20_v1430() - { - set(types::sib20_v1430); - return c.get(); - } - sib_type22_nb_r14_s& set_sib22_v1430() - { - set(types::sib22_v1430); - return c.get(); - } - sib_type23_nb_r15_s& set_sib23_v1530() - { - set(types::sib23_v1530); + assert_choice_type(types::sib23_v1530, type_, "sib-TypeAndInfo-r13-item"); return c.get(); } + sib_type2_nb_r13_s& set_sib2_r13(); + sib_type3_nb_r13_s& set_sib3_r13(); + sib_type4_nb_r13_s& set_sib4_r13(); + sib_type5_nb_r13_s& set_sib5_r13(); + sib_type14_nb_r13_s& set_sib14_r13(); + sib_type16_nb_r13_s& set_sib16_r13(); + sib_type15_nb_r14_s& set_sib15_v1430(); + sib_type20_nb_r14_s& set_sib20_v1430(); + sib_type22_nb_r14_s& set_sib22_v1430(); + sib_type23_nb_r15_s& set_sib23_v1530(); private: types type_; @@ -5485,7 +5225,7 @@ struct sys_info_nb_s { struct types_opts { enum options { sys_info_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5499,20 +5239,16 @@ struct sys_info_nb_s { // getters sys_info_nb_r13_ies_s& sys_info_r13() { - assert_choice_type("systemInformation-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::sys_info_r13, type_, "criticalExtensions"); return c; } const sys_info_nb_r13_ies_s& sys_info_r13() const { - assert_choice_type("systemInformation-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::sys_info_r13, type_, "criticalExtensions"); return c; } - sys_info_nb_r13_ies_s& set_sys_info_r13() - { - set(types::sys_info_r13); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + sys_info_nb_r13_ies_s& set_sys_info_r13(); + void set_crit_exts_future(); private: types type_; @@ -5534,13 +5270,13 @@ struct sib_type1_nb_s { struct cell_barred_r13_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_r13_e_; struct intra_freq_resel_r13_opts { enum options { allowed, not_allowed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated intra_freq_resel_r13_e_; @@ -5559,7 +5295,7 @@ struct sib_type1_nb_s { enum options { n1, n2, n3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_ctrl_region_size_r13_e_; @@ -5585,16 +5321,16 @@ struct sib_type1_nb_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated nrs_crs_pwr_offset_r13_e_; struct si_win_len_r13_opts { enum options { ms160, ms320, ms480, ms640, ms960, ms1280, ms1600, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_win_len_r13_e_; @@ -5640,7 +5376,7 @@ struct bcch_dl_sch_msg_type_nb_c { enum options { sys_info_r13, sib_type1_r13, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5658,34 +5394,26 @@ struct bcch_dl_sch_msg_type_nb_c { // getters sys_info_nb_s& sys_info_r13() { - assert_choice_type("systemInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_r13, type_, "c1"); return c.get(); } sib_type1_nb_s& sib_type1_r13() { - assert_choice_type("systemInformationBlockType1-r13", type_.to_string(), "c1"); + assert_choice_type(types::sib_type1_r13, type_, "c1"); return c.get(); } const sys_info_nb_s& sys_info_r13() const { - assert_choice_type("systemInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::sys_info_r13, type_, "c1"); return c.get(); } const sib_type1_nb_s& sib_type1_r13() const { - assert_choice_type("systemInformationBlockType1-r13", type_.to_string(), "c1"); - return c.get(); - } - sys_info_nb_s& set_sys_info_r13() - { - set(types::sys_info_r13); - return c.get(); - } - sib_type1_nb_s& set_sib_type1_r13() - { - set(types::sib_type1_r13); + assert_choice_type(types::sib_type1_r13, type_, "c1"); return c.get(); } + sys_info_nb_s& set_sys_info_r13(); + sib_type1_nb_s& set_sib_type1_r13(); private: types type_; @@ -5697,7 +5425,7 @@ struct bcch_dl_sch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5712,20 +5440,16 @@ struct bcch_dl_sch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -5793,7 +5517,7 @@ struct redirected_carrier_info_nb_v1430_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated redirected_carrier_offset_ded_r14_e_; @@ -5801,7 +5525,7 @@ struct redirected_carrier_info_nb_v1430_s { enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t322_r14_e_; @@ -5884,7 +5608,7 @@ struct rrc_conn_reest_nb_s { struct types_opts { enum options { rrc_conn_reest_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5898,20 +5622,16 @@ struct rrc_conn_reest_nb_s { // getters rrc_conn_reest_nb_r13_ies_s& rrc_conn_reest_r13() { - assert_choice_type("rrcConnectionReestablishment-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_r13, type_, "c1"); return c; } const rrc_conn_reest_nb_r13_ies_s& rrc_conn_reest_r13() const { - assert_choice_type("rrcConnectionReestablishment-r13", type_.to_string(), "c1"); - return c; - } - rrc_conn_reest_nb_r13_ies_s& set_rrc_conn_reest_r13() - { - set(types::rrc_conn_reest_r13); + assert_choice_type(types::rrc_conn_reest_r13, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + rrc_conn_reest_nb_r13_ies_s& set_rrc_conn_reest_r13(); + void set_spare1(); private: types type_; @@ -5929,20 +5649,16 @@ struct rrc_conn_reest_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -5966,7 +5682,7 @@ struct rrc_conn_reject_nb_s { struct types_opts { enum options { rrc_conn_reject_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5980,20 +5696,16 @@ struct rrc_conn_reject_nb_s { // getters rrc_conn_reject_nb_r13_ies_s& rrc_conn_reject_r13() { - assert_choice_type("rrcConnectionReject-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject_r13, type_, "c1"); return c; } const rrc_conn_reject_nb_r13_ies_s& rrc_conn_reject_r13() const { - assert_choice_type("rrcConnectionReject-r13", type_.to_string(), "c1"); - return c; - } - rrc_conn_reject_nb_r13_ies_s& set_rrc_conn_reject_r13() - { - set(types::rrc_conn_reject_r13); + assert_choice_type(types::rrc_conn_reject_r13, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + rrc_conn_reject_nb_r13_ies_s& set_rrc_conn_reject_r13(); + void set_spare1(); private: types type_; @@ -6011,20 +5723,16 @@ struct rrc_conn_reject_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6047,7 +5755,7 @@ struct rrc_conn_setup_nb_s { struct types_opts { enum options { rrc_conn_setup_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6061,20 +5769,16 @@ struct rrc_conn_setup_nb_s { // getters rrc_conn_setup_nb_r13_ies_s& rrc_conn_setup_r13() { - assert_choice_type("rrcConnectionSetup-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r13, type_, "c1"); return c; } const rrc_conn_setup_nb_r13_ies_s& rrc_conn_setup_r13() const { - assert_choice_type("rrcConnectionSetup-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r13, type_, "c1"); return c; } - rrc_conn_setup_nb_r13_ies_s& set_rrc_conn_setup_r13() - { - set(types::rrc_conn_setup_r13); - return c; - } - void set_spare1() { set(types::spare1); } + rrc_conn_setup_nb_r13_ies_s& set_rrc_conn_setup_r13(); + void set_spare1(); private: types type_; @@ -6092,20 +5796,16 @@ struct rrc_conn_setup_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6128,7 +5828,7 @@ struct rrc_early_data_complete_nb_r15_s { struct types_opts { enum options { rrc_early_data_complete_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6142,20 +5842,16 @@ struct rrc_early_data_complete_nb_r15_s { // getters rrc_early_data_complete_nb_r15_ies_s& rrc_early_data_complete_r15() { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "criticalExtensions"); return c; } const rrc_early_data_complete_nb_r15_ies_s& rrc_early_data_complete_r15() const { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "criticalExtensions"); return c; } - rrc_early_data_complete_nb_r15_ies_s& set_rrc_early_data_complete_r15() - { - set(types::rrc_early_data_complete_r15); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_early_data_complete_nb_r15_ies_s& set_rrc_early_data_complete_r15(); + void set_crit_exts_future(); private: types type_; @@ -6187,7 +5883,7 @@ struct dl_ccch_msg_type_nb_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6204,82 +5900,62 @@ struct dl_ccch_msg_type_nb_c { // getters rrc_conn_reest_nb_s& rrc_conn_reest_r13() { - assert_choice_type("rrcConnectionReestablishment-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_r13, type_, "c1"); return c.get(); } rrc_conn_reest_reject_s& rrc_conn_reest_reject_r13() { - assert_choice_type("rrcConnectionReestablishmentReject-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_reject_r13, type_, "c1"); return c.get(); } rrc_conn_reject_nb_s& rrc_conn_reject_r13() { - assert_choice_type("rrcConnectionReject-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject_r13, type_, "c1"); return c.get(); } rrc_conn_setup_nb_s& rrc_conn_setup_r13() { - assert_choice_type("rrcConnectionSetup-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r13, type_, "c1"); return c.get(); } rrc_early_data_complete_nb_r15_s& rrc_early_data_complete_r15() { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c1"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "c1"); return c.get(); } const rrc_conn_reest_nb_s& rrc_conn_reest_r13() const { - assert_choice_type("rrcConnectionReestablishment-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_r13, type_, "c1"); return c.get(); } const rrc_conn_reest_reject_s& rrc_conn_reest_reject_r13() const { - assert_choice_type("rrcConnectionReestablishmentReject-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_reject_r13, type_, "c1"); return c.get(); } const rrc_conn_reject_nb_s& rrc_conn_reject_r13() const { - assert_choice_type("rrcConnectionReject-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reject_r13, type_, "c1"); return c.get(); } const rrc_conn_setup_nb_s& rrc_conn_setup_r13() const { - assert_choice_type("rrcConnectionSetup-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_r13, type_, "c1"); return c.get(); } const rrc_early_data_complete_nb_r15_s& rrc_early_data_complete_r15() const { - assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c1"); + assert_choice_type(types::rrc_early_data_complete_r15, type_, "c1"); return c.get(); } - rrc_conn_reest_nb_s& set_rrc_conn_reest_r13() - { - set(types::rrc_conn_reest_r13); - return c.get(); - } - rrc_conn_reest_reject_s& set_rrc_conn_reest_reject_r13() - { - set(types::rrc_conn_reest_reject_r13); - return c.get(); - } - rrc_conn_reject_nb_s& set_rrc_conn_reject_r13() - { - set(types::rrc_conn_reject_r13); - return c.get(); - } - rrc_conn_setup_nb_s& set_rrc_conn_setup_r13() - { - set(types::rrc_conn_setup_r13); - return c.get(); - } - rrc_early_data_complete_nb_r15_s& set_rrc_early_data_complete_r15() - { - set(types::rrc_early_data_complete_r15); - return c.get(); - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_reest_nb_s& set_rrc_conn_reest_r13(); + rrc_conn_reest_reject_s& set_rrc_conn_reest_reject_r13(); + rrc_conn_reject_nb_s& set_rrc_conn_reject_r13(); + rrc_conn_setup_nb_s& set_rrc_conn_setup_r13(); + rrc_early_data_complete_nb_r15_s& set_rrc_early_data_complete_r15(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -6296,7 +5972,7 @@ struct dl_ccch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -6311,20 +5987,16 @@ struct dl_ccch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -6401,7 +6073,7 @@ struct rrc_conn_release_nb_v1430_ies_s { struct release_cause_nb_r13_opts { enum options { load_balancing_ta_urequired, other, rrc_suspend, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated release_cause_nb_r13_e; @@ -6493,7 +6165,7 @@ struct dl_info_transfer_nb_s { struct types_opts { enum options { dl_info_transfer_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6507,20 +6179,16 @@ struct dl_info_transfer_nb_s { // getters dl_info_transfer_nb_r13_ies_s& dl_info_transfer_r13() { - assert_choice_type("dlInformationTransfer-r13", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r13, type_, "c1"); return c; } const dl_info_transfer_nb_r13_ies_s& dl_info_transfer_r13() const { - assert_choice_type("dlInformationTransfer-r13", type_.to_string(), "c1"); - return c; - } - dl_info_transfer_nb_r13_ies_s& set_dl_info_transfer_r13() - { - set(types::dl_info_transfer_r13); + assert_choice_type(types::dl_info_transfer_r13, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + dl_info_transfer_nb_r13_ies_s& set_dl_info_transfer_r13(); + void set_spare1(); private: types type_; @@ -6538,20 +6206,16 @@ struct dl_info_transfer_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6575,7 +6239,7 @@ struct rrc_conn_recfg_nb_s { struct types_opts { enum options { rrc_conn_recfg_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6589,20 +6253,16 @@ struct rrc_conn_recfg_nb_s { // getters rrc_conn_recfg_nb_r13_ies_s& rrc_conn_recfg_r13() { - assert_choice_type("rrcConnectionReconfiguration-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r13, type_, "c1"); return c; } const rrc_conn_recfg_nb_r13_ies_s& rrc_conn_recfg_r13() const { - assert_choice_type("rrcConnectionReconfiguration-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r13, type_, "c1"); return c; } - rrc_conn_recfg_nb_r13_ies_s& set_rrc_conn_recfg_r13() - { - set(types::rrc_conn_recfg_r13); - return c; - } - void set_spare1() { set(types::spare1); } + rrc_conn_recfg_nb_r13_ies_s& set_rrc_conn_recfg_r13(); + void set_spare1(); private: types type_; @@ -6620,20 +6280,16 @@ struct rrc_conn_recfg_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6657,7 +6313,7 @@ struct rrc_conn_release_nb_s { struct types_opts { enum options { rrc_conn_release_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6671,20 +6327,16 @@ struct rrc_conn_release_nb_s { // getters rrc_conn_release_nb_r13_ies_s& rrc_conn_release_r13() { - assert_choice_type("rrcConnectionRelease-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release_r13, type_, "c1"); return c; } const rrc_conn_release_nb_r13_ies_s& rrc_conn_release_r13() const { - assert_choice_type("rrcConnectionRelease-r13", type_.to_string(), "c1"); - return c; - } - rrc_conn_release_nb_r13_ies_s& set_rrc_conn_release_r13() - { - set(types::rrc_conn_release_r13); + assert_choice_type(types::rrc_conn_release_r13, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + rrc_conn_release_nb_r13_ies_s& set_rrc_conn_release_r13(); + void set_spare1(); private: types type_; @@ -6702,20 +6354,16 @@ struct rrc_conn_release_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6739,7 +6387,7 @@ struct rrc_conn_resume_nb_s { struct types_opts { enum options { rrc_conn_resume_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6753,20 +6401,16 @@ struct rrc_conn_resume_nb_s { // getters rrc_conn_resume_nb_r13_ies_s& rrc_conn_resume_r13() { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c; } const rrc_conn_resume_nb_r13_ies_s& rrc_conn_resume_r13() const { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); - return c; - } - rrc_conn_resume_nb_r13_ies_s& set_rrc_conn_resume_r13() - { - set(types::rrc_conn_resume_r13); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + rrc_conn_resume_nb_r13_ies_s& set_rrc_conn_resume_r13(); + void set_spare1(); private: types type_; @@ -6784,20 +6428,16 @@ struct rrc_conn_resume_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6821,7 +6461,7 @@ struct ue_cap_enquiry_nb_s { struct types_opts { enum options { ue_cap_enquiry_r13, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6835,20 +6475,16 @@ struct ue_cap_enquiry_nb_s { // getters ue_cap_enquiry_nb_r13_ies_s& ue_cap_enquiry_r13() { - assert_choice_type("ueCapabilityEnquiry-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r13, type_, "c1"); return c; } const ue_cap_enquiry_nb_r13_ies_s& ue_cap_enquiry_r13() const { - assert_choice_type("ueCapabilityEnquiry-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r13, type_, "c1"); return c; } - ue_cap_enquiry_nb_r13_ies_s& set_ue_cap_enquiry_r13() - { - set(types::ue_cap_enquiry_r13); - return c; - } - void set_spare1() { set(types::spare1); } + ue_cap_enquiry_nb_r13_ies_s& set_ue_cap_enquiry_r13(); + void set_spare1(); private: types type_; @@ -6866,20 +6502,16 @@ struct ue_cap_enquiry_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -6912,7 +6544,7 @@ struct dl_dcch_msg_type_nb_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6929,96 +6561,72 @@ struct dl_dcch_msg_type_nb_c { // getters dl_info_transfer_nb_s& dl_info_transfer_r13() { - assert_choice_type("dlInformationTransfer-r13", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r13, type_, "c1"); return c.get(); } rrc_conn_recfg_nb_s& rrc_conn_recfg_r13() { - assert_choice_type("rrcConnectionReconfiguration-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r13, type_, "c1"); return c.get(); } rrc_conn_release_nb_s& rrc_conn_release_r13() { - assert_choice_type("rrcConnectionRelease-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release_r13, type_, "c1"); return c.get(); } security_mode_cmd_s& security_mode_cmd_r13() { - assert_choice_type("securityModeCommand-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd_r13, type_, "c1"); return c.get(); } ue_cap_enquiry_nb_s& ue_cap_enquiry_r13() { - assert_choice_type("ueCapabilityEnquiry-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r13, type_, "c1"); return c.get(); } rrc_conn_resume_nb_s& rrc_conn_resume_r13() { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c.get(); } const dl_info_transfer_nb_s& dl_info_transfer_r13() const { - assert_choice_type("dlInformationTransfer-r13", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer_r13, type_, "c1"); return c.get(); } const rrc_conn_recfg_nb_s& rrc_conn_recfg_r13() const { - assert_choice_type("rrcConnectionReconfiguration-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_r13, type_, "c1"); return c.get(); } const rrc_conn_release_nb_s& rrc_conn_release_r13() const { - assert_choice_type("rrcConnectionRelease-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_release_r13, type_, "c1"); return c.get(); } const security_mode_cmd_s& security_mode_cmd_r13() const { - assert_choice_type("securityModeCommand-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd_r13, type_, "c1"); return c.get(); } const ue_cap_enquiry_nb_s& ue_cap_enquiry_r13() const { - assert_choice_type("ueCapabilityEnquiry-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry_r13, type_, "c1"); return c.get(); } const rrc_conn_resume_nb_s& rrc_conn_resume_r13() const { - assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_r13, type_, "c1"); return c.get(); } - dl_info_transfer_nb_s& set_dl_info_transfer_r13() - { - set(types::dl_info_transfer_r13); - return c.get(); - } - rrc_conn_recfg_nb_s& set_rrc_conn_recfg_r13() - { - set(types::rrc_conn_recfg_r13); - return c.get(); - } - rrc_conn_release_nb_s& set_rrc_conn_release_r13() - { - set(types::rrc_conn_release_r13); - return c.get(); - } - security_mode_cmd_s& set_security_mode_cmd_r13() - { - set(types::security_mode_cmd_r13); - return c.get(); - } - ue_cap_enquiry_nb_s& set_ue_cap_enquiry_r13() - { - set(types::ue_cap_enquiry_r13); - return c.get(); - } - rrc_conn_resume_nb_s& set_rrc_conn_resume_r13() - { - set(types::rrc_conn_resume_r13); - return c.get(); - } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + dl_info_transfer_nb_s& set_dl_info_transfer_r13(); + rrc_conn_recfg_nb_s& set_rrc_conn_recfg_r13(); + rrc_conn_release_nb_s& set_rrc_conn_release_r13(); + security_mode_cmd_s& set_security_mode_cmd_r13(); + ue_cap_enquiry_nb_s& set_ue_cap_enquiry_r13(); + rrc_conn_resume_nb_s& set_rrc_conn_resume_r13(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -7036,7 +6644,7 @@ struct dl_dcch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -7051,20 +6659,16 @@ struct dl_dcch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -7100,7 +6704,7 @@ struct access_stratum_release_nb_r13_opts { enum options { rel13, rel14, rel15, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated access_stratum_release_nb_r13_e; @@ -7132,7 +6736,7 @@ struct pdcp_params_nb_r13_s { enum options { cs2, cs4, cs8, cs12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_rohc_context_sessions_r13_e_; @@ -7256,7 +6860,7 @@ struct rrm_cfg_nb_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_inactive_time_e_; @@ -7313,7 +6917,7 @@ struct ho_prep_info_nb_s { struct types_opts { enum options { ho_prep_info_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7327,22 +6931,18 @@ struct ho_prep_info_nb_s { // getters ho_prep_info_nb_ies_s& ho_prep_info_r13() { - assert_choice_type("handoverPreparationInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ho_prep_info_r13, type_, "c1"); return c; } const ho_prep_info_nb_ies_s& ho_prep_info_r13() const { - assert_choice_type("handoverPreparationInformation-r13", type_.to_string(), "c1"); - return c; - } - ho_prep_info_nb_ies_s& set_ho_prep_info_r13() - { - set(types::ho_prep_info_r13); + assert_choice_type(types::ho_prep_info_r13, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_prep_info_nb_ies_s& set_ho_prep_info_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -7360,20 +6960,16 @@ struct ho_prep_info_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -7435,7 +7031,7 @@ struct pcch_msg_type_nb_c { struct types_opts { enum options { paging_r13, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7455,7 +7051,7 @@ struct pcch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -7470,20 +7066,16 @@ struct pcch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "PCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "PCCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -7530,7 +7122,7 @@ struct rrc_conn_recfg_complete_nb_s { struct types_opts { enum options { rrc_conn_recfg_complete_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7544,20 +7136,16 @@ struct rrc_conn_recfg_complete_nb_s { // getters rrc_conn_recfg_complete_nb_r13_ies_s& rrc_conn_recfg_complete_r13() { - assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_recfg_complete_r13, type_, "criticalExtensions"); return c; } const rrc_conn_recfg_complete_nb_r13_ies_s& rrc_conn_recfg_complete_r13() const { - assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_recfg_complete_r13, type_, "criticalExtensions"); return c; } - rrc_conn_recfg_complete_nb_r13_ies_s& set_rrc_conn_recfg_complete_r13() - { - set(types::rrc_conn_recfg_complete_r13); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_recfg_complete_nb_r13_ies_s& set_rrc_conn_recfg_complete_r13(); + void set_crit_exts_future(); private: types type_; @@ -7605,7 +7193,7 @@ struct rrc_conn_reest_complete_nb_s { struct types_opts { enum options { rrc_conn_reest_complete_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7619,20 +7207,16 @@ struct rrc_conn_reest_complete_nb_s { // getters rrc_conn_reest_complete_nb_r13_ies_s& rrc_conn_reest_complete_r13() { - assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_complete_r13, type_, "criticalExtensions"); return c; } const rrc_conn_reest_complete_nb_r13_ies_s& rrc_conn_reest_complete_r13() const { - assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_reest_complete_nb_r13_ies_s& set_rrc_conn_reest_complete_r13() - { - set(types::rrc_conn_reest_complete_r13); + assert_choice_type(types::rrc_conn_reest_complete_r13, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_reest_complete_nb_r13_ies_s& set_rrc_conn_reest_complete_r13(); + void set_crit_exts_future(); private: types type_; @@ -7668,7 +7252,7 @@ struct cqi_npdcch_nb_r14_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cqi_npdcch_nb_r14_e; @@ -7677,7 +7261,7 @@ struct cqi_npdcch_short_nb_r14_opts { enum options { no_meass, candidate_rep_minus1, candidate_rep_minus2, candidate_rep_minus3, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated cqi_npdcch_short_nb_r14_e; @@ -7698,7 +7282,7 @@ struct reestab_ue_id_cp_nb_r14_s { struct reest_cause_nb_r13_opts { enum options { recfg_fail, other_fail, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated reest_cause_nb_r13_e; @@ -7737,7 +7321,7 @@ struct rrc_conn_reest_request_nb_s { struct types_opts { enum options { rrc_conn_reest_request_r14, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7751,20 +7335,16 @@ struct rrc_conn_reest_request_nb_s { // getters rrc_conn_reest_request_nb_r14_ies_s& rrc_conn_reest_request_r14() { - assert_choice_type("rrcConnectionReestablishmentRequest-r14", type_.to_string(), "later"); + assert_choice_type(types::rrc_conn_reest_request_r14, type_, "later"); return c; } const rrc_conn_reest_request_nb_r14_ies_s& rrc_conn_reest_request_r14() const { - assert_choice_type("rrcConnectionReestablishmentRequest-r14", type_.to_string(), "later"); + assert_choice_type(types::rrc_conn_reest_request_r14, type_, "later"); return c; } - rrc_conn_reest_request_nb_r14_ies_s& set_rrc_conn_reest_request_r14() - { - set(types::rrc_conn_reest_request_r14); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_reest_request_nb_r14_ies_s& set_rrc_conn_reest_request_r14(); + void set_crit_exts_future(); private: types type_; @@ -7773,7 +7353,7 @@ struct rrc_conn_reest_request_nb_s { struct types_opts { enum options { rrc_conn_reest_request_r13, later, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7790,34 +7370,26 @@ struct rrc_conn_reest_request_nb_s { // getters rrc_conn_reest_request_nb_r13_ies_s& rrc_conn_reest_request_r13() { - assert_choice_type("rrcConnectionReestablishmentRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_request_r13, type_, "criticalExtensions"); return c.get(); } later_c_& later() { - assert_choice_type("later", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::later, type_, "criticalExtensions"); return c.get(); } const rrc_conn_reest_request_nb_r13_ies_s& rrc_conn_reest_request_r13() const { - assert_choice_type("rrcConnectionReestablishmentRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_reest_request_r13, type_, "criticalExtensions"); return c.get(); } const later_c_& later() const { - assert_choice_type("later", type_.to_string(), "criticalExtensions"); - return c.get(); - } - rrc_conn_reest_request_nb_r13_ies_s& set_rrc_conn_reest_request_r13() - { - set(types::rrc_conn_reest_request_r13); - return c.get(); - } - later_c_& set_later() - { - set(types::later); + assert_choice_type(types::later, type_, "criticalExtensions"); return c.get(); } + rrc_conn_reest_request_nb_r13_ies_s& set_rrc_conn_reest_request_r13(); + later_c_& set_later(); private: types type_; @@ -7849,7 +7421,7 @@ struct establishment_cause_nb_r13_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_nb_r13_e; @@ -7875,7 +7447,7 @@ struct rrc_conn_request_nb_s { struct types_opts { enum options { rrc_conn_request_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7889,20 +7461,16 @@ struct rrc_conn_request_nb_s { // getters rrc_conn_request_nb_r13_ies_s& rrc_conn_request_r13() { - assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_request_r13, type_, "criticalExtensions"); return c; } const rrc_conn_request_nb_r13_ies_s& rrc_conn_request_r13() const { - assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_request_nb_r13_ies_s& set_rrc_conn_request_r13() - { - set(types::rrc_conn_request_r13); + assert_choice_type(types::rrc_conn_request_r13, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_request_nb_r13_ies_s& set_rrc_conn_request_r13(); + void set_crit_exts_future(); private: types type_; @@ -7953,7 +7521,7 @@ struct rrc_conn_resume_complete_nb_s { struct types_opts { enum options { rrc_conn_resume_complete_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7967,20 +7535,16 @@ struct rrc_conn_resume_complete_nb_s { // getters rrc_conn_resume_complete_nb_r13_ies_s& rrc_conn_resume_complete_r13() { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "criticalExtensions"); return c; } const rrc_conn_resume_complete_nb_r13_ies_s& rrc_conn_resume_complete_r13() const { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "criticalExtensions"); return c; } - rrc_conn_resume_complete_nb_r13_ies_s& set_rrc_conn_resume_complete_r13() - { - set(types::rrc_conn_resume_complete_r13); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_resume_complete_nb_r13_ies_s& set_rrc_conn_resume_complete_r13(); + void set_crit_exts_future(); private: types type_; @@ -8018,7 +7582,7 @@ struct rrc_conn_resume_request_nb_s { struct types_opts { enum options { rrc_conn_resume_request_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8032,20 +7596,16 @@ struct rrc_conn_resume_request_nb_s { // getters rrc_conn_resume_request_nb_r13_ies_s& rrc_conn_resume_request_r13() { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "criticalExtensions"); return c; } const rrc_conn_resume_request_nb_r13_ies_s& rrc_conn_resume_request_r13() const { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "criticalExtensions"); return c; } - rrc_conn_resume_request_nb_r13_ies_s& set_rrc_conn_resume_request_r13() - { - set(types::rrc_conn_resume_request_r13); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_resume_request_nb_r13_ies_s& set_rrc_conn_resume_request_r13(); + void set_crit_exts_future(); private: types type_; @@ -8114,7 +7674,7 @@ struct rrc_conn_setup_complete_nb_s { struct types_opts { enum options { rrc_conn_setup_complete_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8128,20 +7688,16 @@ struct rrc_conn_setup_complete_nb_s { // getters rrc_conn_setup_complete_nb_r13_ies_s& rrc_conn_setup_complete_r13() { - assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_conn_setup_complete_r13, type_, "criticalExtensions"); return c; } const rrc_conn_setup_complete_nb_r13_ies_s& rrc_conn_setup_complete_r13() const { - assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_conn_setup_complete_nb_r13_ies_s& set_rrc_conn_setup_complete_r13() - { - set(types::rrc_conn_setup_complete_r13); + assert_choice_type(types::rrc_conn_setup_complete_r13, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_conn_setup_complete_nb_r13_ies_s& set_rrc_conn_setup_complete_r13(); + void set_crit_exts_future(); private: types type_; @@ -8175,7 +7731,7 @@ struct rrc_early_data_request_nb_r15_ies_s { struct establishment_cause_r15_opts { enum options { mo_data, mo_exception_data, delay_tolerant_access, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_r15_e_; @@ -8200,7 +7756,7 @@ struct rrc_early_data_request_nb_r15_s { struct types_opts { enum options { rrc_early_data_request_r15, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8214,20 +7770,16 @@ struct rrc_early_data_request_nb_r15_s { // getters rrc_early_data_request_nb_r15_ies_s& rrc_early_data_request_r15() { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "criticalExtensions"); return c; } const rrc_early_data_request_nb_r15_ies_s& rrc_early_data_request_r15() const { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "criticalExtensions"); return c; } - rrc_early_data_request_nb_r15_ies_s& set_rrc_early_data_request_r15() - { - set(types::rrc_early_data_request_r15); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_early_data_request_nb_r15_ies_s& set_rrc_early_data_request_r15(); + void set_crit_exts_future(); private: types type_; @@ -8249,7 +7801,7 @@ struct sc_mtch_sched_info_nb_r14_s { enum options { pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r14_e_; @@ -8257,7 +7809,7 @@ struct sc_mtch_sched_info_nb_r14_s { enum options { pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r14_e_; @@ -8284,7 +7836,7 @@ struct sc_mtch_sched_info_nb_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -8302,244 +7854,180 @@ struct sc_mtch_sched_info_nb_r14_s { // getters uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf32() { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf64() { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf128() { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf256() { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf320() { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf512() { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf640() { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf1024() { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf2048() { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf4096() { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf8192() { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf32() const { - assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf64() const { - assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf128() const { - assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf256() const { - assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf320() const { - assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf512() const { - assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf640() const { - assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf1024() const { - assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf2048() const { - assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf4096() const { - assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); + assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf8192() const { - assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14"); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf32() - { - set(types::sf32); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf64() - { - set(types::sf64); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf128() - { - set(types::sf128); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); - return c.get(); - } - uint16_t& set_sf256() - { - set(types::sf256); - return c.get(); - } - uint16_t& set_sf320() - { - set(types::sf320); - return c.get(); - } - uint16_t& set_sf512() - { - set(types::sf512); - return c.get(); - } - uint16_t& set_sf640() - { - set(types::sf640); - return c.get(); - } - uint16_t& set_sf1024() - { - set(types::sf1024); - return c.get(); - } - uint16_t& set_sf2048() - { - set(types::sf2048); - return c.get(); - } - uint16_t& set_sf4096() - { - set(types::sf4096); - return c.get(); - } - uint16_t& set_sf8192() - { - set(types::sf8192); + assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf32(); + uint8_t& set_sf40(); + uint8_t& set_sf64(); + uint8_t& set_sf80(); + uint8_t& set_sf128(); + uint8_t& set_sf160(); + uint16_t& set_sf256(); + uint16_t& set_sf320(); + uint16_t& set_sf512(); + uint16_t& set_sf640(); + uint16_t& set_sf1024(); + uint16_t& set_sf2048(); + uint16_t& set_sf4096(); + uint16_t& set_sf8192(); private: types type_; @@ -8567,7 +8055,7 @@ struct sc_mtch_info_nb_r14_s { struct types_opts { enum options { dl_carrier_cfg_r14, dl_carrier_idx_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8584,34 +8072,26 @@ struct sc_mtch_info_nb_r14_s { // getters dl_carrier_cfg_common_nb_r14_s& dl_carrier_cfg_r14() { - assert_choice_type("dl-CarrierConfig-r14", type_.to_string(), "sc-mtch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_cfg_r14, type_, "sc-mtch-CarrierConfig-r14"); return c.get(); } uint8_t& dl_carrier_idx_r14() { - assert_choice_type("dl-CarrierIndex-r14", type_.to_string(), "sc-mtch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_idx_r14, type_, "sc-mtch-CarrierConfig-r14"); return c.get(); } const dl_carrier_cfg_common_nb_r14_s& dl_carrier_cfg_r14() const { - assert_choice_type("dl-CarrierConfig-r14", type_.to_string(), "sc-mtch-CarrierConfig-r14"); + assert_choice_type(types::dl_carrier_cfg_r14, type_, "sc-mtch-CarrierConfig-r14"); return c.get(); } const uint8_t& dl_carrier_idx_r14() const { - assert_choice_type("dl-CarrierIndex-r14", type_.to_string(), "sc-mtch-CarrierConfig-r14"); - return c.get(); - } - dl_carrier_cfg_common_nb_r14_s& set_dl_carrier_cfg_r14() - { - set(types::dl_carrier_cfg_r14); - return c.get(); - } - uint8_t& set_dl_carrier_idx_r14() - { - set(types::dl_carrier_idx_r14); + assert_choice_type(types::dl_carrier_idx_r14, type_, "sc-mtch-CarrierConfig-r14"); return c.get(); } + dl_carrier_cfg_common_nb_r14_s& set_dl_carrier_cfg_r14(); + uint8_t& set_dl_carrier_idx_r14(); private: types type_; @@ -8623,7 +8103,7 @@ struct sc_mtch_info_nb_r14_s { enum options { n680, n2536, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_npdsch_max_tbs_sc_mtch_r14_e_; @@ -8649,7 +8129,7 @@ struct sc_mtch_info_nb_r14_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated npdcch_num_repeats_sc_mtch_r14_e_; @@ -8657,9 +8137,9 @@ struct sc_mtch_info_nb_r14_s { enum options { v1dot5, v2, v4, v8, v16, v32, v48, v64, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_start_sf_sc_mtch_r14_e_; struct npdcch_offset_sc_mtch_r14_opts { @@ -8676,9 +8156,9 @@ struct sc_mtch_info_nb_r14_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated npdcch_offset_sc_mtch_r14_e_; @@ -8730,7 +8210,7 @@ struct sc_mcch_msg_type_nb_c { struct types_opts { enum options { scptm_cfg_r14, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8750,7 +8230,7 @@ struct sc_mcch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8765,20 +8245,16 @@ struct sc_mcch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "SC-MCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "SC-MCCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -8956,7 +8432,7 @@ struct ue_radio_paging_info_nb_r13_s { enum options { ms40, ms240, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated wake_up_signal_min_gap_e_drx_r15_e_; @@ -9012,7 +8488,7 @@ struct ue_cap_info_nb_s { struct types_opts { enum options { ue_cap_info_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9026,20 +8502,16 @@ struct ue_cap_info_nb_s { // getters ue_cap_info_nb_r13_ies_s& ue_cap_info_r13() { - assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ue_cap_info_r13, type_, "criticalExtensions"); return c; } const ue_cap_info_nb_r13_ies_s& ue_cap_info_r13() const { - assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "criticalExtensions"); - return c; - } - ue_cap_info_nb_r13_ies_s& set_ue_cap_info_r13() - { - set(types::ue_cap_info_r13); + assert_choice_type(types::ue_cap_info_r13, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + ue_cap_info_nb_r13_ies_s& set_ue_cap_info_r13(); + void set_crit_exts_future(); private: types type_; @@ -9075,7 +8547,7 @@ struct ue_paging_coverage_info_nb_s { struct types_opts { enum options { ue_paging_coverage_info_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9089,22 +8561,18 @@ struct ue_paging_coverage_info_nb_s { // getters ue_paging_coverage_info_nb_ies_s& ue_paging_coverage_info_r13() { - assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_paging_coverage_info_r13, type_, "c1"); return c; } const ue_paging_coverage_info_nb_ies_s& ue_paging_coverage_info_r13() const { - assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1"); - return c; - } - ue_paging_coverage_info_nb_ies_s& set_ue_paging_coverage_info_r13() - { - set(types::ue_paging_coverage_info_r13); + assert_choice_type(types::ue_paging_coverage_info_r13, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_paging_coverage_info_nb_ies_s& set_ue_paging_coverage_info_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -9122,20 +8590,16 @@ struct ue_paging_coverage_info_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -9195,7 +8659,7 @@ struct ue_radio_access_cap_info_nb_s { struct types_opts { enum options { ue_radio_access_cap_info_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9209,22 +8673,18 @@ struct ue_radio_access_cap_info_nb_s { // getters ue_radio_access_cap_info_nb_ies_s& ue_radio_access_cap_info_r13() { - assert_choice_type("ueRadioAccessCapabilityInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_access_cap_info_r13, type_, "c1"); return c; } const ue_radio_access_cap_info_nb_ies_s& ue_radio_access_cap_info_r13() const { - assert_choice_type("ueRadioAccessCapabilityInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_access_cap_info_r13, type_, "c1"); return c; } - ue_radio_access_cap_info_nb_ies_s& set_ue_radio_access_cap_info_r13() - { - set(types::ue_radio_access_cap_info_r13); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_access_cap_info_nb_ies_s& set_ue_radio_access_cap_info_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -9242,20 +8702,16 @@ struct ue_radio_access_cap_info_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -9289,7 +8745,7 @@ struct ue_radio_paging_info_nb_s { struct types_opts { enum options { ue_radio_paging_info_r13, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9303,22 +8759,18 @@ struct ue_radio_paging_info_nb_s { // getters ue_radio_paging_info_nb_ies_s& ue_radio_paging_info_r13() { - assert_choice_type("ueRadioPagingInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info_r13, type_, "c1"); return c; } const ue_radio_paging_info_nb_ies_s& ue_radio_paging_info_r13() const { - assert_choice_type("ueRadioPagingInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info_r13, type_, "c1"); return c; } - ue_radio_paging_info_nb_ies_s& set_ue_radio_paging_info_r13() - { - set(types::ue_radio_paging_info_r13); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_paging_info_nb_ies_s& set_ue_radio_paging_info_r13(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -9336,20 +8788,16 @@ struct ue_radio_paging_info_nb_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -9377,7 +8825,7 @@ struct ul_ccch_msg_type_nb_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9394,64 +8842,48 @@ struct ul_ccch_msg_type_nb_c { // getters rrc_conn_reest_request_nb_s& rrc_conn_reest_request_r13() { - assert_choice_type("rrcConnectionReestablishmentRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_request_r13, type_, "c1"); return c.get(); } rrc_conn_request_nb_s& rrc_conn_request_r13() { - assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_request_r13, type_, "c1"); return c.get(); } rrc_conn_resume_request_nb_s& rrc_conn_resume_request_r13() { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "c1"); return c.get(); } rrc_early_data_request_nb_r15_s& rrc_early_data_request_r15() { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c1"); + assert_choice_type(types::rrc_early_data_request_r15, type_, "c1"); return c.get(); } const rrc_conn_reest_request_nb_s& rrc_conn_reest_request_r13() const { - assert_choice_type("rrcConnectionReestablishmentRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_request_r13, type_, "c1"); return c.get(); } const rrc_conn_request_nb_s& rrc_conn_request_r13() const { - assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_request_r13, type_, "c1"); return c.get(); } const rrc_conn_resume_request_nb_s& rrc_conn_resume_request_r13() const { - assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_request_r13, type_, "c1"); return c.get(); } const rrc_early_data_request_nb_r15_s& rrc_early_data_request_r15() const { - assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c1"); - return c.get(); - } - rrc_conn_reest_request_nb_s& set_rrc_conn_reest_request_r13() - { - set(types::rrc_conn_reest_request_r13); - return c.get(); - } - rrc_conn_request_nb_s& set_rrc_conn_request_r13() - { - set(types::rrc_conn_request_r13); - return c.get(); - } - rrc_conn_resume_request_nb_s& set_rrc_conn_resume_request_r13() - { - set(types::rrc_conn_resume_request_r13); - return c.get(); - } - rrc_early_data_request_nb_r15_s& set_rrc_early_data_request_r15() - { - set(types::rrc_early_data_request_r15); + assert_choice_type(types::rrc_early_data_request_r15, type_, "c1"); return c.get(); } + rrc_conn_reest_request_nb_s& set_rrc_conn_reest_request_r13(); + rrc_conn_request_nb_s& set_rrc_conn_request_r13(); + rrc_conn_resume_request_nb_s& set_rrc_conn_resume_request_r13(); + rrc_early_data_request_nb_r15_s& set_rrc_early_data_request_r15(); private: types type_; @@ -9467,7 +8899,7 @@ struct ul_ccch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -9482,20 +8914,16 @@ struct ul_ccch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType-NB"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -9531,7 +8959,7 @@ struct ul_info_transfer_nb_s { struct types_opts { enum options { ul_info_transfer_r13, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9545,20 +8973,16 @@ struct ul_info_transfer_nb_s { // getters ul_info_transfer_nb_r13_ies_s& ul_info_transfer_r13() { - assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ul_info_transfer_r13, type_, "criticalExtensions"); return c; } const ul_info_transfer_nb_r13_ies_s& ul_info_transfer_r13() const { - assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ul_info_transfer_r13, type_, "criticalExtensions"); return c; } - ul_info_transfer_nb_r13_ies_s& set_ul_info_transfer_r13() - { - set(types::ul_info_transfer_r13); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + ul_info_transfer_nb_r13_ies_s& set_ul_info_transfer_r13(); + void set_crit_exts_future(); private: types type_; @@ -9598,7 +9022,7 @@ struct ul_dcch_msg_type_nb_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9615,132 +9039,100 @@ struct ul_dcch_msg_type_nb_c { // getters rrc_conn_recfg_complete_nb_s& rrc_conn_recfg_complete_r13() { - assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_complete_r13, type_, "c1"); return c.get(); } rrc_conn_reest_complete_nb_s& rrc_conn_reest_complete_r13() { - assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_complete_r13, type_, "c1"); return c.get(); } rrc_conn_setup_complete_nb_s& rrc_conn_setup_complete_r13() { - assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete_r13, type_, "c1"); return c.get(); } security_mode_complete_s& security_mode_complete_r13() { - assert_choice_type("securityModeComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete_r13, type_, "c1"); return c.get(); } security_mode_fail_s& security_mode_fail_r13() { - assert_choice_type("securityModeFailure-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail_r13, type_, "c1"); return c.get(); } ue_cap_info_nb_s& ue_cap_info_r13() { - assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info_r13, type_, "c1"); return c.get(); } ul_info_transfer_nb_s& ul_info_transfer_r13() { - assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_r13, type_, "c1"); return c.get(); } rrc_conn_resume_complete_nb_s& rrc_conn_resume_complete_r13() { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "c1"); return c.get(); } const rrc_conn_recfg_complete_nb_s& rrc_conn_recfg_complete_r13() const { - assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_recfg_complete_r13, type_, "c1"); return c.get(); } const rrc_conn_reest_complete_nb_s& rrc_conn_reest_complete_r13() const { - assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_reest_complete_r13, type_, "c1"); return c.get(); } const rrc_conn_setup_complete_nb_s& rrc_conn_setup_complete_r13() const { - assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::rrc_conn_setup_complete_r13, type_, "c1"); return c.get(); } const security_mode_complete_s& security_mode_complete_r13() const { - assert_choice_type("securityModeComplete-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete_r13, type_, "c1"); return c.get(); } const security_mode_fail_s& security_mode_fail_r13() const { - assert_choice_type("securityModeFailure-r13", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail_r13, type_, "c1"); return c.get(); } const ue_cap_info_nb_s& ue_cap_info_r13() const { - assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info_r13, type_, "c1"); return c.get(); } const ul_info_transfer_nb_s& ul_info_transfer_r13() const { - assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_r13, type_, "c1"); return c.get(); } const rrc_conn_resume_complete_nb_s& rrc_conn_resume_complete_r13() const { - assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c1"); - return c.get(); - } - rrc_conn_recfg_complete_nb_s& set_rrc_conn_recfg_complete_r13() - { - set(types::rrc_conn_recfg_complete_r13); - return c.get(); - } - rrc_conn_reest_complete_nb_s& set_rrc_conn_reest_complete_r13() - { - set(types::rrc_conn_reest_complete_r13); - return c.get(); - } - rrc_conn_setup_complete_nb_s& set_rrc_conn_setup_complete_r13() - { - set(types::rrc_conn_setup_complete_r13); - return c.get(); - } - security_mode_complete_s& set_security_mode_complete_r13() - { - set(types::security_mode_complete_r13); - return c.get(); - } - security_mode_fail_s& set_security_mode_fail_r13() - { - set(types::security_mode_fail_r13); - return c.get(); - } - ue_cap_info_nb_s& set_ue_cap_info_r13() - { - set(types::ue_cap_info_r13); - return c.get(); - } - ul_info_transfer_nb_s& set_ul_info_transfer_r13() - { - set(types::ul_info_transfer_r13); - return c.get(); - } - rrc_conn_resume_complete_nb_s& set_rrc_conn_resume_complete_r13() - { - set(types::rrc_conn_resume_complete_r13); + assert_choice_type(types::rrc_conn_resume_complete_r13, type_, "c1"); return c.get(); } - void set_spare8() { set(types::spare8); } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_conn_recfg_complete_nb_s& set_rrc_conn_recfg_complete_r13(); + rrc_conn_reest_complete_nb_s& set_rrc_conn_reest_complete_r13(); + rrc_conn_setup_complete_nb_s& set_rrc_conn_setup_complete_r13(); + security_mode_complete_s& set_security_mode_complete_r13(); + security_mode_fail_s& set_security_mode_fail_r13(); + ue_cap_info_nb_s& set_ue_cap_info_r13(); + ul_info_transfer_nb_s& set_ul_info_transfer_r13(); + rrc_conn_resume_complete_nb_s& set_rrc_conn_resume_complete_r13(); + void set_spare8(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -9760,7 +9152,7 @@ struct ul_dcch_msg_type_nb_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -9775,20 +9167,16 @@ struct ul_dcch_msg_type_nb_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType-NB"); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType-NB"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType-NB"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType-NB"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; diff --git a/lib/include/srsran/asn1/rrc_nr.h b/lib/include/srsran/asn1/rrc_nr.h index b31b9b6b9..e39fb0b45 100644 --- a/lib/include/srsran/asn1/rrc_nr.h +++ b/lib/include/srsran/asn1/rrc_nr.h @@ -225,7 +225,7 @@ struct mib_s { enum options { scs15or60, scs30or120, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sub_carrier_spacing_common_e_; @@ -233,20 +233,20 @@ struct mib_s { enum options { pos2, pos3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dmrs_type_a_position_e_; struct cell_barred_opts { enum options { barred, not_barred, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_barred_e_; struct intra_freq_resel_opts { enum options { allowed, not_allowed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated intra_freq_resel_e_; @@ -271,7 +271,7 @@ struct bcch_bch_msg_type_c { struct types_opts { enum options { mib, msg_class_ext, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -285,20 +285,16 @@ struct bcch_bch_msg_type_c { // getters mib_s& mib() { - assert_choice_type("mib", type_.to_string(), "BCCH-BCH-MessageType"); + assert_choice_type(types::mib, type_, "BCCH-BCH-MessageType"); return c; } const mib_s& mib() const { - assert_choice_type("mib", type_.to_string(), "BCCH-BCH-MessageType"); + assert_choice_type(types::mib, type_, "BCCH-BCH-MessageType"); return c; } - mib_s& set_mib() - { - set(types::mib); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + mib_s& set_mib(); + void set_msg_class_ext(); private: types type_; @@ -381,7 +377,7 @@ struct eutra_q_offset_range_opts { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated eutra_q_offset_range_e; @@ -427,7 +423,7 @@ struct q_offset_range_opts { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated q_offset_range_e; @@ -483,7 +479,7 @@ struct eutra_pci_range_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated range_e_; @@ -555,7 +551,7 @@ struct pci_range_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated range_e_; @@ -576,7 +572,7 @@ struct pdsch_time_domain_res_alloc_s { struct map_type_opts { enum options { type_a, type_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated map_type_e_; @@ -597,7 +593,7 @@ struct pusch_time_domain_res_alloc_s { struct map_type_opts { enum options { type_a, type_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated map_type_e_; @@ -618,9 +614,9 @@ struct cell_resel_sub_prio_opts { enum options { odot2, odot4, odot6, odot8, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated cell_resel_sub_prio_e; @@ -632,7 +628,7 @@ struct ctrl_res_set_s { enum options { n2, n3, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated reg_bundle_size_e_; @@ -640,7 +636,7 @@ struct ctrl_res_set_s { enum options { n2, n3, n6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated interleaver_size_e_; @@ -654,7 +650,7 @@ struct ctrl_res_set_s { struct types_opts { enum options { interleaved, non_interleaved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -668,20 +664,16 @@ struct ctrl_res_set_s { // getters interleaved_s_& interleaved() { - assert_choice_type("interleaved", type_.to_string(), "cce-REG-MappingType"); + assert_choice_type(types::interleaved, type_, "cce-REG-MappingType"); return c; } const interleaved_s_& interleaved() const { - assert_choice_type("interleaved", type_.to_string(), "cce-REG-MappingType"); - return c; - } - interleaved_s_& set_interleaved() - { - set(types::interleaved); + assert_choice_type(types::interleaved, type_, "cce-REG-MappingType"); return c; } - void set_non_interleaved() { set(types::non_interleaved); } + interleaved_s_& set_interleaved(); + void set_non_interleaved(); private: types type_; @@ -690,7 +682,7 @@ struct ctrl_res_set_s { struct precoder_granularity_opts { enum options { same_as_reg_bundle, all_contiguous_rbs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated precoder_granularity_e_; using tci_states_pdcch_to_add_list_l_ = dyn_array; @@ -723,7 +715,7 @@ struct eutra_allowed_meas_bw_opts { enum options { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eutra_allowed_meas_bw_e; @@ -764,7 +756,7 @@ struct rach_cfg_generic_s { enum options { one, two, four, eight, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated msg1_fdm_e_; @@ -772,7 +764,7 @@ struct rach_cfg_generic_s { enum options { n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated preamb_trans_max_e_; @@ -780,7 +772,7 @@ struct rach_cfg_generic_s { enum options { db0, db2, db4, db6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pwr_ramp_step_e_; @@ -788,7 +780,7 @@ struct rach_cfg_generic_s { enum options { sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ra_resp_win_e_; @@ -829,7 +821,7 @@ struct ssb_mtc_s { enum options { sf5, sf10, sf20, sf40, sf80, sf160, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -847,94 +839,70 @@ struct ssb_mtc_s { // getters uint8_t& sf5() { - assert_choice_type("sf5", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf5, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sf10() { - assert_choice_type("sf10", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf10, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sf20() { - assert_choice_type("sf20", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf20, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sf40() { - assert_choice_type("sf40", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf40, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sf80() { - assert_choice_type("sf80", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf80, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sf160() { - assert_choice_type("sf160", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf160, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf5() const { - assert_choice_type("sf5", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf5, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf10() const { - assert_choice_type("sf10", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf10, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf20() const { - assert_choice_type("sf20", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf20, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf40() const { - assert_choice_type("sf40", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf40, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf80() const { - assert_choice_type("sf80", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sf80, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sf160() const { - assert_choice_type("sf160", type_.to_string(), "periodicityAndOffset"); - return c.get(); - } - uint8_t& set_sf5() - { - set(types::sf5); - return c.get(); - } - uint8_t& set_sf10() - { - set(types::sf10); - return c.get(); - } - uint8_t& set_sf20() - { - set(types::sf20); - return c.get(); - } - uint8_t& set_sf40() - { - set(types::sf40); - return c.get(); - } - uint8_t& set_sf80() - { - set(types::sf80); - return c.get(); - } - uint8_t& set_sf160() - { - set(types::sf160); + assert_choice_type(types::sf160, type_, "periodicityAndOffset"); return c.get(); } + uint8_t& set_sf5(); + uint8_t& set_sf10(); + uint8_t& set_sf20(); + uint8_t& set_sf40(); + uint8_t& set_sf80(); + uint8_t& set_sf160(); private: types type_; @@ -946,7 +914,7 @@ struct ssb_mtc_s { enum options { sf1, sf2, sf3, sf4, sf5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dur_e_; @@ -966,7 +934,7 @@ struct ssb_to_measure_c { struct types_opts { enum options { short_bitmap, medium_bitmap, long_bitmap, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -983,49 +951,37 @@ struct ssb_to_measure_c { // getters fixed_bitstring<4>& short_bitmap() { - assert_choice_type("shortBitmap", type_.to_string(), "SSB-ToMeasure"); + assert_choice_type(types::short_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } fixed_bitstring<8>& medium_bitmap() { - assert_choice_type("mediumBitmap", type_.to_string(), "SSB-ToMeasure"); + assert_choice_type(types::medium_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } fixed_bitstring<64>& long_bitmap() { - assert_choice_type("longBitmap", type_.to_string(), "SSB-ToMeasure"); + assert_choice_type(types::long_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } const fixed_bitstring<4>& short_bitmap() const { - assert_choice_type("shortBitmap", type_.to_string(), "SSB-ToMeasure"); + assert_choice_type(types::short_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } const fixed_bitstring<8>& medium_bitmap() const { - assert_choice_type("mediumBitmap", type_.to_string(), "SSB-ToMeasure"); + assert_choice_type(types::medium_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } const fixed_bitstring<64>& long_bitmap() const { - assert_choice_type("longBitmap", type_.to_string(), "SSB-ToMeasure"); - return c.get >(); - } - fixed_bitstring<4>& set_short_bitmap() - { - set(types::short_bitmap); - return c.get >(); - } - fixed_bitstring<8>& set_medium_bitmap() - { - set(types::medium_bitmap); - return c.get >(); - } - fixed_bitstring<64>& set_long_bitmap() - { - set(types::long_bitmap); + assert_choice_type(types::long_bitmap, type_, "SSB-ToMeasure"); return c.get >(); } + fixed_bitstring<4>& set_short_bitmap(); + fixed_bitstring<8>& set_medium_bitmap(); + fixed_bitstring<64>& set_long_bitmap(); private: types type_; @@ -1058,7 +1014,7 @@ struct search_space_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -1076,215 +1032,159 @@ struct search_space_s { // getters uint8_t& sl2() { - assert_choice_type("sl2", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl2, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl4() { - assert_choice_type("sl4", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl4, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl5() { - assert_choice_type("sl5", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl5, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl8() { - assert_choice_type("sl8", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl8, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl10() { - assert_choice_type("sl10", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl10, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl16() { - assert_choice_type("sl16", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl16, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl20() { - assert_choice_type("sl20", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl20, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl40() { - assert_choice_type("sl40", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl40, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl80() { - assert_choice_type("sl80", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl80, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint8_t& sl160() { - assert_choice_type("sl160", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl160, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint16_t& sl320() { - assert_choice_type("sl320", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl320, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint16_t& sl640() { - assert_choice_type("sl640", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl640, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint16_t& sl1280() { - assert_choice_type("sl1280", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl1280, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } uint16_t& sl2560() { - assert_choice_type("sl2560", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl2560, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl2() const { - assert_choice_type("sl2", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl2, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl4() const { - assert_choice_type("sl4", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl4, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl5() const { - assert_choice_type("sl5", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl5, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl8() const { - assert_choice_type("sl8", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl8, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl10() const { - assert_choice_type("sl10", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl10, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl16() const { - assert_choice_type("sl16", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl16, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl20() const { - assert_choice_type("sl20", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl20, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl40() const { - assert_choice_type("sl40", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl40, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl80() const { - assert_choice_type("sl80", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl80, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint8_t& sl160() const { - assert_choice_type("sl160", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl160, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint16_t& sl320() const { - assert_choice_type("sl320", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl320, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint16_t& sl640() const { - assert_choice_type("sl640", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl640, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint16_t& sl1280() const { - assert_choice_type("sl1280", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); + assert_choice_type(types::sl1280, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } const uint16_t& sl2560() const { - assert_choice_type("sl2560", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); - return c.get(); - } - void set_sl1() { set(types::sl1); } - uint8_t& set_sl2() - { - set(types::sl2); - return c.get(); - } - uint8_t& set_sl4() - { - set(types::sl4); - return c.get(); - } - uint8_t& set_sl5() - { - set(types::sl5); - return c.get(); - } - uint8_t& set_sl8() - { - set(types::sl8); - return c.get(); - } - uint8_t& set_sl10() - { - set(types::sl10); - return c.get(); - } - uint8_t& set_sl16() - { - set(types::sl16); - return c.get(); - } - uint8_t& set_sl20() - { - set(types::sl20); - return c.get(); - } - uint8_t& set_sl40() - { - set(types::sl40); - return c.get(); - } - uint8_t& set_sl80() - { - set(types::sl80); - return c.get(); - } - uint8_t& set_sl160() - { - set(types::sl160); - return c.get(); - } - uint16_t& set_sl320() - { - set(types::sl320); - return c.get(); - } - uint16_t& set_sl640() - { - set(types::sl640); - return c.get(); - } - uint16_t& set_sl1280() - { - set(types::sl1280); - return c.get(); - } - uint16_t& set_sl2560() - { - set(types::sl2560); + assert_choice_type(types::sl2560, type_, "monitoringSlotPeriodicityAndOffset"); return c.get(); } + void set_sl1(); + uint8_t& set_sl2(); + uint8_t& set_sl4(); + uint8_t& set_sl5(); + uint8_t& set_sl8(); + uint8_t& set_sl10(); + uint8_t& set_sl16(); + uint8_t& set_sl20(); + uint8_t& set_sl40(); + uint8_t& set_sl80(); + uint8_t& set_sl160(); + uint16_t& set_sl320(); + uint16_t& set_sl640(); + uint16_t& set_sl1280(); + uint16_t& set_sl2560(); private: types type_; @@ -1297,7 +1197,7 @@ struct search_space_s { enum options { n0, n1, n2, n3, n4, n5, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level1_e_; @@ -1305,7 +1205,7 @@ struct search_space_s { enum options { n0, n1, n2, n3, n4, n5, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level2_e_; @@ -1313,7 +1213,7 @@ struct search_space_s { enum options { n0, n1, n2, n3, n4, n5, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level4_e_; @@ -1321,7 +1221,7 @@ struct search_space_s { enum options { n0, n1, n2, n3, n4, n5, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level8_e_; @@ -1329,7 +1229,7 @@ struct search_space_s { enum options { n0, n1, n2, n3, n4, n5, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level16_e_; @@ -1353,7 +1253,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level1_e_; @@ -1361,7 +1261,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level2_e_; @@ -1369,7 +1269,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level4_e_; @@ -1377,7 +1277,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level8_e_; @@ -1385,7 +1285,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated aggregation_level16_e_; @@ -1421,7 +1321,7 @@ struct search_space_s { enum options { sl1, sl2, sl4, sl5, sl8, sl10, sl16, sl20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dummy1_e_; @@ -1429,7 +1329,7 @@ struct search_space_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dummy2_e_; @@ -1458,7 +1358,7 @@ struct search_space_s { struct dci_formats_opts { enum options { formats0_minus0_and_minus1_minus0, formats0_minus1_and_minus1_minus1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dci_formats_e_; @@ -1470,7 +1370,7 @@ struct search_space_s { struct types_opts { enum options { common, ue_specific, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1487,34 +1387,26 @@ struct search_space_s { // getters common_s_& common() { - assert_choice_type("common", type_.to_string(), "searchSpaceType"); + assert_choice_type(types::common, type_, "searchSpaceType"); return c.get(); } ue_specific_s_& ue_specific() { - assert_choice_type("ue-Specific", type_.to_string(), "searchSpaceType"); + assert_choice_type(types::ue_specific, type_, "searchSpaceType"); return c.get(); } const common_s_& common() const { - assert_choice_type("common", type_.to_string(), "searchSpaceType"); + assert_choice_type(types::common, type_, "searchSpaceType"); return c.get(); } const ue_specific_s_& ue_specific() const { - assert_choice_type("ue-Specific", type_.to_string(), "searchSpaceType"); - return c.get(); - } - common_s_& set_common() - { - set(types::common); - return c.get(); - } - ue_specific_s_& set_ue_specific() - { - set(types::ue_specific); + assert_choice_type(types::ue_specific, type_, "searchSpaceType"); return c.get(); } + common_s_& set_common(); + ue_specific_s_& set_ue_specific(); private: types type_; @@ -1550,18 +1442,18 @@ struct speed_state_scale_factors_s { enum options { odot25, odot5, odot75, ldot0, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sf_medium_e_; struct sf_high_opts { enum options { odot25, odot5, odot75, ldot0, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated sf_high_e_; @@ -1580,7 +1472,7 @@ struct subcarrier_spacing_opts { enum options { khz15, khz30, khz60, khz120, khz240, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_e; @@ -1750,7 +1642,7 @@ struct pdcch_cfg_common_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1767,93 +1659,93 @@ struct pdcch_cfg_common_s { // getters scs15_kh_zone_t_l_& scs15_kh_zone_t() { - assert_choice_type("sCS15KHZoneT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs15_kh_zone_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs30_kh_zone_t_scs15_kh_zhalf_t_l_& scs30_kh_zone_t_scs15_kh_zhalf_t() { - assert_choice_type("sCS30KHZoneT-SCS15KHZhalfT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs30_kh_zone_t_scs15_kh_zhalf_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() { assert_choice_type( - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() { - assert_choice_type("sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() { assert_choice_type( - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_sixteenth_t_l_& scs120_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs120_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs15_kh_zone_t_l_& scs15_kh_zone_t() const { - assert_choice_type("sCS15KHZoneT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs15_kh_zone_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs30_kh_zone_t_scs15_kh_zhalf_t_l_& scs30_kh_zone_t_scs15_kh_zhalf_t() const { - assert_choice_type("sCS30KHZoneT-SCS15KHZhalfT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs30_kh_zone_t_scs15_kh_zhalf_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() const { assert_choice_type( - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() const { - assert_choice_type("sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } @@ -1861,57 +1753,25 @@ struct pdcch_cfg_common_s { scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() const { assert_choice_type( - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zone_sixteenth_t_l_& scs120_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs120_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } - scs15_kh_zone_t_l_& set_scs15_kh_zone_t() - { - set(types::scs15_kh_zone_t); - return c.get(); - } - scs30_kh_zone_t_scs15_kh_zhalf_t_l_& set_scs30_kh_zone_t_scs15_kh_zhalf_t() - { - set(types::scs30_kh_zone_t_scs15_kh_zhalf_t); - return c.get(); - } - scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() - { - set(types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t); - return c.get(); - } + scs15_kh_zone_t_l_& set_scs15_kh_zone_t(); + scs30_kh_zone_t_scs15_kh_zhalf_t_l_& set_scs30_kh_zone_t_scs15_kh_zhalf_t(); + scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t(); scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& - set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() - { - set(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t); - return c.get(); - } + set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t(); scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& - set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t); - return c.get(); - } + set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t(); scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& - set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t); - return c.get(); - } - scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t); - return c.get(); - } - scs120_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zone_sixteenth_t); - return c.get(); - } + set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t(); + scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t(); + scs120_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_sixteenth_t(); private: types type_; @@ -1986,7 +1846,7 @@ struct pucch_cfg_common_s { struct pucch_group_hop_opts { enum options { neither, enable, disable, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pucch_group_hop_e_; @@ -2030,7 +1890,7 @@ struct paging_cycle_opts { enum options { rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated paging_cycle_e; @@ -2042,7 +1902,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated one_eighth_e_; @@ -2050,7 +1910,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated one_fourth_e_; @@ -2058,7 +1918,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated one_half_e_; @@ -2066,7 +1926,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated one_e_; @@ -2074,7 +1934,7 @@ struct rach_cfg_common_s { enum options { n4, n8, n12, n16, n20, n24, n28, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated two_e_; @@ -2082,9 +1942,9 @@ struct rach_cfg_common_s { enum options { one_eighth, one_fourth, one_half, one, two, four, eight, sixteen, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated types; @@ -2102,124 +1962,92 @@ struct rach_cfg_common_s { // getters one_eighth_e_& one_eighth() { - assert_choice_type("oneEighth", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_eighth, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } one_fourth_e_& one_fourth() { - assert_choice_type("oneFourth", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_fourth, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } one_half_e_& one_half() { - assert_choice_type("oneHalf", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_half, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } one_e_& one() { - assert_choice_type("one", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } two_e_& two() { - assert_choice_type("two", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::two, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } uint8_t& four() { - assert_choice_type("four", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::four, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } uint8_t& eight() { - assert_choice_type("eight", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::eight, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } uint8_t& sixteen() { - assert_choice_type("sixteen", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::sixteen, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const one_eighth_e_& one_eighth() const { - assert_choice_type("oneEighth", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_eighth, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const one_fourth_e_& one_fourth() const { - assert_choice_type("oneFourth", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_fourth, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const one_half_e_& one_half() const { - assert_choice_type("oneHalf", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one_half, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const one_e_& one() const { - assert_choice_type("one", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::one, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const two_e_& two() const { - assert_choice_type("two", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::two, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const uint8_t& four() const { - assert_choice_type("four", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::four, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const uint8_t& eight() const { - assert_choice_type("eight", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); + assert_choice_type(types::eight, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } const uint8_t& sixteen() const { - assert_choice_type("sixteen", type_.to_string(), "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); - return c.get(); - } - one_eighth_e_& set_one_eighth() - { - set(types::one_eighth); - return c.get(); - } - one_fourth_e_& set_one_fourth() - { - set(types::one_fourth); - return c.get(); - } - one_half_e_& set_one_half() - { - set(types::one_half); - return c.get(); - } - one_e_& set_one() - { - set(types::one); - return c.get(); - } - two_e_& set_two() - { - set(types::two); - return c.get(); - } - uint8_t& set_four() - { - set(types::four); - return c.get(); - } - uint8_t& set_eight() - { - set(types::eight); - return c.get(); - } - uint8_t& set_sixteen() - { - set(types::sixteen); + assert_choice_type(types::sixteen, type_, "ssb-perRACH-OccasionAndCB-PreamblesPerSSB"); return c.get(); } + one_eighth_e_& set_one_eighth(); + one_fourth_e_& set_one_fourth(); + one_half_e_& set_one_half(); + one_e_& set_one(); + two_e_& set_two(); + uint8_t& set_four(); + uint8_t& set_eight(); + uint8_t& set_sixteen(); private: types type_; @@ -2250,7 +2078,7 @@ struct rach_cfg_common_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ra_msg3_size_group_a_e_; @@ -2258,7 +2086,7 @@ struct rach_cfg_common_s { enum options { minusinfinity, db0, db5, db8, db10, db12, db15, db18, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated msg_pwr_offset_group_b_e_; @@ -2272,7 +2100,7 @@ struct rach_cfg_common_s { enum options { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ra_contention_resolution_timer_e_; @@ -2281,7 +2109,7 @@ struct rach_cfg_common_s { enum options { l839, l139, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -2299,34 +2127,26 @@ struct rach_cfg_common_s { // getters uint16_t& l839() { - assert_choice_type("l839", type_.to_string(), "prach-RootSequenceIndex"); + assert_choice_type(types::l839, type_, "prach-RootSequenceIndex"); return c.get(); } uint8_t& l139() { - assert_choice_type("l139", type_.to_string(), "prach-RootSequenceIndex"); + assert_choice_type(types::l139, type_, "prach-RootSequenceIndex"); return c.get(); } const uint16_t& l839() const { - assert_choice_type("l839", type_.to_string(), "prach-RootSequenceIndex"); + assert_choice_type(types::l839, type_, "prach-RootSequenceIndex"); return c.get(); } const uint8_t& l139() const { - assert_choice_type("l139", type_.to_string(), "prach-RootSequenceIndex"); - return c.get(); - } - uint16_t& set_l839() - { - set(types::l839); - return c.get(); - } - uint8_t& set_l139() - { - set(types::l139); + assert_choice_type(types::l139, type_, "prach-RootSequenceIndex"); return c.get(); } + uint16_t& set_l839(); + uint8_t& set_l139(); private: types type_; @@ -2337,7 +2157,7 @@ struct rach_cfg_common_s { struct restricted_set_cfg_opts { enum options { unrestricted_set, restricted_set_type_a, restricted_set_type_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated restricted_set_cfg_e_; @@ -2410,7 +2230,7 @@ struct sib_type_info_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated type_e_; @@ -2433,7 +2253,11 @@ struct setup_release_c { struct types_opts { enum options { release, setup, nulltype } value; - std::string to_string() const; + const char* to_string() const + { + static const char* options[] = {"release", "setup"}; + return convert_enum_idx(options, 2, value, "setup_release_c::types"); + } }; typedef enumerated types; @@ -2447,12 +2271,12 @@ struct setup_release_c { // getters elem_type_paramT_& setup() { - assert_choice_type("setup", type_.to_string(), "SetupRelease"); + assert_choice_type(types::setup, type_, "SetupRelease"); return c; } const elem_type_paramT_& setup() const { - assert_choice_type("setup", type_.to_string(), "SetupRelease"); + assert_choice_type(types::setup, type_, "SetupRelease"); return c; } void set_release() { set(types::release); } @@ -2467,15 +2291,6 @@ private: elem_type_paramT_ c; }; - -template -std::string setup_release_c::types_opts::to_string() const -{ - static const char* options[] = {"release", "setup"}; - return convert_enum_idx(options, 2, value, "setup_release_c::types"); -} - - // UAC-BarringPerCat ::= SEQUENCE struct uac_barr_per_cat_s { uint8_t access_category = 1; @@ -2493,7 +2308,7 @@ struct bcch_cfg_s { enum options { n2, n4, n8, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mod_period_coeff_e_; @@ -2598,7 +2413,7 @@ struct mob_state_params_s { enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_eval_e_; @@ -2606,7 +2421,7 @@ struct mob_state_params_s { enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_hyst_normal_e_; @@ -2630,9 +2445,9 @@ struct pcch_cfg_s { enum options { one_t, half_t, quarter_t, one_eighth_t, one_sixteenth_t, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated types; @@ -2649,65 +2464,49 @@ struct pcch_cfg_s { // getters uint8_t& half_t() { - assert_choice_type("halfT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::half_t, type_, "nAndPagingFrameOffset"); return c.get(); } uint8_t& quarter_t() { - assert_choice_type("quarterT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::quarter_t, type_, "nAndPagingFrameOffset"); return c.get(); } uint8_t& one_eighth_t() { - assert_choice_type("oneEighthT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::one_eighth_t, type_, "nAndPagingFrameOffset"); return c.get(); } uint8_t& one_sixteenth_t() { - assert_choice_type("oneSixteenthT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::one_sixteenth_t, type_, "nAndPagingFrameOffset"); return c.get(); } const uint8_t& half_t() const { - assert_choice_type("halfT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::half_t, type_, "nAndPagingFrameOffset"); return c.get(); } const uint8_t& quarter_t() const { - assert_choice_type("quarterT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::quarter_t, type_, "nAndPagingFrameOffset"); return c.get(); } const uint8_t& one_eighth_t() const { - assert_choice_type("oneEighthT", type_.to_string(), "nAndPagingFrameOffset"); + assert_choice_type(types::one_eighth_t, type_, "nAndPagingFrameOffset"); return c.get(); } const uint8_t& one_sixteenth_t() const { - assert_choice_type("oneSixteenthT", type_.to_string(), "nAndPagingFrameOffset"); - return c.get(); - } - void set_one_t() { set(types::one_t); } - uint8_t& set_half_t() - { - set(types::half_t); - return c.get(); - } - uint8_t& set_quarter_t() - { - set(types::quarter_t); - return c.get(); - } - uint8_t& set_one_eighth_t() - { - set(types::one_eighth_t); - return c.get(); - } - uint8_t& set_one_sixteenth_t() - { - set(types::one_sixteenth_t); + assert_choice_type(types::one_sixteenth_t, type_, "nAndPagingFrameOffset"); return c.get(); } + void set_one_t(); + uint8_t& set_half_t(); + uint8_t& set_quarter_t(); + uint8_t& set_one_eighth_t(); + uint8_t& set_one_sixteenth_t(); private: types type_; @@ -2719,7 +2518,7 @@ struct pcch_cfg_s { enum options { four, two, one, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ns_e_; @@ -2746,7 +2545,7 @@ struct pcch_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2763,93 +2562,93 @@ struct pcch_cfg_s { // getters scs15_kh_zone_t_l_& scs15_kh_zone_t() { - assert_choice_type("sCS15KHZoneT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs15_kh_zone_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs30_kh_zone_t_scs15_kh_zhalf_t_l_& scs30_kh_zone_t_scs15_kh_zhalf_t() { - assert_choice_type("sCS30KHZoneT-SCS15KHZhalfT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs30_kh_zone_t_scs15_kh_zhalf_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() { assert_choice_type( - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() { - assert_choice_type("sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() { assert_choice_type( - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } scs120_kh_zone_sixteenth_t_l_& scs120_kh_zone_sixteenth_t() { - assert_choice_type("sCS120KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs120_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs15_kh_zone_t_l_& scs15_kh_zone_t() const { - assert_choice_type("sCS15KHZoneT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs15_kh_zone_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs30_kh_zone_t_scs15_kh_zhalf_t_l_& scs30_kh_zone_t_scs15_kh_zhalf_t() const { - assert_choice_type("sCS30KHZoneT-SCS15KHZhalfT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs30_kh_zone_t_scs15_kh_zhalf_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() const { assert_choice_type( - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() const { - assert_choice_type("sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - type_.to_string(), + assert_choice_type(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t, + type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } @@ -2857,57 +2656,25 @@ struct pcch_cfg_s { scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() const { assert_choice_type( - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } const scs120_kh_zone_sixteenth_t_l_& scs120_kh_zone_sixteenth_t() const { - assert_choice_type("sCS120KHZoneSixteenthT", type_.to_string(), "firstPDCCH-MonitoringOccasionOfPO"); + assert_choice_type(types::scs120_kh_zone_sixteenth_t, type_, "firstPDCCH-MonitoringOccasionOfPO"); return c.get(); } - scs15_kh_zone_t_l_& set_scs15_kh_zone_t() - { - set(types::scs15_kh_zone_t); - return c.get(); - } - scs30_kh_zone_t_scs15_kh_zhalf_t_l_& set_scs30_kh_zone_t_scs15_kh_zhalf_t() - { - set(types::scs30_kh_zone_t_scs15_kh_zhalf_t); - return c.get(); - } - scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() - { - set(types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t); - return c.get(); - } + scs15_kh_zone_t_l_& set_scs15_kh_zone_t(); + scs30_kh_zone_t_scs15_kh_zhalf_t_l_& set_scs30_kh_zone_t_scs15_kh_zhalf_t(); + scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t(); scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& - set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() - { - set(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t); - return c.get(); - } + set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t(); scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& - set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t); - return c.get(); - } + set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t(); scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& - set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t); - return c.get(); - } - scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t); - return c.get(); - } - scs120_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_sixteenth_t() - { - set(types::scs120_kh_zone_sixteenth_t); - return c.get(); - } + set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t(); + scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t(); + scs120_kh_zone_sixteenth_t_l_& set_scs120_kh_zone_sixteenth_t(); private: types type_; @@ -2945,7 +2712,7 @@ struct plmn_id_info_s { struct cell_reserved_for_oper_opts { enum options { reserved, not_reserved, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_reserved_for_oper_e_; @@ -2991,14 +2758,14 @@ struct tdd_ul_dl_pattern_s { struct dl_ul_tx_periodicity_opts { enum options { ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dl_ul_tx_periodicity_e_; struct dl_ul_tx_periodicity_v1530_opts { enum options { ms3, ms4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dl_ul_tx_periodicity_v1530_e_; @@ -3026,7 +2793,7 @@ struct time_align_timer_opts { enum options { ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated time_align_timer_e; @@ -3059,9 +2826,9 @@ struct si_request_cfg_s { enum options { one_eighth, one_fourth, one_half, one, two, four, eight, sixteen, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ssb_per_rach_occasion_e_; @@ -3072,7 +2839,7 @@ struct si_request_cfg_s { struct si_request_period_opts { enum options { one, two, four, six, eight, ten, twelve, sixteen, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated si_request_period_e_; using si_request_res_l_ = dyn_array; @@ -3115,7 +2882,7 @@ struct sib2_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_e_; @@ -3125,7 +2892,7 @@ struct sib2_s { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_medium_e_; @@ -3133,7 +2900,7 @@ struct sib2_s { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_high_e_; @@ -3292,7 +3059,7 @@ struct sib7_s { struct warning_msg_segment_type_opts { enum options { not_last_segment, last_segment, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated warning_msg_segment_type_e_; @@ -3320,7 +3087,7 @@ struct sib8_s { struct warning_msg_segment_type_opts { enum options { not_last_segment, last_segment, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated warning_msg_segment_type_e_; @@ -3376,14 +3143,14 @@ struct sched_info_s { struct si_broadcast_status_opts { enum options { broadcasting, not_broadcasting, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated si_broadcast_status_e_; struct si_periodicity_opts { enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_periodicity_e_; @@ -3420,16 +3187,16 @@ struct uac_barr_info_set_s { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated uac_barr_factor_e_; struct uac_barr_time_opts { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated uac_barr_time_e_; @@ -3452,7 +3219,7 @@ struct uac_barr_per_plmn_s { struct types_opts { enum options { uac_implicit_ac_barr_list, uac_explicit_ac_barr_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3469,34 +3236,26 @@ struct uac_barr_per_plmn_s { // getters uac_implicit_ac_barr_list_l_& uac_implicit_ac_barr_list() { - assert_choice_type("uac-ImplicitACBarringList", type_.to_string(), "uac-ACBarringListType"); + assert_choice_type(types::uac_implicit_ac_barr_list, type_, "uac-ACBarringListType"); return c.get(); } uac_barr_per_cat_list_l& uac_explicit_ac_barr_list() { - assert_choice_type("uac-ExplicitACBarringList", type_.to_string(), "uac-ACBarringListType"); + assert_choice_type(types::uac_explicit_ac_barr_list, type_, "uac-ACBarringListType"); return c.get(); } const uac_implicit_ac_barr_list_l_& uac_implicit_ac_barr_list() const { - assert_choice_type("uac-ImplicitACBarringList", type_.to_string(), "uac-ACBarringListType"); + assert_choice_type(types::uac_implicit_ac_barr_list, type_, "uac-ACBarringListType"); return c.get(); } const uac_barr_per_cat_list_l& uac_explicit_ac_barr_list() const { - assert_choice_type("uac-ExplicitACBarringList", type_.to_string(), "uac-ACBarringListType"); - return c.get(); - } - uac_implicit_ac_barr_list_l_& set_uac_implicit_ac_barr_list() - { - set(types::uac_implicit_ac_barr_list); - return c.get(); - } - uac_barr_per_cat_list_l& set_uac_explicit_ac_barr_list() - { - set(types::uac_explicit_ac_barr_list); + assert_choice_type(types::uac_explicit_ac_barr_list, type_, "uac-ACBarringListType"); return c.get(); } + uac_implicit_ac_barr_list_l_& set_uac_implicit_ac_barr_list(); + uac_barr_per_cat_list_l& set_uac_explicit_ac_barr_list(); private: types type_; @@ -3547,7 +3306,7 @@ struct conn_est_fail_ctrl_s { enum options { n1, n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated conn_est_fail_count_e_; @@ -3555,7 +3314,7 @@ struct conn_est_fail_ctrl_s { enum options { s30, s60, s120, s240, s300, s420, s600, s900, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated conn_est_fail_offset_validity_e_; @@ -3579,7 +3338,7 @@ struct si_sched_info_s { enum options { s5, s10, s20, s40, s80, s160, s320, s640, s1280, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_win_len_e_; @@ -3608,7 +3367,7 @@ struct serving_cell_cfg_common_sib_s { enum options { n0, n25600, n39936, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated n_timing_advance_offset_e_; @@ -3621,7 +3380,7 @@ struct serving_cell_cfg_common_sib_s { enum options { ms5, ms10, ms20, ms40, ms80, ms160, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ssb_periodicity_serving_cell_e_; @@ -3655,7 +3414,7 @@ struct sys_info_ies_s { enum options { sib2, sib3, sib4, sib5, sib6, sib7, sib8, sib9, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3673,124 +3432,92 @@ struct sys_info_ies_s { // getters sib2_s& sib2() { - assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } sib3_s& sib3() { - assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } sib4_s& sib4() { - assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } sib5_s& sib5() { - assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } sib6_s& sib6() { - assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } sib7_s& sib7() { - assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } sib8_s& sib8() { - assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } sib9_s& sib9() { - assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib2_s& sib2() const { - assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib3_s& sib3() const { - assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib4_s& sib4() const { - assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib5_s& sib5() const { - assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib6_s& sib6() const { - assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib7_s& sib7() const { - assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib8_s& sib8() const { - assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item"); + assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib9_s& sib9() const { - assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item"); - return c.get(); - } - sib2_s& set_sib2() - { - set(types::sib2); - return c.get(); - } - sib3_s& set_sib3() - { - set(types::sib3); - return c.get(); - } - sib4_s& set_sib4() - { - set(types::sib4); - return c.get(); - } - sib5_s& set_sib5() - { - set(types::sib5); - return c.get(); - } - sib6_s& set_sib6() - { - set(types::sib6); - return c.get(); - } - sib7_s& set_sib7() - { - set(types::sib7); - return c.get(); - } - sib8_s& set_sib8() - { - set(types::sib8); - return c.get(); - } - sib9_s& set_sib9() - { - set(types::sib9); + assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } + sib2_s& set_sib2(); + sib3_s& set_sib3(); + sib4_s& set_sib4(); + sib5_s& set_sib5(); + sib6_s& set_sib6(); + sib7_s& set_sib7(); + sib8_s& set_sib8(); + sib9_s& set_sib9(); private: types type_; @@ -3816,7 +3543,7 @@ struct sys_info_ies_s { struct uac_access_category1_sel_assist_info_opts { enum options { a, b, c, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated uac_access_category1_sel_assist_info_e; @@ -3832,7 +3559,7 @@ struct ue_timers_and_consts_s { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t300_e_; @@ -3840,7 +3567,7 @@ struct ue_timers_and_consts_s { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t301_e_; @@ -3848,7 +3575,7 @@ struct ue_timers_and_consts_s { enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_e_; @@ -3856,7 +3583,7 @@ struct ue_timers_and_consts_s { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_e_; @@ -3864,7 +3591,7 @@ struct ue_timers_and_consts_s { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_e_; @@ -3872,7 +3599,7 @@ struct ue_timers_and_consts_s { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_e_; @@ -3880,7 +3607,7 @@ struct ue_timers_and_consts_s { enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t319_e_; @@ -3921,7 +3648,7 @@ struct sib1_s { struct types_opts { enum options { plmn_common, individual_plmn_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3938,34 +3665,26 @@ struct sib1_s { // getters uac_access_category1_sel_assist_info_e& plmn_common() { - assert_choice_type("plmnCommon", type_.to_string(), "uac-AccessCategory1-SelectionAssistanceInfo"); + assert_choice_type(types::plmn_common, type_, "uac-AccessCategory1-SelectionAssistanceInfo"); return c.get(); } individual_plmn_list_l_& individual_plmn_list() { - assert_choice_type("individualPLMNList", type_.to_string(), "uac-AccessCategory1-SelectionAssistanceInfo"); + assert_choice_type(types::individual_plmn_list, type_, "uac-AccessCategory1-SelectionAssistanceInfo"); return c.get(); } const uac_access_category1_sel_assist_info_e& plmn_common() const { - assert_choice_type("plmnCommon", type_.to_string(), "uac-AccessCategory1-SelectionAssistanceInfo"); + assert_choice_type(types::plmn_common, type_, "uac-AccessCategory1-SelectionAssistanceInfo"); return c.get(); } const individual_plmn_list_l_& individual_plmn_list() const { - assert_choice_type("individualPLMNList", type_.to_string(), "uac-AccessCategory1-SelectionAssistanceInfo"); - return c.get(); - } - uac_access_category1_sel_assist_info_e& set_plmn_common() - { - set(types::plmn_common); - return c.get(); - } - individual_plmn_list_l_& set_individual_plmn_list() - { - set(types::individual_plmn_list); + assert_choice_type(types::individual_plmn_list, type_, "uac-AccessCategory1-SelectionAssistanceInfo"); return c.get(); } + uac_access_category1_sel_assist_info_e& set_plmn_common(); + individual_plmn_list_l_& set_individual_plmn_list(); private: types type_; @@ -4017,7 +3736,7 @@ struct sys_info_s { struct types_opts { enum options { sys_info, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4031,20 +3750,16 @@ struct sys_info_s { // getters sys_info_ies_s& sys_info() { - assert_choice_type("systemInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::sys_info, type_, "criticalExtensions"); return c; } const sys_info_ies_s& sys_info() const { - assert_choice_type("systemInformation", type_.to_string(), "criticalExtensions"); - return c; - } - sys_info_ies_s& set_sys_info() - { - set(types::sys_info); + assert_choice_type(types::sys_info, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + sys_info_ies_s& set_sys_info(); + void set_crit_exts_future(); private: types type_; @@ -4067,7 +3782,7 @@ struct bcch_dl_sch_msg_type_c { enum options { sys_info, sib_type1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4085,34 +3800,26 @@ struct bcch_dl_sch_msg_type_c { // getters sys_info_s& sys_info() { - assert_choice_type("systemInformation", type_.to_string(), "c1"); + assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } sib1_s& sib_type1() { - assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1"); + assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } const sys_info_s& sys_info() const { - assert_choice_type("systemInformation", type_.to_string(), "c1"); + assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } const sib1_s& sib_type1() const { - assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1"); - return c.get(); - } - sys_info_s& set_sys_info() - { - set(types::sys_info); - return c.get(); - } - sib1_s& set_sib_type1() - { - set(types::sib_type1); + assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } + sys_info_s& set_sys_info(); + sib1_s& set_sib_type1(); private: types type_; @@ -4124,7 +3831,7 @@ struct bcch_dl_sch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4139,20 +3846,16 @@ struct bcch_dl_sch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -4208,7 +3911,7 @@ struct ul_data_split_thres_opts { } value; typedef int32_t number_type; - std::string to_string() const; + const char* to_string() const; int32_t to_number() const; }; typedef enumerated ul_data_split_thres_e; @@ -4218,7 +3921,7 @@ struct ciphering_algorithm_opts { enum options { nea0, nea1, nea2, nea3, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ciphering_algorithm_e; @@ -4228,7 +3931,7 @@ struct integrity_prot_algorithm_opts { enum options { nia0, nia1, nia2, nia3, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated integrity_prot_algorithm_e; @@ -4258,7 +3961,7 @@ struct pdcp_cfg_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated discard_timer_e_; @@ -4266,7 +3969,7 @@ struct pdcp_cfg_s { enum options { len12bits, len18bits, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdcp_sn_size_ul_e_; @@ -4274,7 +3977,7 @@ struct pdcp_cfg_s { enum options { len12bits, len18bits, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdcp_sn_size_dl_e_; @@ -4312,7 +4015,7 @@ struct pdcp_cfg_s { struct types_opts { enum options { not_used, rohc, ul_only_rohc, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4329,35 +4032,27 @@ struct pdcp_cfg_s { // getters rohc_s_& rohc() { - assert_choice_type("rohc", type_.to_string(), "headerCompression"); + assert_choice_type(types::rohc, type_, "headerCompression"); return c.get(); } ul_only_rohc_s_& ul_only_rohc() { - assert_choice_type("uplinkOnlyROHC", type_.to_string(), "headerCompression"); + assert_choice_type(types::ul_only_rohc, type_, "headerCompression"); return c.get(); } const rohc_s_& rohc() const { - assert_choice_type("rohc", type_.to_string(), "headerCompression"); + assert_choice_type(types::rohc, type_, "headerCompression"); return c.get(); } const ul_only_rohc_s_& ul_only_rohc() const { - assert_choice_type("uplinkOnlyROHC", type_.to_string(), "headerCompression"); - return c.get(); - } - void set_not_used() { set(types::not_used); } - rohc_s_& set_rohc() - { - set(types::rohc); - return c.get(); - } - ul_only_rohc_s_& set_ul_only_rohc() - { - set(types::ul_only_rohc); + assert_choice_type(types::ul_only_rohc, type_, "headerCompression"); return c.get(); } + void set_not_used(); + rohc_s_& set_rohc(); + ul_only_rohc_s_& set_ul_only_rohc(); private: types type_; @@ -4463,7 +4158,7 @@ struct pdcp_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_reordering_e_; @@ -4491,13 +4186,13 @@ struct sdap_cfg_s { struct sdap_hdr_dl_opts { enum options { present, absent, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sdap_hdr_dl_e_; struct sdap_hdr_ul_opts { enum options { present, absent, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated sdap_hdr_ul_e_; using mapped_qos_flows_to_add_l_ = dyn_array; @@ -4527,7 +4222,7 @@ struct drb_to_add_mod_s { struct types_opts { enum options { eps_bearer_id, sdap_cfg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4544,34 +4239,26 @@ struct drb_to_add_mod_s { // getters uint8_t& eps_bearer_id() { - assert_choice_type("eps-BearerIdentity", type_.to_string(), "cnAssociation"); + assert_choice_type(types::eps_bearer_id, type_, "cnAssociation"); return c.get(); } sdap_cfg_s& sdap_cfg() { - assert_choice_type("sdap-Config", type_.to_string(), "cnAssociation"); + assert_choice_type(types::sdap_cfg, type_, "cnAssociation"); return c.get(); } const uint8_t& eps_bearer_id() const { - assert_choice_type("eps-BearerIdentity", type_.to_string(), "cnAssociation"); + assert_choice_type(types::eps_bearer_id, type_, "cnAssociation"); return c.get(); } const sdap_cfg_s& sdap_cfg() const { - assert_choice_type("sdap-Config", type_.to_string(), "cnAssociation"); - return c.get(); - } - uint8_t& set_eps_bearer_id() - { - set(types::eps_bearer_id); - return c.get(); - } - sdap_cfg_s& set_sdap_cfg() - { - set(types::sdap_cfg); + assert_choice_type(types::sdap_cfg, type_, "cnAssociation"); return c.get(); } + uint8_t& set_eps_bearer_id(); + sdap_cfg_s& set_sdap_cfg(); private: types type_; @@ -4641,7 +4328,7 @@ struct security_cfg_s { struct key_to_use_opts { enum options { master, secondary, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated key_to_use_e_; @@ -4713,7 +4400,7 @@ struct rrc_reject_s { struct types_opts { enum options { rrc_reject, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4727,20 +4414,16 @@ struct rrc_reject_s { // getters rrc_reject_ies_s& rrc_reject() { - assert_choice_type("rrcReject", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_reject, type_, "criticalExtensions"); return c; } const rrc_reject_ies_s& rrc_reject() const { - assert_choice_type("rrcReject", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_reject_ies_s& set_rrc_reject() - { - set(types::rrc_reject); + assert_choice_type(types::rrc_reject, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_reject_ies_s& set_rrc_reject(); + void set_crit_exts_future(); private: types type_; @@ -4762,7 +4445,7 @@ struct rrc_setup_s { struct types_opts { enum options { rrc_setup, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4776,20 +4459,16 @@ struct rrc_setup_s { // getters rrc_setup_ies_s& rrc_setup() { - assert_choice_type("rrcSetup", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_setup, type_, "criticalExtensions"); return c; } const rrc_setup_ies_s& rrc_setup() const { - assert_choice_type("rrcSetup", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_setup, type_, "criticalExtensions"); return c; } - rrc_setup_ies_s& set_rrc_setup() - { - set(types::rrc_setup); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_setup_ies_s& set_rrc_setup(); + void set_crit_exts_future(); private: types type_; @@ -4812,7 +4491,7 @@ struct dl_ccch_msg_type_c { struct types_opts { enum options { rrc_reject, rrc_setup, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4829,36 +4508,28 @@ struct dl_ccch_msg_type_c { // getters rrc_reject_s& rrc_reject() { - assert_choice_type("rrcReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reject, type_, "c1"); return c.get(); } rrc_setup_s& rrc_setup() { - assert_choice_type("rrcSetup", type_.to_string(), "c1"); + assert_choice_type(types::rrc_setup, type_, "c1"); return c.get(); } const rrc_reject_s& rrc_reject() const { - assert_choice_type("rrcReject", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reject, type_, "c1"); return c.get(); } const rrc_setup_s& rrc_setup() const { - assert_choice_type("rrcSetup", type_.to_string(), "c1"); - return c.get(); - } - rrc_reject_s& set_rrc_reject() - { - set(types::rrc_reject); - return c.get(); - } - rrc_setup_s& set_rrc_setup() - { - set(types::rrc_setup); + assert_choice_type(types::rrc_setup, type_, "c1"); return c.get(); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_reject_s& set_rrc_reject(); + rrc_setup_s& set_rrc_setup(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -4870,7 +4541,7 @@ struct dl_ccch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4885,20 +4556,16 @@ struct dl_ccch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "DL-CCCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -4922,7 +4589,7 @@ struct csi_rs_res_mob_s { enum options { ms4, ms5, ms10, ms20, ms40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4940,79 +4607,59 @@ struct csi_rs_res_mob_s { // getters uint8_t& ms4() { - assert_choice_type("ms4", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms4, type_, "slotConfig"); return c.get(); } uint8_t& ms5() { - assert_choice_type("ms5", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms5, type_, "slotConfig"); return c.get(); } uint8_t& ms10() { - assert_choice_type("ms10", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms10, type_, "slotConfig"); return c.get(); } uint8_t& ms20() { - assert_choice_type("ms20", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms20, type_, "slotConfig"); return c.get(); } uint16_t& ms40() { - assert_choice_type("ms40", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms40, type_, "slotConfig"); return c.get(); } const uint8_t& ms4() const { - assert_choice_type("ms4", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms4, type_, "slotConfig"); return c.get(); } const uint8_t& ms5() const { - assert_choice_type("ms5", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms5, type_, "slotConfig"); return c.get(); } const uint8_t& ms10() const { - assert_choice_type("ms10", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms10, type_, "slotConfig"); return c.get(); } const uint8_t& ms20() const { - assert_choice_type("ms20", type_.to_string(), "slotConfig"); + assert_choice_type(types::ms20, type_, "slotConfig"); return c.get(); } const uint16_t& ms40() const { - assert_choice_type("ms40", type_.to_string(), "slotConfig"); - return c.get(); - } - uint8_t& set_ms4() - { - set(types::ms4); - return c.get(); - } - uint8_t& set_ms5() - { - set(types::ms5); - return c.get(); - } - uint8_t& set_ms10() - { - set(types::ms10); - return c.get(); - } - uint8_t& set_ms20() - { - set(types::ms20); - return c.get(); - } - uint16_t& set_ms40() - { - set(types::ms40); + assert_choice_type(types::ms40, type_, "slotConfig"); return c.get(); } + uint8_t& set_ms4(); + uint8_t& set_ms5(); + uint8_t& set_ms10(); + uint8_t& set_ms20(); + uint16_t& set_ms40(); private: types type_; @@ -5029,7 +4676,7 @@ struct csi_rs_res_mob_s { enum options { row1, row2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5047,34 +4694,26 @@ struct csi_rs_res_mob_s { // getters fixed_bitstring<4>& row1() { - assert_choice_type("row1", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row1, type_, "frequencyDomainAllocation"); return c.get >(); } fixed_bitstring<12>& row2() { - assert_choice_type("row2", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row2, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<4>& row1() const { - assert_choice_type("row1", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row1, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<12>& row2() const { - assert_choice_type("row2", type_.to_string(), "frequencyDomainAllocation"); - return c.get >(); - } - fixed_bitstring<4>& set_row1() - { - set(types::row1); - return c.get >(); - } - fixed_bitstring<12>& set_row2() - { - set(types::row2); + assert_choice_type(types::row2, type_, "frequencyDomainAllocation"); return c.get >(); } + fixed_bitstring<4>& set_row1(); + fixed_bitstring<12>& set_row2(); private: types type_; @@ -5107,7 +4746,7 @@ struct csi_rs_cell_mob_s { enum options { size24, size48, size96, size192, size264, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nrof_prbs_e_; @@ -5120,7 +4759,7 @@ struct csi_rs_cell_mob_s { enum options { d1, d3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated density_e_; @@ -5213,7 +4852,7 @@ struct filt_coef_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated filt_coef_e; @@ -5235,7 +4874,7 @@ struct meas_trigger_quant_c { struct types_opts { enum options { rsrp, rsrq, sinr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5252,49 +4891,37 @@ struct meas_trigger_quant_c { // getters uint8_t& rsrp() { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantity"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantity"); return c.get(); } uint8_t& rsrq() { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantity"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantity"); return c.get(); } uint8_t& sinr() { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantity"); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantity"); return c.get(); } const uint8_t& rsrp() const { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantity"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantity"); return c.get(); } const uint8_t& rsrq() const { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantity"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantity"); return c.get(); } const uint8_t& sinr() const { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantity"); - return c.get(); - } - uint8_t& set_rsrp() - { - set(types::rsrp); - return c.get(); - } - uint8_t& set_rsrq() - { - set(types::rsrq); - return c.get(); - } - uint8_t& set_sinr() - { - set(types::sinr); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantity"); return c.get(); } + uint8_t& set_rsrp(); + uint8_t& set_rsrq(); + uint8_t& set_sinr(); private: types type_; @@ -5308,7 +4935,7 @@ struct meas_trigger_quant_eutra_c { struct types_opts { enum options { rsrp, rsrq, sinr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5325,49 +4952,37 @@ struct meas_trigger_quant_eutra_c { // getters uint8_t& rsrp() { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantityEUTRA"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } uint8_t& rsrq() { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantityEUTRA"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } uint8_t& sinr() { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantityEUTRA"); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } const uint8_t& rsrp() const { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantityEUTRA"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } const uint8_t& rsrq() const { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantityEUTRA"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } const uint8_t& sinr() const { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantityEUTRA"); - return c.get(); - } - uint8_t& set_rsrp() - { - set(types::rsrp); - return c.get(); - } - uint8_t& set_rsrq() - { - set(types::rsrq); - return c.get(); - } - uint8_t& set_sinr() - { - set(types::sinr); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantityEUTRA"); return c.get(); } + uint8_t& set_rsrp(); + uint8_t& set_rsrq(); + uint8_t& set_sinr(); private: types type_; @@ -5381,7 +4996,7 @@ struct meas_trigger_quant_offset_c { struct types_opts { enum options { rsrp, rsrq, sinr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5398,49 +5013,37 @@ struct meas_trigger_quant_offset_c { // getters int8_t& rsrp() { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantityOffset"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantityOffset"); return c.get(); } int8_t& rsrq() { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantityOffset"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantityOffset"); return c.get(); } int8_t& sinr() { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantityOffset"); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantityOffset"); return c.get(); } const int8_t& rsrp() const { - assert_choice_type("rsrp", type_.to_string(), "MeasTriggerQuantityOffset"); + assert_choice_type(types::rsrp, type_, "MeasTriggerQuantityOffset"); return c.get(); } const int8_t& rsrq() const { - assert_choice_type("rsrq", type_.to_string(), "MeasTriggerQuantityOffset"); + assert_choice_type(types::rsrq, type_, "MeasTriggerQuantityOffset"); return c.get(); } const int8_t& sinr() const { - assert_choice_type("sinr", type_.to_string(), "MeasTriggerQuantityOffset"); - return c.get(); - } - int8_t& set_rsrp() - { - set(types::rsrp); - return c.get(); - } - int8_t& set_rsrq() - { - set(types::rsrq); - return c.get(); - } - int8_t& set_sinr() - { - set(types::sinr); + assert_choice_type(types::sinr, type_, "MeasTriggerQuantityOffset"); return c.get(); } + int8_t& set_rsrp(); + int8_t& set_rsrq(); + int8_t& set_sinr(); private: types type_; @@ -5453,7 +5056,7 @@ private: struct nr_rs_type_opts { enum options { ssb, csi_rs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated nr_rs_type_e; @@ -5478,7 +5081,7 @@ struct report_interv_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated report_interv_e; @@ -5522,7 +5125,7 @@ struct time_to_trigger_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated time_to_trigger_e; @@ -5604,7 +5207,7 @@ struct event_trigger_cfg_s { enum options { event_a1, event_a2, event_a3, event_a4, event_a5, event_a6, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5622,94 +5225,70 @@ struct event_trigger_cfg_s { // getters event_a1_s_& event_a1() { - assert_choice_type("eventA1", type_.to_string(), "eventId"); + assert_choice_type(types::event_a1, type_, "eventId"); return c.get(); } event_a2_s_& event_a2() { - assert_choice_type("eventA2", type_.to_string(), "eventId"); + assert_choice_type(types::event_a2, type_, "eventId"); return c.get(); } event_a3_s_& event_a3() { - assert_choice_type("eventA3", type_.to_string(), "eventId"); + assert_choice_type(types::event_a3, type_, "eventId"); return c.get(); } event_a4_s_& event_a4() { - assert_choice_type("eventA4", type_.to_string(), "eventId"); + assert_choice_type(types::event_a4, type_, "eventId"); return c.get(); } event_a5_s_& event_a5() { - assert_choice_type("eventA5", type_.to_string(), "eventId"); + assert_choice_type(types::event_a5, type_, "eventId"); return c.get(); } event_a6_s_& event_a6() { - assert_choice_type("eventA6", type_.to_string(), "eventId"); + assert_choice_type(types::event_a6, type_, "eventId"); return c.get(); } const event_a1_s_& event_a1() const { - assert_choice_type("eventA1", type_.to_string(), "eventId"); + assert_choice_type(types::event_a1, type_, "eventId"); return c.get(); } const event_a2_s_& event_a2() const { - assert_choice_type("eventA2", type_.to_string(), "eventId"); + assert_choice_type(types::event_a2, type_, "eventId"); return c.get(); } const event_a3_s_& event_a3() const { - assert_choice_type("eventA3", type_.to_string(), "eventId"); + assert_choice_type(types::event_a3, type_, "eventId"); return c.get(); } const event_a4_s_& event_a4() const { - assert_choice_type("eventA4", type_.to_string(), "eventId"); + assert_choice_type(types::event_a4, type_, "eventId"); return c.get(); } const event_a5_s_& event_a5() const { - assert_choice_type("eventA5", type_.to_string(), "eventId"); + assert_choice_type(types::event_a5, type_, "eventId"); return c.get(); } const event_a6_s_& event_a6() const { - assert_choice_type("eventA6", type_.to_string(), "eventId"); - return c.get(); - } - event_a1_s_& set_event_a1() - { - set(types::event_a1); - return c.get(); - } - event_a2_s_& set_event_a2() - { - set(types::event_a2); - return c.get(); - } - event_a3_s_& set_event_a3() - { - set(types::event_a3); - return c.get(); - } - event_a4_s_& set_event_a4() - { - set(types::event_a4); - return c.get(); - } - event_a5_s_& set_event_a5() - { - set(types::event_a5); - return c.get(); - } - event_a6_s_& set_event_a6() - { - set(types::event_a6); + assert_choice_type(types::event_a6, type_, "eventId"); return c.get(); } + event_a1_s_& set_event_a1(); + event_a2_s_& set_event_a2(); + event_a3_s_& set_event_a3(); + event_a4_s_& set_event_a4(); + event_a5_s_& set_event_a5(); + event_a6_s_& set_event_a6(); private: types type_; @@ -5721,7 +5300,7 @@ struct event_trigger_cfg_s { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -5772,7 +5351,7 @@ struct event_trigger_cfg_inter_rat_s { enum options { event_b1, event_b2, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -5790,34 +5369,26 @@ struct event_trigger_cfg_inter_rat_s { // getters event_b1_s_& event_b1() { - assert_choice_type("eventB1", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1, type_, "eventId"); return c.get(); } event_b2_s_& event_b2() { - assert_choice_type("eventB2", type_.to_string(), "eventId"); + assert_choice_type(types::event_b2, type_, "eventId"); return c.get(); } const event_b1_s_& event_b1() const { - assert_choice_type("eventB1", type_.to_string(), "eventId"); + assert_choice_type(types::event_b1, type_, "eventId"); return c.get(); } const event_b2_s_& event_b2() const { - assert_choice_type("eventB2", type_.to_string(), "eventId"); - return c.get(); - } - event_b1_s_& set_event_b1() - { - set(types::event_b1); - return c.get(); - } - event_b2_s_& set_event_b2() - { - set(types::event_b2); + assert_choice_type(types::event_b2, type_, "eventId"); return c.get(); } + event_b1_s_& set_event_b1(); + event_b2_s_& set_event_b2(); private: types type_; @@ -5829,7 +5400,7 @@ struct event_trigger_cfg_inter_rat_s { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -5888,7 +5459,7 @@ struct periodical_report_cfg_s { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -5920,7 +5491,7 @@ struct periodical_report_cfg_inter_rat_s { enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_e_; @@ -6031,7 +5602,7 @@ struct ssb_mtc2_s { enum options { sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_e_; @@ -6053,7 +5624,7 @@ struct mrdc_secondary_cell_group_cfg_s { struct types_opts { enum options { nr_scg, eutra_scg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6070,34 +5641,26 @@ struct mrdc_secondary_cell_group_cfg_s { // getters dyn_octstring& nr_scg() { - assert_choice_type("nr-SCG", type_.to_string(), "mrdc-SecondaryCellGroup"); + assert_choice_type(types::nr_scg, type_, "mrdc-SecondaryCellGroup"); return c.get(); } dyn_octstring& eutra_scg() { - assert_choice_type("eutra-SCG", type_.to_string(), "mrdc-SecondaryCellGroup"); + assert_choice_type(types::eutra_scg, type_, "mrdc-SecondaryCellGroup"); return c.get(); } const dyn_octstring& nr_scg() const { - assert_choice_type("nr-SCG", type_.to_string(), "mrdc-SecondaryCellGroup"); + assert_choice_type(types::nr_scg, type_, "mrdc-SecondaryCellGroup"); return c.get(); } const dyn_octstring& eutra_scg() const { - assert_choice_type("eutra-SCG", type_.to_string(), "mrdc-SecondaryCellGroup"); - return c.get(); - } - dyn_octstring& set_nr_scg() - { - set(types::nr_scg); - return c.get(); - } - dyn_octstring& set_eutra_scg() - { - set(types::eutra_scg); + assert_choice_type(types::eutra_scg, type_, "mrdc-SecondaryCellGroup"); return c.get(); } + dyn_octstring& set_nr_scg(); + dyn_octstring& set_eutra_scg(); private: types type_; @@ -6153,7 +5716,7 @@ struct meas_obj_nr_s { enum options { sf160, sf256, sf320, sf512, sf640, sf1024, sf1280, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated meas_cycle_scell_e_; @@ -6230,9 +5793,9 @@ struct overheat_assist_cfg_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated overheat_ind_prohibit_timer_e_; @@ -6292,7 +5855,7 @@ struct report_cfg_inter_rat_s { struct types_opts { enum options { periodical, event_triggered, report_cgi, /*...*/ report_sftd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6309,64 +5872,48 @@ struct report_cfg_inter_rat_s { // getters periodical_report_cfg_inter_rat_s& periodical() { - assert_choice_type("periodical", type_.to_string(), "reportType"); + assert_choice_type(types::periodical, type_, "reportType"); return c.get(); } event_trigger_cfg_inter_rat_s& event_triggered() { - assert_choice_type("eventTriggered", type_.to_string(), "reportType"); + assert_choice_type(types::event_triggered, type_, "reportType"); return c.get(); } report_cgi_eutra_s& report_cgi() { - assert_choice_type("reportCGI", type_.to_string(), "reportType"); + assert_choice_type(types::report_cgi, type_, "reportType"); return c.get(); } report_sftd_eutra_s& report_sftd() { - assert_choice_type("reportSFTD", type_.to_string(), "reportType"); + assert_choice_type(types::report_sftd, type_, "reportType"); return c.get(); } const periodical_report_cfg_inter_rat_s& periodical() const { - assert_choice_type("periodical", type_.to_string(), "reportType"); + assert_choice_type(types::periodical, type_, "reportType"); return c.get(); } const event_trigger_cfg_inter_rat_s& event_triggered() const { - assert_choice_type("eventTriggered", type_.to_string(), "reportType"); + assert_choice_type(types::event_triggered, type_, "reportType"); return c.get(); } const report_cgi_eutra_s& report_cgi() const { - assert_choice_type("reportCGI", type_.to_string(), "reportType"); + assert_choice_type(types::report_cgi, type_, "reportType"); return c.get(); } const report_sftd_eutra_s& report_sftd() const { - assert_choice_type("reportSFTD", type_.to_string(), "reportType"); - return c.get(); - } - periodical_report_cfg_inter_rat_s& set_periodical() - { - set(types::periodical); - return c.get(); - } - event_trigger_cfg_inter_rat_s& set_event_triggered() - { - set(types::event_triggered); - return c.get(); - } - report_cgi_eutra_s& set_report_cgi() - { - set(types::report_cgi); - return c.get(); - } - report_sftd_eutra_s& set_report_sftd() - { - set(types::report_sftd); + assert_choice_type(types::report_sftd, type_, "reportType"); return c.get(); } + periodical_report_cfg_inter_rat_s& set_periodical(); + event_trigger_cfg_inter_rat_s& set_event_triggered(); + report_cgi_eutra_s& set_report_cgi(); + report_sftd_eutra_s& set_report_sftd(); private: types type_; @@ -6394,7 +5941,7 @@ struct report_cfg_nr_s { struct types_opts { enum options { periodical, event_triggered, /*...*/ report_cgi, report_sftd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6411,64 +5958,48 @@ struct report_cfg_nr_s { // getters periodical_report_cfg_s& periodical() { - assert_choice_type("periodical", type_.to_string(), "reportType"); + assert_choice_type(types::periodical, type_, "reportType"); return c.get(); } event_trigger_cfg_s& event_triggered() { - assert_choice_type("eventTriggered", type_.to_string(), "reportType"); + assert_choice_type(types::event_triggered, type_, "reportType"); return c.get(); } report_cgi_s& report_cgi() { - assert_choice_type("reportCGI", type_.to_string(), "reportType"); + assert_choice_type(types::report_cgi, type_, "reportType"); return c.get(); } report_sftd_nr_s& report_sftd() { - assert_choice_type("reportSFTD", type_.to_string(), "reportType"); + assert_choice_type(types::report_sftd, type_, "reportType"); return c.get(); } const periodical_report_cfg_s& periodical() const { - assert_choice_type("periodical", type_.to_string(), "reportType"); + assert_choice_type(types::periodical, type_, "reportType"); return c.get(); } const event_trigger_cfg_s& event_triggered() const { - assert_choice_type("eventTriggered", type_.to_string(), "reportType"); + assert_choice_type(types::event_triggered, type_, "reportType"); return c.get(); } const report_cgi_s& report_cgi() const { - assert_choice_type("reportCGI", type_.to_string(), "reportType"); + assert_choice_type(types::report_cgi, type_, "reportType"); return c.get(); } const report_sftd_nr_s& report_sftd() const { - assert_choice_type("reportSFTD", type_.to_string(), "reportType"); - return c.get(); - } - periodical_report_cfg_s& set_periodical() - { - set(types::periodical); - return c.get(); - } - event_trigger_cfg_s& set_event_triggered() - { - set(types::event_triggered); - return c.get(); - } - report_cgi_s& set_report_cgi() - { - set(types::report_cgi); - return c.get(); - } - report_sftd_nr_s& set_report_sftd() - { - set(types::report_sftd); + assert_choice_type(types::report_sftd, type_, "reportType"); return c.get(); } + periodical_report_cfg_s& set_periodical(); + event_trigger_cfg_s& set_event_triggered(); + report_cgi_s& set_report_cgi(); + report_sftd_nr_s& set_report_sftd(); private: types type_; @@ -6518,16 +6049,16 @@ struct gap_cfg_s { enum options { ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mgl_e_; struct mgrp_opts { enum options { ms20, ms40, ms80, ms160, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mgrp_e_; @@ -6535,16 +6066,16 @@ struct gap_cfg_s { enum options { ms0, ms0dot25, ms0dot5, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mgta_e_; struct ref_serv_cell_ind_opts { enum options { pcell, pscell, mcg_fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ref_serv_cell_ind_e_; @@ -6571,9 +6102,9 @@ struct meas_gap_sharing_scheme_opts { enum options { scheme00, scheme01, scheme10, scheme11, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated meas_gap_sharing_scheme_e; @@ -6595,7 +6126,7 @@ struct meas_obj_to_add_mod_s { struct types_opts { enum options { meas_obj_nr, /*...*/ meas_obj_eutra, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6612,34 +6143,26 @@ struct meas_obj_to_add_mod_s { // getters meas_obj_nr_s& meas_obj_nr() { - assert_choice_type("measObjectNR", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_nr, type_, "measObject"); return c.get(); } meas_obj_eutra_s& meas_obj_eutra() { - assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_eutra, type_, "measObject"); return c.get(); } const meas_obj_nr_s& meas_obj_nr() const { - assert_choice_type("measObjectNR", type_.to_string(), "measObject"); + assert_choice_type(types::meas_obj_nr, type_, "measObject"); return c.get(); } const meas_obj_eutra_s& meas_obj_eutra() const { - assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject"); - return c.get(); - } - meas_obj_nr_s& set_meas_obj_nr() - { - set(types::meas_obj_nr); - return c.get(); - } - meas_obj_eutra_s& set_meas_obj_eutra() - { - set(types::meas_obj_eutra); + assert_choice_type(types::meas_obj_eutra, type_, "measObject"); return c.get(); } + meas_obj_nr_s& set_meas_obj_nr(); + meas_obj_eutra_s& set_meas_obj_eutra(); private: types type_; @@ -6693,7 +6216,7 @@ struct quant_cfg_nr_s { struct rat_type_opts { enum options { nr, eutra_nr, eutra, spare1, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rat_type_e; @@ -6719,7 +6242,7 @@ struct report_cfg_to_add_mod_s { struct types_opts { enum options { report_cfg_nr, /*...*/ report_cfg_inter_rat, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6736,34 +6259,26 @@ struct report_cfg_to_add_mod_s { // getters report_cfg_nr_s& report_cfg_nr() { - assert_choice_type("reportConfigNR", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_nr, type_, "reportConfig"); return c.get(); } report_cfg_inter_rat_s& report_cfg_inter_rat() { - assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_inter_rat, type_, "reportConfig"); return c.get(); } const report_cfg_nr_s& report_cfg_nr() const { - assert_choice_type("reportConfigNR", type_.to_string(), "reportConfig"); + assert_choice_type(types::report_cfg_nr, type_, "reportConfig"); return c.get(); } const report_cfg_inter_rat_s& report_cfg_inter_rat() const { - assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig"); - return c.get(); - } - report_cfg_nr_s& set_report_cfg_nr() - { - set(types::report_cfg_nr); - return c.get(); - } - report_cfg_inter_rat_s& set_report_cfg_inter_rat() - { - set(types::report_cfg_inter_rat); + assert_choice_type(types::report_cfg_inter_rat, type_, "reportConfig"); return c.get(); } + report_cfg_nr_s& set_report_cfg_nr(); + report_cfg_inter_rat_s& set_report_cfg_inter_rat(); private: types type_; @@ -6882,9 +6397,9 @@ struct other_cfg_s { enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated delay_budget_report_prohibit_timer_e_; @@ -6894,7 +6409,7 @@ struct other_cfg_s { struct types_opts { enum options { release, setup, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6908,20 +6423,16 @@ struct other_cfg_s { // getters setup_s_& setup() { - assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig"); + assert_choice_type(types::setup, type_, "delayBudgetReportingConfig"); return c; } const setup_s_& setup() const { - assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig"); - return c; - } - void set_release() { set(types::release); } - setup_s_& set_setup() - { - set(types::setup); + assert_choice_type(types::setup, type_, "delayBudgetReportingConfig"); return c; } + void set_release(); + setup_s_& set_setup(); private: types type_; @@ -6943,7 +6454,7 @@ struct periodic_rnau_timer_value_opts { enum options { min5, min10, min20, min30, min60, min120, min360, min720, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated periodic_rnau_timer_value_e; @@ -6971,7 +6482,7 @@ struct ran_notif_area_info_c { struct types_opts { enum options { cell_list, ran_area_cfg_list, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6988,34 +6499,26 @@ struct ran_notif_area_info_c { // getters plmn_ran_area_cell_list_l& cell_list() { - assert_choice_type("cellList", type_.to_string(), "RAN-NotificationAreaInfo"); + assert_choice_type(types::cell_list, type_, "RAN-NotificationAreaInfo"); return c.get(); } plmn_ran_area_cfg_list_l& ran_area_cfg_list() { - assert_choice_type("ran-AreaConfigList", type_.to_string(), "RAN-NotificationAreaInfo"); + assert_choice_type(types::ran_area_cfg_list, type_, "RAN-NotificationAreaInfo"); return c.get(); } const plmn_ran_area_cell_list_l& cell_list() const { - assert_choice_type("cellList", type_.to_string(), "RAN-NotificationAreaInfo"); + assert_choice_type(types::cell_list, type_, "RAN-NotificationAreaInfo"); return c.get(); } const plmn_ran_area_cfg_list_l& ran_area_cfg_list() const { - assert_choice_type("ran-AreaConfigList", type_.to_string(), "RAN-NotificationAreaInfo"); - return c.get(); - } - plmn_ran_area_cell_list_l& set_cell_list() - { - set(types::cell_list); - return c.get(); - } - plmn_ran_area_cfg_list_l& set_ran_area_cfg_list() - { - set(types::ran_area_cfg_list); + assert_choice_type(types::ran_area_cfg_list, type_, "RAN-NotificationAreaInfo"); return c.get(); } + plmn_ran_area_cell_list_l& set_cell_list(); + plmn_ran_area_cfg_list_l& set_ran_area_cfg_list(); private: types type_; @@ -7043,7 +6546,7 @@ struct redirected_carrier_info_eutra_s { enum options { epc, five_gc, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cn_type_e_; @@ -7085,7 +6588,7 @@ struct cell_resel_priorities_s { enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t320_e_; @@ -7115,7 +6618,7 @@ struct meas_cfg_s { struct types_opts { enum options { ssb_rsrp, csi_rsrp, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7132,34 +6635,26 @@ struct meas_cfg_s { // getters uint8_t& ssb_rsrp() { - assert_choice_type("ssb-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::ssb_rsrp, type_, "s-MeasureConfig"); return c.get(); } uint8_t& csi_rsrp() { - assert_choice_type("csi-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::csi_rsrp, type_, "s-MeasureConfig"); return c.get(); } const uint8_t& ssb_rsrp() const { - assert_choice_type("ssb-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::ssb_rsrp, type_, "s-MeasureConfig"); return c.get(); } const uint8_t& csi_rsrp() const { - assert_choice_type("csi-RSRP", type_.to_string(), "s-MeasureConfig"); - return c.get(); - } - uint8_t& set_ssb_rsrp() - { - set(types::ssb_rsrp); - return c.get(); - } - uint8_t& set_csi_rsrp() - { - set(types::csi_rsrp); + assert_choice_type(types::csi_rsrp, type_, "s-MeasureConfig"); return c.get(); } + uint8_t& set_ssb_rsrp(); + uint8_t& set_csi_rsrp(); private: types type_; @@ -7256,7 +6751,7 @@ struct redirected_carrier_info_c { struct types_opts { enum options { nr, eutra, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7273,34 +6768,26 @@ struct redirected_carrier_info_c { // getters carrier_info_nr_s& nr() { - assert_choice_type("nr", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::nr, type_, "RedirectedCarrierInfo"); return c.get(); } redirected_carrier_info_eutra_s& eutra() { - assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::eutra, type_, "RedirectedCarrierInfo"); return c.get(); } const carrier_info_nr_s& nr() const { - assert_choice_type("nr", type_.to_string(), "RedirectedCarrierInfo"); + assert_choice_type(types::nr, type_, "RedirectedCarrierInfo"); return c.get(); } const redirected_carrier_info_eutra_s& eutra() const { - assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo"); - return c.get(); - } - carrier_info_nr_s& set_nr() - { - set(types::nr); - return c.get(); - } - redirected_carrier_info_eutra_s& set_eutra() - { - set(types::eutra); + assert_choice_type(types::eutra, type_, "RedirectedCarrierInfo"); return c.get(); } + carrier_info_nr_s& set_nr(); + redirected_carrier_info_eutra_s& set_eutra(); private: types type_; @@ -7375,7 +6862,7 @@ struct mob_from_nr_cmd_ies_s { struct target_rat_type_opts { enum options { eutra, spare3, spare2, spare1, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated target_rat_type_e_; @@ -7432,14 +6919,14 @@ struct rrc_release_ies_s { struct depriorit_type_opts { enum options { freq, nr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated depriorit_type_e_; struct depriorit_timer_opts { enum options { min5, min10, min15, min30, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated depriorit_timer_e_; @@ -7522,7 +7009,7 @@ struct counter_check_s { struct types_opts { enum options { counter_check, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7536,20 +7023,16 @@ struct counter_check_s { // getters counter_check_ies_s& counter_check() { - assert_choice_type("counterCheck", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::counter_check, type_, "criticalExtensions"); return c; } const counter_check_ies_s& counter_check() const { - assert_choice_type("counterCheck", type_.to_string(), "criticalExtensions"); - return c; - } - counter_check_ies_s& set_counter_check() - { - set(types::counter_check); + assert_choice_type(types::counter_check, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + counter_check_ies_s& set_counter_check(); + void set_crit_exts_future(); private: types type_; @@ -7572,7 +7055,7 @@ struct dl_info_transfer_s { struct types_opts { enum options { dl_info_transfer, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7586,20 +7069,16 @@ struct dl_info_transfer_s { // getters dl_info_transfer_ies_s& dl_info_transfer() { - assert_choice_type("dlInformationTransfer", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::dl_info_transfer, type_, "criticalExtensions"); return c; } const dl_info_transfer_ies_s& dl_info_transfer() const { - assert_choice_type("dlInformationTransfer", type_.to_string(), "criticalExtensions"); - return c; - } - dl_info_transfer_ies_s& set_dl_info_transfer() - { - set(types::dl_info_transfer); + assert_choice_type(types::dl_info_transfer, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + dl_info_transfer_ies_s& set_dl_info_transfer(); + void set_crit_exts_future(); private: types type_; @@ -7622,7 +7101,7 @@ struct mob_from_nr_cmd_s { struct types_opts { enum options { mob_from_nr_cmd, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7636,20 +7115,16 @@ struct mob_from_nr_cmd_s { // getters mob_from_nr_cmd_ies_s& mob_from_nr_cmd() { - assert_choice_type("mobilityFromNRCommand", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::mob_from_nr_cmd, type_, "criticalExtensions"); return c; } const mob_from_nr_cmd_ies_s& mob_from_nr_cmd() const { - assert_choice_type("mobilityFromNRCommand", type_.to_string(), "criticalExtensions"); - return c; - } - mob_from_nr_cmd_ies_s& set_mob_from_nr_cmd() - { - set(types::mob_from_nr_cmd); + assert_choice_type(types::mob_from_nr_cmd, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + mob_from_nr_cmd_ies_s& set_mob_from_nr_cmd(); + void set_crit_exts_future(); private: types type_; @@ -7672,7 +7147,7 @@ struct rrc_recfg_s { struct types_opts { enum options { rrc_recfg, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7686,20 +7161,16 @@ struct rrc_recfg_s { // getters rrc_recfg_ies_s& rrc_recfg() { - assert_choice_type("rrcReconfiguration", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_recfg, type_, "criticalExtensions"); return c; } const rrc_recfg_ies_s& rrc_recfg() const { - assert_choice_type("rrcReconfiguration", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_recfg, type_, "criticalExtensions"); return c; } - rrc_recfg_ies_s& set_rrc_recfg() - { - set(types::rrc_recfg); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_recfg_ies_s& set_rrc_recfg(); + void set_crit_exts_future(); private: types type_; @@ -7722,7 +7193,7 @@ struct rrc_reest_s { struct types_opts { enum options { rrc_reest, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7736,20 +7207,16 @@ struct rrc_reest_s { // getters rrc_reest_ies_s& rrc_reest() { - assert_choice_type("rrcReestablishment", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_reest, type_, "criticalExtensions"); return c; } const rrc_reest_ies_s& rrc_reest() const { - assert_choice_type("rrcReestablishment", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_reest_ies_s& set_rrc_reest() - { - set(types::rrc_reest); + assert_choice_type(types::rrc_reest, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_reest_ies_s& set_rrc_reest(); + void set_crit_exts_future(); private: types type_; @@ -7772,7 +7239,7 @@ struct rrc_release_s { struct types_opts { enum options { rrc_release, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7786,20 +7253,16 @@ struct rrc_release_s { // getters rrc_release_ies_s& rrc_release() { - assert_choice_type("rrcRelease", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_release, type_, "criticalExtensions"); return c; } const rrc_release_ies_s& rrc_release() const { - assert_choice_type("rrcRelease", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_release_ies_s& set_rrc_release() - { - set(types::rrc_release); + assert_choice_type(types::rrc_release, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_release_ies_s& set_rrc_release(); + void set_crit_exts_future(); private: types type_; @@ -7822,7 +7285,7 @@ struct rrc_resume_s { struct types_opts { enum options { rrc_resume, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7836,20 +7299,16 @@ struct rrc_resume_s { // getters rrc_resume_ies_s& rrc_resume() { - assert_choice_type("rrcResume", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_resume, type_, "criticalExtensions"); return c; } const rrc_resume_ies_s& rrc_resume() const { - assert_choice_type("rrcResume", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_resume_ies_s& set_rrc_resume() - { - set(types::rrc_resume); + assert_choice_type(types::rrc_resume, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_resume_ies_s& set_rrc_resume(); + void set_crit_exts_future(); private: types type_; @@ -7872,7 +7331,7 @@ struct security_mode_cmd_s { struct types_opts { enum options { security_mode_cmd, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7886,20 +7345,16 @@ struct security_mode_cmd_s { // getters security_mode_cmd_ies_s& security_mode_cmd() { - assert_choice_type("securityModeCommand", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_cmd, type_, "criticalExtensions"); return c; } const security_mode_cmd_ies_s& security_mode_cmd() const { - assert_choice_type("securityModeCommand", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_cmd, type_, "criticalExtensions"); return c; } - security_mode_cmd_ies_s& set_security_mode_cmd() - { - set(types::security_mode_cmd); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + security_mode_cmd_ies_s& set_security_mode_cmd(); + void set_crit_exts_future(); private: types type_; @@ -7922,7 +7377,7 @@ struct ue_cap_enquiry_s { struct types_opts { enum options { ue_cap_enquiry, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7936,20 +7391,16 @@ struct ue_cap_enquiry_s { // getters ue_cap_enquiry_ies_s& ue_cap_enquiry() { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ue_cap_enquiry, type_, "criticalExtensions"); return c; } const ue_cap_enquiry_ies_s& ue_cap_enquiry() const { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "criticalExtensions"); - return c; - } - ue_cap_enquiry_ies_s& set_ue_cap_enquiry() - { - set(types::ue_cap_enquiry); + assert_choice_type(types::ue_cap_enquiry, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + ue_cap_enquiry_ies_s& set_ue_cap_enquiry(); + void set_crit_exts_future(); private: types type_; @@ -7990,7 +7441,7 @@ struct dl_dcch_msg_type_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8007,146 +7458,110 @@ struct dl_dcch_msg_type_c { // getters rrc_recfg_s& rrc_recfg() { - assert_choice_type("rrcReconfiguration", type_.to_string(), "c1"); + assert_choice_type(types::rrc_recfg, type_, "c1"); return c.get(); } rrc_resume_s& rrc_resume() { - assert_choice_type("rrcResume", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume, type_, "c1"); return c.get(); } rrc_release_s& rrc_release() { - assert_choice_type("rrcRelease", type_.to_string(), "c1"); + assert_choice_type(types::rrc_release, type_, "c1"); return c.get(); } rrc_reest_s& rrc_reest() { - assert_choice_type("rrcReestablishment", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest, type_, "c1"); return c.get(); } security_mode_cmd_s& security_mode_cmd() { - assert_choice_type("securityModeCommand", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd, type_, "c1"); return c.get(); } dl_info_transfer_s& dl_info_transfer() { - assert_choice_type("dlInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer, type_, "c1"); return c.get(); } ue_cap_enquiry_s& ue_cap_enquiry() { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry, type_, "c1"); return c.get(); } counter_check_s& counter_check() { - assert_choice_type("counterCheck", type_.to_string(), "c1"); + assert_choice_type(types::counter_check, type_, "c1"); return c.get(); } mob_from_nr_cmd_s& mob_from_nr_cmd() { - assert_choice_type("mobilityFromNRCommand", type_.to_string(), "c1"); + assert_choice_type(types::mob_from_nr_cmd, type_, "c1"); return c.get(); } const rrc_recfg_s& rrc_recfg() const { - assert_choice_type("rrcReconfiguration", type_.to_string(), "c1"); + assert_choice_type(types::rrc_recfg, type_, "c1"); return c.get(); } const rrc_resume_s& rrc_resume() const { - assert_choice_type("rrcResume", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume, type_, "c1"); return c.get(); } const rrc_release_s& rrc_release() const { - assert_choice_type("rrcRelease", type_.to_string(), "c1"); + assert_choice_type(types::rrc_release, type_, "c1"); return c.get(); } const rrc_reest_s& rrc_reest() const { - assert_choice_type("rrcReestablishment", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest, type_, "c1"); return c.get(); } const security_mode_cmd_s& security_mode_cmd() const { - assert_choice_type("securityModeCommand", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_cmd, type_, "c1"); return c.get(); } const dl_info_transfer_s& dl_info_transfer() const { - assert_choice_type("dlInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::dl_info_transfer, type_, "c1"); return c.get(); } const ue_cap_enquiry_s& ue_cap_enquiry() const { - assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_enquiry, type_, "c1"); return c.get(); } const counter_check_s& counter_check() const { - assert_choice_type("counterCheck", type_.to_string(), "c1"); + assert_choice_type(types::counter_check, type_, "c1"); return c.get(); } const mob_from_nr_cmd_s& mob_from_nr_cmd() const { - assert_choice_type("mobilityFromNRCommand", type_.to_string(), "c1"); - return c.get(); - } - rrc_recfg_s& set_rrc_recfg() - { - set(types::rrc_recfg); - return c.get(); - } - rrc_resume_s& set_rrc_resume() - { - set(types::rrc_resume); - return c.get(); - } - rrc_release_s& set_rrc_release() - { - set(types::rrc_release); - return c.get(); - } - rrc_reest_s& set_rrc_reest() - { - set(types::rrc_reest); - return c.get(); - } - security_mode_cmd_s& set_security_mode_cmd() - { - set(types::security_mode_cmd); - return c.get(); - } - dl_info_transfer_s& set_dl_info_transfer() - { - set(types::dl_info_transfer); - return c.get(); - } - ue_cap_enquiry_s& set_ue_cap_enquiry() - { - set(types::ue_cap_enquiry); - return c.get(); - } - counter_check_s& set_counter_check() - { - set(types::counter_check); - return c.get(); - } - mob_from_nr_cmd_s& set_mob_from_nr_cmd() - { - set(types::mob_from_nr_cmd); + assert_choice_type(types::mob_from_nr_cmd, type_, "c1"); return c.get(); } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_recfg_s& set_rrc_recfg(); + rrc_resume_s& set_rrc_resume(); + rrc_release_s& set_rrc_release(); + rrc_reest_s& set_rrc_reest(); + security_mode_cmd_s& set_security_mode_cmd(); + dl_info_transfer_s& set_dl_info_transfer(); + ue_cap_enquiry_s& set_ue_cap_enquiry(); + counter_check_s& set_counter_check(); + mob_from_nr_cmd_s& set_mob_from_nr_cmd(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -8167,7 +7582,7 @@ struct dl_dcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8182,20 +7597,16 @@ struct dl_dcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "DL-DCCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -8218,7 +7629,7 @@ struct paging_ue_id_c { enum options { ng_minus5_g_s_tmsi, full_i_rnti, /*...*/ nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -8236,34 +7647,26 @@ struct paging_ue_id_c { // getters fixed_bitstring<48>& ng_minus5_g_s_tmsi() { - assert_choice_type("ng-5G-S-TMSI", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi, type_, "PagingUE-Identity"); return c.get >(); } fixed_bitstring<40>& full_i_rnti() { - assert_choice_type("fullI-RNTI", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::full_i_rnti, type_, "PagingUE-Identity"); return c.get >(); } const fixed_bitstring<48>& ng_minus5_g_s_tmsi() const { - assert_choice_type("ng-5G-S-TMSI", type_.to_string(), "PagingUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi, type_, "PagingUE-Identity"); return c.get >(); } const fixed_bitstring<40>& full_i_rnti() const { - assert_choice_type("fullI-RNTI", type_.to_string(), "PagingUE-Identity"); - return c.get >(); - } - fixed_bitstring<48>& set_ng_minus5_g_s_tmsi() - { - set(types::ng_minus5_g_s_tmsi); - return c.get >(); - } - fixed_bitstring<40>& set_full_i_rnti() - { - set(types::full_i_rnti); + assert_choice_type(types::full_i_rnti, type_, "PagingUE-Identity"); return c.get >(); } + fixed_bitstring<48>& set_ng_minus5_g_s_tmsi(); + fixed_bitstring<40>& set_full_i_rnti(); private: types type_; @@ -8308,7 +7711,7 @@ struct pcch_msg_type_c { struct types_opts { enum options { paging, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8322,20 +7725,16 @@ struct pcch_msg_type_c { // getters paging_s& paging() { - assert_choice_type("paging", type_.to_string(), "c1"); + assert_choice_type(types::paging, type_, "c1"); return c; } const paging_s& paging() const { - assert_choice_type("paging", type_.to_string(), "c1"); - return c; - } - paging_s& set_paging() - { - set(types::paging); + assert_choice_type(types::paging, type_, "c1"); return c; } - void set_spare1() { set(types::spare1); } + paging_s& set_paging(); + void set_spare1(); private: types type_; @@ -8345,7 +7744,7 @@ struct pcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8360,20 +7759,16 @@ struct pcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); + assert_choice_type(types::c1, type_, "PCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "PCCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -8412,7 +7807,7 @@ struct establishment_cause_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated establishment_cause_e; @@ -8422,7 +7817,7 @@ struct init_ue_id_c { enum options { ng_minus5_g_s_tmsi_part1, random_value, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -8440,34 +7835,26 @@ struct init_ue_id_c { // getters fixed_bitstring<39>& ng_minus5_g_s_tmsi_part1() { - assert_choice_type("ng-5G-S-TMSI-Part1", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part1, type_, "InitialUE-Identity"); return c.get >(); } fixed_bitstring<39>& random_value() { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::random_value, type_, "InitialUE-Identity"); return c.get >(); } const fixed_bitstring<39>& ng_minus5_g_s_tmsi_part1() const { - assert_choice_type("ng-5G-S-TMSI-Part1", type_.to_string(), "InitialUE-Identity"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part1, type_, "InitialUE-Identity"); return c.get >(); } const fixed_bitstring<39>& random_value() const { - assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity"); - return c.get >(); - } - fixed_bitstring<39>& set_ng_minus5_g_s_tmsi_part1() - { - set(types::ng_minus5_g_s_tmsi_part1); - return c.get >(); - } - fixed_bitstring<39>& set_random_value() - { - set(types::random_value); + assert_choice_type(types::random_value, type_, "InitialUE-Identity"); return c.get >(); } + fixed_bitstring<39>& set_ng_minus5_g_s_tmsi_part1(); + fixed_bitstring<39>& set_random_value(); private: types type_; @@ -8492,7 +7879,7 @@ struct reestab_ue_id_s { struct reest_cause_opts { enum options { recfg_fail, ho_fail, other_fail, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated reest_cause_e; @@ -8518,7 +7905,7 @@ struct resume_cause_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated resume_cause_e; @@ -8606,7 +7993,7 @@ struct rrc_sys_info_request_s { struct types_opts { enum options { rrc_sys_info_request, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8620,20 +8007,16 @@ struct rrc_sys_info_request_s { // getters rrc_sys_info_request_ies_s& rrc_sys_info_request() { - assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_sys_info_request, type_, "criticalExtensions"); return c; } const rrc_sys_info_request_ies_s& rrc_sys_info_request() const { - assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_sys_info_request_ies_s& set_rrc_sys_info_request() - { - set(types::rrc_sys_info_request); + assert_choice_type(types::rrc_sys_info_request, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_sys_info_request_ies_s& set_rrc_sys_info_request(); + void set_crit_exts_future(); private: types type_; @@ -8655,7 +8038,7 @@ struct ul_ccch_msg_type_c { struct types_opts { enum options { rrc_setup_request, rrc_resume_request, rrc_reest_request, rrc_sys_info_request, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8672,64 +8055,48 @@ struct ul_ccch_msg_type_c { // getters rrc_setup_request_s& rrc_setup_request() { - assert_choice_type("rrcSetupRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_setup_request, type_, "c1"); return c.get(); } rrc_resume_request_s& rrc_resume_request() { - assert_choice_type("rrcResumeRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_request, type_, "c1"); return c.get(); } rrc_reest_request_s& rrc_reest_request() { - assert_choice_type("rrcReestablishmentRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest_request, type_, "c1"); return c.get(); } rrc_sys_info_request_s& rrc_sys_info_request() { - assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_sys_info_request, type_, "c1"); return c.get(); } const rrc_setup_request_s& rrc_setup_request() const { - assert_choice_type("rrcSetupRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_setup_request, type_, "c1"); return c.get(); } const rrc_resume_request_s& rrc_resume_request() const { - assert_choice_type("rrcResumeRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_request, type_, "c1"); return c.get(); } const rrc_reest_request_s& rrc_reest_request() const { - assert_choice_type("rrcReestablishmentRequest", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest_request, type_, "c1"); return c.get(); } const rrc_sys_info_request_s& rrc_sys_info_request() const { - assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "c1"); - return c.get(); - } - rrc_setup_request_s& set_rrc_setup_request() - { - set(types::rrc_setup_request); - return c.get(); - } - rrc_resume_request_s& set_rrc_resume_request() - { - set(types::rrc_resume_request); - return c.get(); - } - rrc_reest_request_s& set_rrc_reest_request() - { - set(types::rrc_reest_request); - return c.get(); - } - rrc_sys_info_request_s& set_rrc_sys_info_request() - { - set(types::rrc_sys_info_request); + assert_choice_type(types::rrc_sys_info_request, type_, "c1"); return c.get(); } + rrc_setup_request_s& set_rrc_setup_request(); + rrc_resume_request_s& set_rrc_resume_request(); + rrc_reest_request_s& set_rrc_reest_request(); + rrc_sys_info_request_s& set_rrc_sys_info_request(); private: types type_; @@ -8741,7 +8108,7 @@ struct ul_ccch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8756,20 +8123,16 @@ struct ul_ccch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "UL-CCCH-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -8816,7 +8179,7 @@ struct ul_ccch1_msg_type_c { enum options { rrc_resume_request1, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8831,22 +8194,18 @@ struct ul_ccch1_msg_type_c { // getters rrc_resume_request1_s& rrc_resume_request1() { - assert_choice_type("rrcResumeRequest1", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_request1, type_, "c1"); return c; } const rrc_resume_request1_s& rrc_resume_request1() const { - assert_choice_type("rrcResumeRequest1", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_request1, type_, "c1"); return c; } - rrc_resume_request1_s& set_rrc_resume_request1() - { - set(types::rrc_resume_request1); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + rrc_resume_request1_s& set_rrc_resume_request1(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -8856,7 +8215,7 @@ struct ul_ccch1_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8871,20 +8230,16 @@ struct ul_ccch1_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-CCCH1-MessageType"); + assert_choice_type(types::c1, type_, "UL-CCCH1-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-CCCH1-MessageType"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "UL-CCCH1-MessageType"); return c; } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -8922,7 +8277,7 @@ struct plmn_id_eutra_minus5_gc_c { enum options { plmn_id_eutra_minus5_gc, plmn_idx, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated types; @@ -8940,34 +8295,26 @@ struct plmn_id_eutra_minus5_gc_c { // getters plmn_id_s& plmn_id_eutra_minus5_gc() { - assert_choice_type("plmn-Identity-EUTRA-5GC", type_.to_string(), "PLMN-Identity-EUTRA-5GC"); + assert_choice_type(types::plmn_id_eutra_minus5_gc, type_, "PLMN-Identity-EUTRA-5GC"); return c.get(); } uint8_t& plmn_idx() { - assert_choice_type("plmn-index", type_.to_string(), "PLMN-Identity-EUTRA-5GC"); + assert_choice_type(types::plmn_idx, type_, "PLMN-Identity-EUTRA-5GC"); return c.get(); } const plmn_id_s& plmn_id_eutra_minus5_gc() const { - assert_choice_type("plmn-Identity-EUTRA-5GC", type_.to_string(), "PLMN-Identity-EUTRA-5GC"); + assert_choice_type(types::plmn_id_eutra_minus5_gc, type_, "PLMN-Identity-EUTRA-5GC"); return c.get(); } const uint8_t& plmn_idx() const { - assert_choice_type("plmn-index", type_.to_string(), "PLMN-Identity-EUTRA-5GC"); - return c.get(); - } - plmn_id_s& set_plmn_id_eutra_minus5_gc() - { - set(types::plmn_id_eutra_minus5_gc); - return c.get(); - } - uint8_t& set_plmn_idx() - { - set(types::plmn_idx); + assert_choice_type(types::plmn_idx, type_, "PLMN-Identity-EUTRA-5GC"); return c.get(); } + plmn_id_s& set_plmn_id_eutra_minus5_gc(); + uint8_t& set_plmn_idx(); private: types type_; @@ -8981,7 +8328,7 @@ struct cell_id_eutra_minus5_gc_c { struct types_opts { enum options { cell_id_eutra, cell_id_idx, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8998,34 +8345,26 @@ struct cell_id_eutra_minus5_gc_c { // getters fixed_bitstring<28>& cell_id_eutra() { - assert_choice_type("cellIdentity-EUTRA", type_.to_string(), "CellIdentity-EUTRA-5GC"); + assert_choice_type(types::cell_id_eutra, type_, "CellIdentity-EUTRA-5GC"); return c.get >(); } uint8_t& cell_id_idx() { - assert_choice_type("cellId-index", type_.to_string(), "CellIdentity-EUTRA-5GC"); + assert_choice_type(types::cell_id_idx, type_, "CellIdentity-EUTRA-5GC"); return c.get(); } const fixed_bitstring<28>& cell_id_eutra() const { - assert_choice_type("cellIdentity-EUTRA", type_.to_string(), "CellIdentity-EUTRA-5GC"); + assert_choice_type(types::cell_id_eutra, type_, "CellIdentity-EUTRA-5GC"); return c.get >(); } const uint8_t& cell_id_idx() const { - assert_choice_type("cellId-index", type_.to_string(), "CellIdentity-EUTRA-5GC"); - return c.get(); - } - fixed_bitstring<28>& set_cell_id_eutra() - { - set(types::cell_id_eutra); - return c.get >(); - } - uint8_t& set_cell_id_idx() - { - set(types::cell_id_idx); + assert_choice_type(types::cell_id_idx, type_, "CellIdentity-EUTRA-5GC"); return c.get(); } + fixed_bitstring<28>& set_cell_id_eutra(); + uint8_t& set_cell_id_idx(); private: types type_; @@ -9253,7 +8592,7 @@ struct mimo_layers_dl_opts { enum options { two_layers, four_layers, eight_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mimo_layers_dl_e; @@ -9263,7 +8602,7 @@ struct mimo_layers_ul_opts { enum options { one_layer, two_layers, four_layers, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mimo_layers_ul_e; @@ -9351,7 +8690,7 @@ struct reduced_aggregated_bw_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated reduced_aggregated_bw_e; @@ -9472,7 +8811,7 @@ struct rrc_recfg_complete_v1560_ies_s { struct types_opts { enum options { nr_scg_resp, eutra_scg_resp, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9489,34 +8828,26 @@ struct rrc_recfg_complete_v1560_ies_s { // getters dyn_octstring& nr_scg_resp() { - assert_choice_type("nr-SCG-Response", type_.to_string(), "scg-Response"); + assert_choice_type(types::nr_scg_resp, type_, "scg-Response"); return c.get(); } dyn_octstring& eutra_scg_resp() { - assert_choice_type("eutra-SCG-Response", type_.to_string(), "scg-Response"); + assert_choice_type(types::eutra_scg_resp, type_, "scg-Response"); return c.get(); } const dyn_octstring& nr_scg_resp() const { - assert_choice_type("nr-SCG-Response", type_.to_string(), "scg-Response"); + assert_choice_type(types::nr_scg_resp, type_, "scg-Response"); return c.get(); } const dyn_octstring& eutra_scg_resp() const { - assert_choice_type("eutra-SCG-Response", type_.to_string(), "scg-Response"); - return c.get(); - } - dyn_octstring& set_nr_scg_resp() - { - set(types::nr_scg_resp); - return c.get(); - } - dyn_octstring& set_eutra_scg_resp() - { - set(types::eutra_scg_resp); + assert_choice_type(types::eutra_scg_resp, type_, "scg-Response"); return c.get(); } + dyn_octstring& set_nr_scg_resp(); + dyn_octstring& set_eutra_scg_resp(); private: types type_; @@ -9578,7 +8909,7 @@ struct delay_budget_report_c { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated type1_e_; @@ -9586,7 +8917,7 @@ struct delay_budget_report_c { enum options { type1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -9609,7 +8940,7 @@ struct fail_info_rlc_bearer_s { struct fail_type_opts { enum options { rlc_fail, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated fail_type_e_; @@ -9640,7 +8971,7 @@ struct fail_report_scg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_e_; @@ -9676,7 +9007,7 @@ struct fail_report_scg_eutra_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_e_; @@ -9701,7 +9032,7 @@ struct location_meas_info_c { struct types_opts { enum options { eutra_rstd, /*...*/ eutra_fine_timing_detection, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9715,20 +9046,16 @@ struct location_meas_info_c { // getters eutra_rstd_info_list_l& eutra_rstd() { - assert_choice_type("eutra-RSTD", type_.to_string(), "LocationMeasurementInfo"); + assert_choice_type(types::eutra_rstd, type_, "LocationMeasurementInfo"); return c; } const eutra_rstd_info_list_l& eutra_rstd() const { - assert_choice_type("eutra-RSTD", type_.to_string(), "LocationMeasurementInfo"); + assert_choice_type(types::eutra_rstd, type_, "LocationMeasurementInfo"); return c; } - eutra_rstd_info_list_l& set_eutra_rstd() - { - set(types::eutra_rstd); - return c; - } - void set_eutra_fine_timing_detection() { set(types::eutra_fine_timing_detection); } + eutra_rstd_info_list_l& set_eutra_rstd(); + void set_eutra_fine_timing_detection(); private: types type_; @@ -9741,7 +9068,7 @@ struct meas_results_s { struct types_opts { enum options { meas_result_list_nr, /*...*/ meas_result_list_eutra, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9758,34 +9085,26 @@ struct meas_results_s { // getters meas_result_list_nr_l& meas_result_list_nr() { - assert_choice_type("measResultListNR", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_nr, type_, "measResultNeighCells"); return c.get(); } meas_result_list_eutra_l& meas_result_list_eutra() { - assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_eutra, type_, "measResultNeighCells"); return c.get(); } const meas_result_list_nr_l& meas_result_list_nr() const { - assert_choice_type("measResultListNR", type_.to_string(), "measResultNeighCells"); + assert_choice_type(types::meas_result_list_nr, type_, "measResultNeighCells"); return c.get(); } const meas_result_list_eutra_l& meas_result_list_eutra() const { - assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells"); - return c.get(); - } - meas_result_list_nr_l& set_meas_result_list_nr() - { - set(types::meas_result_list_nr); - return c.get(); - } - meas_result_list_eutra_l& set_meas_result_list_eutra() - { - set(types::meas_result_list_eutra); + assert_choice_type(types::meas_result_list_eutra, type_, "measResultNeighCells"); return c.get(); } + meas_result_list_nr_l& set_meas_result_list_nr(); + meas_result_list_eutra_l& set_meas_result_list_eutra(); private: types type_; @@ -9845,7 +9164,7 @@ struct s_nssai_c { struct types_opts { enum options { sst, sst_sd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9862,34 +9181,26 @@ struct s_nssai_c { // getters fixed_bitstring<8>& sst() { - assert_choice_type("sst", type_.to_string(), "S-NSSAI"); + assert_choice_type(types::sst, type_, "S-NSSAI"); return c.get >(); } fixed_bitstring<32>& sst_sd() { - assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI"); + assert_choice_type(types::sst_sd, type_, "S-NSSAI"); return c.get >(); } const fixed_bitstring<8>& sst() const { - assert_choice_type("sst", type_.to_string(), "S-NSSAI"); + assert_choice_type(types::sst, type_, "S-NSSAI"); return c.get >(); } const fixed_bitstring<32>& sst_sd() const { - assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI"); - return c.get >(); - } - fixed_bitstring<8>& set_sst() - { - set(types::sst); - return c.get >(); - } - fixed_bitstring<32>& set_sst_sd() - { - set(types::sst_sd); + assert_choice_type(types::sst_sd, type_, "S-NSSAI"); return c.get >(); } + fixed_bitstring<8>& set_sst(); + fixed_bitstring<32>& set_sst_sd(); private: types type_; @@ -10038,7 +9349,7 @@ struct rrc_setup_complete_ies_s { struct guami_type_opts { enum options { native, mapped, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated guami_type_e_; using s_nssai_list_l_ = dyn_array; @@ -10046,7 +9357,7 @@ struct rrc_setup_complete_ies_s { struct types_opts { enum options { ng_minus5_g_s_tmsi, ng_minus5_g_s_tmsi_part2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10063,34 +9374,26 @@ struct rrc_setup_complete_ies_s { // getters fixed_bitstring<48>& ng_minus5_g_s_tmsi() { - assert_choice_type("ng-5G-S-TMSI", type_.to_string(), "ng-5G-S-TMSI-Value"); + assert_choice_type(types::ng_minus5_g_s_tmsi, type_, "ng-5G-S-TMSI-Value"); return c.get >(); } fixed_bitstring<9>& ng_minus5_g_s_tmsi_part2() { - assert_choice_type("ng-5G-S-TMSI-Part2", type_.to_string(), "ng-5G-S-TMSI-Value"); + assert_choice_type(types::ng_minus5_g_s_tmsi_part2, type_, "ng-5G-S-TMSI-Value"); return c.get >(); } const fixed_bitstring<48>& ng_minus5_g_s_tmsi() const { - assert_choice_type("ng-5G-S-TMSI", type_.to_string(), "ng-5G-S-TMSI-Value"); + assert_choice_type(types::ng_minus5_g_s_tmsi, type_, "ng-5G-S-TMSI-Value"); return c.get >(); } const fixed_bitstring<9>& ng_minus5_g_s_tmsi_part2() const { - assert_choice_type("ng-5G-S-TMSI-Part2", type_.to_string(), "ng-5G-S-TMSI-Value"); - return c.get >(); - } - fixed_bitstring<48>& set_ng_minus5_g_s_tmsi() - { - set(types::ng_minus5_g_s_tmsi); - return c.get >(); - } - fixed_bitstring<9>& set_ng_minus5_g_s_tmsi_part2() - { - set(types::ng_minus5_g_s_tmsi_part2); + assert_choice_type(types::ng_minus5_g_s_tmsi_part2, type_, "ng-5G-S-TMSI-Value"); return c.get >(); } + fixed_bitstring<48>& set_ng_minus5_g_s_tmsi(); + fixed_bitstring<9>& set_ng_minus5_g_s_tmsi_part2(); private: types type_; @@ -10235,7 +9538,7 @@ struct counter_check_resp_s { struct types_opts { enum options { counter_check_resp, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10249,20 +9552,16 @@ struct counter_check_resp_s { // getters counter_check_resp_ies_s& counter_check_resp() { - assert_choice_type("counterCheckResponse", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::counter_check_resp, type_, "criticalExtensions"); return c; } const counter_check_resp_ies_s& counter_check_resp() const { - assert_choice_type("counterCheckResponse", type_.to_string(), "criticalExtensions"); - return c; - } - counter_check_resp_ies_s& set_counter_check_resp() - { - set(types::counter_check_resp); + assert_choice_type(types::counter_check_resp, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + counter_check_resp_ies_s& set_counter_check_resp(); + void set_crit_exts_future(); private: types type_; @@ -10285,7 +9584,7 @@ struct fail_info_s { struct types_opts { enum options { fail_info, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10299,20 +9598,16 @@ struct fail_info_s { // getters fail_info_ies_s& fail_info() { - assert_choice_type("failureInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::fail_info, type_, "criticalExtensions"); return c; } const fail_info_ies_s& fail_info() const { - assert_choice_type("failureInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::fail_info, type_, "criticalExtensions"); return c; } - fail_info_ies_s& set_fail_info() - { - set(types::fail_info); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + fail_info_ies_s& set_fail_info(); + void set_crit_exts_future(); private: types type_; @@ -10334,7 +9629,7 @@ struct location_meas_ind_s { struct types_opts { enum options { location_meas_ind, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10348,20 +9643,16 @@ struct location_meas_ind_s { // getters location_meas_ind_ies_s& location_meas_ind() { - assert_choice_type("locationMeasurementIndication", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::location_meas_ind, type_, "criticalExtensions"); return c; } const location_meas_ind_ies_s& location_meas_ind() const { - assert_choice_type("locationMeasurementIndication", type_.to_string(), "criticalExtensions"); - return c; - } - location_meas_ind_ies_s& set_location_meas_ind() - { - set(types::location_meas_ind); + assert_choice_type(types::location_meas_ind, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + location_meas_ind_ies_s& set_location_meas_ind(); + void set_crit_exts_future(); private: types type_; @@ -10383,7 +9674,7 @@ struct meas_report_s { struct types_opts { enum options { meas_report, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10397,20 +9688,16 @@ struct meas_report_s { // getters meas_report_ies_s& meas_report() { - assert_choice_type("measurementReport", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::meas_report, type_, "criticalExtensions"); return c; } const meas_report_ies_s& meas_report() const { - assert_choice_type("measurementReport", type_.to_string(), "criticalExtensions"); - return c; - } - meas_report_ies_s& set_meas_report() - { - set(types::meas_report); + assert_choice_type(types::meas_report, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + meas_report_ies_s& set_meas_report(); + void set_crit_exts_future(); private: types type_; @@ -10432,7 +9719,7 @@ struct rrc_recfg_complete_s { struct types_opts { enum options { rrc_recfg_complete, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10446,20 +9733,16 @@ struct rrc_recfg_complete_s { // getters rrc_recfg_complete_ies_s& rrc_recfg_complete() { - assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_recfg_complete, type_, "criticalExtensions"); return c; } const rrc_recfg_complete_ies_s& rrc_recfg_complete() const { - assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_recfg_complete_ies_s& set_rrc_recfg_complete() - { - set(types::rrc_recfg_complete); + assert_choice_type(types::rrc_recfg_complete, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_recfg_complete_ies_s& set_rrc_recfg_complete(); + void set_crit_exts_future(); private: types type_; @@ -10482,7 +9765,7 @@ struct rrc_reest_complete_s { struct types_opts { enum options { rrc_reest_complete, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10496,20 +9779,16 @@ struct rrc_reest_complete_s { // getters rrc_reest_complete_ies_s& rrc_reest_complete() { - assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_reest_complete, type_, "criticalExtensions"); return c; } const rrc_reest_complete_ies_s& rrc_reest_complete() const { - assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_reest_complete, type_, "criticalExtensions"); return c; } - rrc_reest_complete_ies_s& set_rrc_reest_complete() - { - set(types::rrc_reest_complete); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_reest_complete_ies_s& set_rrc_reest_complete(); + void set_crit_exts_future(); private: types type_; @@ -10532,7 +9811,7 @@ struct rrc_resume_complete_s { struct types_opts { enum options { rrc_resume_complete, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10546,20 +9825,16 @@ struct rrc_resume_complete_s { // getters rrc_resume_complete_ies_s& rrc_resume_complete() { - assert_choice_type("rrcResumeComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_resume_complete, type_, "criticalExtensions"); return c; } const rrc_resume_complete_ies_s& rrc_resume_complete() const { - assert_choice_type("rrcResumeComplete", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_resume_complete_ies_s& set_rrc_resume_complete() - { - set(types::rrc_resume_complete); + assert_choice_type(types::rrc_resume_complete, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_resume_complete_ies_s& set_rrc_resume_complete(); + void set_crit_exts_future(); private: types type_; @@ -10582,7 +9857,7 @@ struct rrc_setup_complete_s { struct types_opts { enum options { rrc_setup_complete, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10596,20 +9871,16 @@ struct rrc_setup_complete_s { // getters rrc_setup_complete_ies_s& rrc_setup_complete() { - assert_choice_type("rrcSetupComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::rrc_setup_complete, type_, "criticalExtensions"); return c; } const rrc_setup_complete_ies_s& rrc_setup_complete() const { - assert_choice_type("rrcSetupComplete", type_.to_string(), "criticalExtensions"); - return c; - } - rrc_setup_complete_ies_s& set_rrc_setup_complete() - { - set(types::rrc_setup_complete); + assert_choice_type(types::rrc_setup_complete, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + rrc_setup_complete_ies_s& set_rrc_setup_complete(); + void set_crit_exts_future(); private: types type_; @@ -10632,7 +9903,7 @@ struct scg_fail_info_s { struct types_opts { enum options { scg_fail_info, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10646,20 +9917,16 @@ struct scg_fail_info_s { // getters scg_fail_info_ies_s& scg_fail_info() { - assert_choice_type("scgFailureInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::scg_fail_info, type_, "criticalExtensions"); return c; } const scg_fail_info_ies_s& scg_fail_info() const { - assert_choice_type("scgFailureInformation", type_.to_string(), "criticalExtensions"); - return c; - } - scg_fail_info_ies_s& set_scg_fail_info() - { - set(types::scg_fail_info); + assert_choice_type(types::scg_fail_info, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + scg_fail_info_ies_s& set_scg_fail_info(); + void set_crit_exts_future(); private: types type_; @@ -10681,7 +9948,7 @@ struct scg_fail_info_eutra_s { struct types_opts { enum options { scg_fail_info_eutra, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10695,20 +9962,16 @@ struct scg_fail_info_eutra_s { // getters scg_fail_info_eutra_ies_s& scg_fail_info_eutra() { - assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::scg_fail_info_eutra, type_, "criticalExtensions"); return c; } const scg_fail_info_eutra_ies_s& scg_fail_info_eutra() const { - assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::scg_fail_info_eutra, type_, "criticalExtensions"); return c; } - scg_fail_info_eutra_ies_s& set_scg_fail_info_eutra() - { - set(types::scg_fail_info_eutra); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + scg_fail_info_eutra_ies_s& set_scg_fail_info_eutra(); + void set_crit_exts_future(); private: types type_; @@ -10730,7 +9993,7 @@ struct security_mode_complete_s { struct types_opts { enum options { security_mode_complete, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10744,20 +10007,16 @@ struct security_mode_complete_s { // getters security_mode_complete_ies_s& security_mode_complete() { - assert_choice_type("securityModeComplete", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_complete, type_, "criticalExtensions"); return c; } const security_mode_complete_ies_s& security_mode_complete() const { - assert_choice_type("securityModeComplete", type_.to_string(), "criticalExtensions"); - return c; - } - security_mode_complete_ies_s& set_security_mode_complete() - { - set(types::security_mode_complete); + assert_choice_type(types::security_mode_complete, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + security_mode_complete_ies_s& set_security_mode_complete(); + void set_crit_exts_future(); private: types type_; @@ -10780,7 +10039,7 @@ struct security_mode_fail_s { struct types_opts { enum options { security_mode_fail, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10794,20 +10053,16 @@ struct security_mode_fail_s { // getters security_mode_fail_ies_s& security_mode_fail() { - assert_choice_type("securityModeFailure", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::security_mode_fail, type_, "criticalExtensions"); return c; } const security_mode_fail_ies_s& security_mode_fail() const { - assert_choice_type("securityModeFailure", type_.to_string(), "criticalExtensions"); - return c; - } - security_mode_fail_ies_s& set_security_mode_fail() - { - set(types::security_mode_fail); + assert_choice_type(types::security_mode_fail, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + security_mode_fail_ies_s& set_security_mode_fail(); + void set_crit_exts_future(); private: types type_; @@ -10830,7 +10085,7 @@ struct ueassist_info_s { struct types_opts { enum options { ue_assist_info, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10844,20 +10099,16 @@ struct ueassist_info_s { // getters ueassist_info_ies_s& ue_assist_info() { - assert_choice_type("ueAssistanceInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ue_assist_info, type_, "criticalExtensions"); return c; } const ueassist_info_ies_s& ue_assist_info() const { - assert_choice_type("ueAssistanceInformation", type_.to_string(), "criticalExtensions"); - return c; - } - ueassist_info_ies_s& set_ue_assist_info() - { - set(types::ue_assist_info); + assert_choice_type(types::ue_assist_info, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + ueassist_info_ies_s& set_ue_assist_info(); + void set_crit_exts_future(); private: types type_; @@ -10879,7 +10130,7 @@ struct ue_cap_info_s { struct types_opts { enum options { ue_cap_info, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10893,20 +10144,16 @@ struct ue_cap_info_s { // getters ue_cap_info_ies_s& ue_cap_info() { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ue_cap_info, type_, "criticalExtensions"); return c; } const ue_cap_info_ies_s& ue_cap_info() const { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ue_cap_info, type_, "criticalExtensions"); return c; } - ue_cap_info_ies_s& set_ue_cap_info() - { - set(types::ue_cap_info); - return c; - } - void set_crit_exts_future() { set(types::crit_exts_future); } + ue_cap_info_ies_s& set_ue_cap_info(); + void set_crit_exts_future(); private: types type_; @@ -10929,7 +10176,7 @@ struct ul_info_transfer_s { struct types_opts { enum options { ul_info_transfer, crit_exts_future, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10943,20 +10190,16 @@ struct ul_info_transfer_s { // getters ul_info_transfer_ies_s& ul_info_transfer() { - assert_choice_type("ulInformationTransfer", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::ul_info_transfer, type_, "criticalExtensions"); return c; } const ul_info_transfer_ies_s& ul_info_transfer() const { - assert_choice_type("ulInformationTransfer", type_.to_string(), "criticalExtensions"); - return c; - } - ul_info_transfer_ies_s& set_ul_info_transfer() - { - set(types::ul_info_transfer); + assert_choice_type(types::ul_info_transfer, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + ul_info_transfer_ies_s& set_ul_info_transfer(); + void set_crit_exts_future(); private: types type_; @@ -10979,7 +10222,7 @@ struct ul_info_transfer_mrdc_s { struct types_opts { enum options { ul_info_transfer_mrdc, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10993,22 +10236,18 @@ struct ul_info_transfer_mrdc_s { // getters ul_info_transfer_mrdc_ies_s& ul_info_transfer_mrdc() { - assert_choice_type("ulInformationTransferMRDC", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_mrdc, type_, "c1"); return c; } const ul_info_transfer_mrdc_ies_s& ul_info_transfer_mrdc() const { - assert_choice_type("ulInformationTransferMRDC", type_.to_string(), "c1"); - return c; - } - ul_info_transfer_mrdc_ies_s& set_ul_info_transfer_mrdc() - { - set(types::ul_info_transfer_mrdc); + assert_choice_type(types::ul_info_transfer_mrdc, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ul_info_transfer_mrdc_ies_s& set_ul_info_transfer_mrdc(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -11018,7 +10257,7 @@ struct ul_info_transfer_mrdc_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -11033,20 +10272,16 @@ struct ul_info_transfer_mrdc_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -11086,7 +10321,7 @@ struct ul_dcch_msg_type_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11103,244 +10338,180 @@ struct ul_dcch_msg_type_c { // getters meas_report_s& meas_report() { - assert_choice_type("measurementReport", type_.to_string(), "c1"); + assert_choice_type(types::meas_report, type_, "c1"); return c.get(); } rrc_recfg_complete_s& rrc_recfg_complete() { - assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_recfg_complete, type_, "c1"); return c.get(); } rrc_setup_complete_s& rrc_setup_complete() { - assert_choice_type("rrcSetupComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_setup_complete, type_, "c1"); return c.get(); } rrc_reest_complete_s& rrc_reest_complete() { - assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest_complete, type_, "c1"); return c.get(); } rrc_resume_complete_s& rrc_resume_complete() { - assert_choice_type("rrcResumeComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_complete, type_, "c1"); return c.get(); } security_mode_complete_s& security_mode_complete() { - assert_choice_type("securityModeComplete", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete, type_, "c1"); return c.get(); } security_mode_fail_s& security_mode_fail() { - assert_choice_type("securityModeFailure", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail, type_, "c1"); return c.get(); } ul_info_transfer_s& ul_info_transfer() { - assert_choice_type("ulInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer, type_, "c1"); return c.get(); } location_meas_ind_s& location_meas_ind() { - assert_choice_type("locationMeasurementIndication", type_.to_string(), "c1"); + assert_choice_type(types::location_meas_ind, type_, "c1"); return c.get(); } ue_cap_info_s& ue_cap_info() { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info, type_, "c1"); return c.get(); } counter_check_resp_s& counter_check_resp() { - assert_choice_type("counterCheckResponse", type_.to_string(), "c1"); + assert_choice_type(types::counter_check_resp, type_, "c1"); return c.get(); } ueassist_info_s& ue_assist_info() { - assert_choice_type("ueAssistanceInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_assist_info, type_, "c1"); return c.get(); } fail_info_s& fail_info() { - assert_choice_type("failureInformation", type_.to_string(), "c1"); + assert_choice_type(types::fail_info, type_, "c1"); return c.get(); } ul_info_transfer_mrdc_s& ul_info_transfer_mrdc() { - assert_choice_type("ulInformationTransferMRDC", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_mrdc, type_, "c1"); return c.get(); } scg_fail_info_s& scg_fail_info() { - assert_choice_type("scgFailureInformation", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info, type_, "c1"); return c.get(); } scg_fail_info_eutra_s& scg_fail_info_eutra() { - assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info_eutra, type_, "c1"); return c.get(); } const meas_report_s& meas_report() const { - assert_choice_type("measurementReport", type_.to_string(), "c1"); + assert_choice_type(types::meas_report, type_, "c1"); return c.get(); } const rrc_recfg_complete_s& rrc_recfg_complete() const { - assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_recfg_complete, type_, "c1"); return c.get(); } const rrc_setup_complete_s& rrc_setup_complete() const { - assert_choice_type("rrcSetupComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_setup_complete, type_, "c1"); return c.get(); } const rrc_reest_complete_s& rrc_reest_complete() const { - assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_reest_complete, type_, "c1"); return c.get(); } const rrc_resume_complete_s& rrc_resume_complete() const { - assert_choice_type("rrcResumeComplete", type_.to_string(), "c1"); + assert_choice_type(types::rrc_resume_complete, type_, "c1"); return c.get(); } const security_mode_complete_s& security_mode_complete() const { - assert_choice_type("securityModeComplete", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_complete, type_, "c1"); return c.get(); } const security_mode_fail_s& security_mode_fail() const { - assert_choice_type("securityModeFailure", type_.to_string(), "c1"); + assert_choice_type(types::security_mode_fail, type_, "c1"); return c.get(); } const ul_info_transfer_s& ul_info_transfer() const { - assert_choice_type("ulInformationTransfer", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer, type_, "c1"); return c.get(); } const location_meas_ind_s& location_meas_ind() const { - assert_choice_type("locationMeasurementIndication", type_.to_string(), "c1"); + assert_choice_type(types::location_meas_ind, type_, "c1"); return c.get(); } const ue_cap_info_s& ue_cap_info() const { - assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_cap_info, type_, "c1"); return c.get(); } const counter_check_resp_s& counter_check_resp() const { - assert_choice_type("counterCheckResponse", type_.to_string(), "c1"); + assert_choice_type(types::counter_check_resp, type_, "c1"); return c.get(); } const ueassist_info_s& ue_assist_info() const { - assert_choice_type("ueAssistanceInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_assist_info, type_, "c1"); return c.get(); } const fail_info_s& fail_info() const { - assert_choice_type("failureInformation", type_.to_string(), "c1"); + assert_choice_type(types::fail_info, type_, "c1"); return c.get(); } const ul_info_transfer_mrdc_s& ul_info_transfer_mrdc() const { - assert_choice_type("ulInformationTransferMRDC", type_.to_string(), "c1"); + assert_choice_type(types::ul_info_transfer_mrdc, type_, "c1"); return c.get(); } const scg_fail_info_s& scg_fail_info() const { - assert_choice_type("scgFailureInformation", type_.to_string(), "c1"); + assert_choice_type(types::scg_fail_info, type_, "c1"); return c.get(); } const scg_fail_info_eutra_s& scg_fail_info_eutra() const { - assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "c1"); - return c.get(); - } - meas_report_s& set_meas_report() - { - set(types::meas_report); - return c.get(); - } - rrc_recfg_complete_s& set_rrc_recfg_complete() - { - set(types::rrc_recfg_complete); - return c.get(); - } - rrc_setup_complete_s& set_rrc_setup_complete() - { - set(types::rrc_setup_complete); - return c.get(); - } - rrc_reest_complete_s& set_rrc_reest_complete() - { - set(types::rrc_reest_complete); - return c.get(); - } - rrc_resume_complete_s& set_rrc_resume_complete() - { - set(types::rrc_resume_complete); - return c.get(); - } - security_mode_complete_s& set_security_mode_complete() - { - set(types::security_mode_complete); - return c.get(); - } - security_mode_fail_s& set_security_mode_fail() - { - set(types::security_mode_fail); - return c.get(); - } - ul_info_transfer_s& set_ul_info_transfer() - { - set(types::ul_info_transfer); - return c.get(); - } - location_meas_ind_s& set_location_meas_ind() - { - set(types::location_meas_ind); - return c.get(); - } - ue_cap_info_s& set_ue_cap_info() - { - set(types::ue_cap_info); - return c.get(); - } - counter_check_resp_s& set_counter_check_resp() - { - set(types::counter_check_resp); - return c.get(); - } - ueassist_info_s& set_ue_assist_info() - { - set(types::ue_assist_info); - return c.get(); - } - fail_info_s& set_fail_info() - { - set(types::fail_info); - return c.get(); - } - ul_info_transfer_mrdc_s& set_ul_info_transfer_mrdc() - { - set(types::ul_info_transfer_mrdc); - return c.get(); - } - scg_fail_info_s& set_scg_fail_info() - { - set(types::scg_fail_info); - return c.get(); - } - scg_fail_info_eutra_s& set_scg_fail_info_eutra() - { - set(types::scg_fail_info_eutra); + assert_choice_type(types::scg_fail_info_eutra, type_, "c1"); return c.get(); } + meas_report_s& set_meas_report(); + rrc_recfg_complete_s& set_rrc_recfg_complete(); + rrc_setup_complete_s& set_rrc_setup_complete(); + rrc_reest_complete_s& set_rrc_reest_complete(); + rrc_resume_complete_s& set_rrc_resume_complete(); + security_mode_complete_s& set_security_mode_complete(); + security_mode_fail_s& set_security_mode_fail(); + ul_info_transfer_s& set_ul_info_transfer(); + location_meas_ind_s& set_location_meas_ind(); + ue_cap_info_s& set_ue_cap_info(); + counter_check_resp_s& set_counter_check_resp(); + ueassist_info_s& set_ue_assist_info(); + fail_info_s& set_fail_info(); + ul_info_transfer_mrdc_s& set_ul_info_transfer_mrdc(); + scg_fail_info_s& set_scg_fail_info(); + scg_fail_info_eutra_s& set_scg_fail_info_eutra(); private: types type_; @@ -11368,7 +10539,7 @@ struct ul_dcch_msg_type_c { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -11383,20 +10554,16 @@ struct ul_dcch_msg_type_c { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); + assert_choice_type(types::c1, type_, "UL-DCCH-MessageType"); return c; } - c1_c_& set_c1() - { - set(types::c1); - return c; - } - void set_msg_class_ext() { set(types::msg_class_ext); } + c1_c_& set_c1(); + void set_msg_class_ext(); private: types type_; @@ -11465,7 +10632,7 @@ struct csi_rs_res_map_s { enum options { row1, row2, row4, other, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -11483,64 +10650,48 @@ struct csi_rs_res_map_s { // getters fixed_bitstring<4>& row1() { - assert_choice_type("row1", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row1, type_, "frequencyDomainAllocation"); return c.get >(); } fixed_bitstring<12>& row2() { - assert_choice_type("row2", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row2, type_, "frequencyDomainAllocation"); return c.get >(); } fixed_bitstring<3>& row4() { - assert_choice_type("row4", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row4, type_, "frequencyDomainAllocation"); return c.get >(); } fixed_bitstring<6>& other() { - assert_choice_type("other", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::other, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<4>& row1() const { - assert_choice_type("row1", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row1, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<12>& row2() const { - assert_choice_type("row2", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row2, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<3>& row4() const { - assert_choice_type("row4", type_.to_string(), "frequencyDomainAllocation"); + assert_choice_type(types::row4, type_, "frequencyDomainAllocation"); return c.get >(); } const fixed_bitstring<6>& other() const { - assert_choice_type("other", type_.to_string(), "frequencyDomainAllocation"); - return c.get >(); - } - fixed_bitstring<4>& set_row1() - { - set(types::row1); - return c.get >(); - } - fixed_bitstring<12>& set_row2() - { - set(types::row2); - return c.get >(); - } - fixed_bitstring<3>& set_row4() - { - set(types::row4); - return c.get >(); - } - fixed_bitstring<6>& set_other() - { - set(types::other); + assert_choice_type(types::other, type_, "frequencyDomainAllocation"); return c.get >(); } + fixed_bitstring<4>& set_row1(); + fixed_bitstring<12>& set_row2(); + fixed_bitstring<3>& set_row4(); + fixed_bitstring<6>& set_other(); private: types type_; @@ -11552,7 +10703,7 @@ struct csi_rs_res_map_s { enum options { p1, p2, p4, p8, p12, p16, p24, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_ports_e_; @@ -11560,7 +10711,7 @@ struct csi_rs_res_map_s { enum options { no_cdm, fd_cdm2, cdm4_fd2_td2, cdm8_fd2_td4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cdm_type_e_; @@ -11568,14 +10719,14 @@ struct csi_rs_res_map_s { struct dot5_opts { enum options { even_prbs, odd_prbs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dot5_e_; struct types_opts { enum options { dot5, one, three, spare, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -11590,22 +10741,18 @@ struct csi_rs_res_map_s { // getters dot5_e_& dot5() { - assert_choice_type("dot5", type_.to_string(), "density"); + assert_choice_type(types::dot5, type_, "density"); return c; } const dot5_e_& dot5() const { - assert_choice_type("dot5", type_.to_string(), "density"); - return c; - } - dot5_e_& set_dot5() - { - set(types::dot5); + assert_choice_type(types::dot5, type_, "density"); return c; } - void set_one() { set(types::one); } - void set_three() { set(types::three); } - void set_spare() { set(types::spare); } + dot5_e_& set_dot5(); + void set_one(); + void set_three(); + void set_spare(); private: types type_; @@ -11651,7 +10798,7 @@ struct csi_res_periodicity_and_offset_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -11669,199 +10816,147 @@ struct csi_res_periodicity_and_offset_c { // getters uint8_t& slots4() { - assert_choice_type("slots4", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots4, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots5() { - assert_choice_type("slots5", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots5, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots8() { - assert_choice_type("slots8", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots8, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots10() { - assert_choice_type("slots10", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots10, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots16() { - assert_choice_type("slots16", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots16, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots20() { - assert_choice_type("slots20", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots20, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots32() { - assert_choice_type("slots32", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots32, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots40() { - assert_choice_type("slots40", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots40, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots64() { - assert_choice_type("slots64", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots64, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots80() { - assert_choice_type("slots80", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots80, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint8_t& slots160() { - assert_choice_type("slots160", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots160, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint16_t& slots320() { - assert_choice_type("slots320", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots320, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } uint16_t& slots640() { - assert_choice_type("slots640", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots640, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots4() const { - assert_choice_type("slots4", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots4, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots5() const { - assert_choice_type("slots5", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots5, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots8() const { - assert_choice_type("slots8", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots8, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots10() const { - assert_choice_type("slots10", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots10, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots16() const { - assert_choice_type("slots16", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots16, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots20() const { - assert_choice_type("slots20", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots20, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots32() const { - assert_choice_type("slots32", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots32, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots40() const { - assert_choice_type("slots40", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots40, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots64() const { - assert_choice_type("slots64", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots64, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots80() const { - assert_choice_type("slots80", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots80, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint8_t& slots160() const { - assert_choice_type("slots160", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots160, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint16_t& slots320() const { - assert_choice_type("slots320", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); + assert_choice_type(types::slots320, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } const uint16_t& slots640() const { - assert_choice_type("slots640", type_.to_string(), "CSI-ResourcePeriodicityAndOffset"); - return c.get(); - } - uint8_t& set_slots4() - { - set(types::slots4); - return c.get(); - } - uint8_t& set_slots5() - { - set(types::slots5); - return c.get(); - } - uint8_t& set_slots8() - { - set(types::slots8); - return c.get(); - } - uint8_t& set_slots10() - { - set(types::slots10); - return c.get(); - } - uint8_t& set_slots16() - { - set(types::slots16); - return c.get(); - } - uint8_t& set_slots20() - { - set(types::slots20); - return c.get(); - } - uint8_t& set_slots32() - { - set(types::slots32); - return c.get(); - } - uint8_t& set_slots40() - { - set(types::slots40); - return c.get(); - } - uint8_t& set_slots64() - { - set(types::slots64); - return c.get(); - } - uint8_t& set_slots80() - { - set(types::slots80); - return c.get(); - } - uint8_t& set_slots160() - { - set(types::slots160); - return c.get(); - } - uint16_t& set_slots320() - { - set(types::slots320); - return c.get(); - } - uint16_t& set_slots640() - { - set(types::slots640); + assert_choice_type(types::slots640, type_, "CSI-ResourcePeriodicityAndOffset"); return c.get(); } + uint8_t& set_slots4(); + uint8_t& set_slots5(); + uint8_t& set_slots8(); + uint8_t& set_slots10(); + uint8_t& set_slots16(); + uint8_t& set_slots20(); + uint8_t& set_slots32(); + uint8_t& set_slots40(); + uint8_t& set_slots64(); + uint8_t& set_slots80(); + uint8_t& set_slots160(); + uint16_t& set_slots320(); + uint16_t& set_slots640(); private: types type_; @@ -11889,9 +10984,9 @@ struct ptrs_dl_cfg_s { enum options { offset01, offset10, offset11, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated res_elem_offset_e_; @@ -11919,7 +11014,7 @@ struct qcl_info_s { struct types_opts { enum options { csi_rs, ssb, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11936,34 +11031,26 @@ struct qcl_info_s { // getters uint8_t& csi_rs() { - assert_choice_type("csi-rs", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs, type_, "referenceSignal"); return c.get(); } uint8_t& ssb() { - assert_choice_type("ssb", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb, type_, "referenceSignal"); return c.get(); } const uint8_t& csi_rs() const { - assert_choice_type("csi-rs", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs, type_, "referenceSignal"); return c.get(); } const uint8_t& ssb() const { - assert_choice_type("ssb", type_.to_string(), "referenceSignal"); - return c.get(); - } - uint8_t& set_csi_rs() - { - set(types::csi_rs); - return c.get(); - } - uint8_t& set_ssb() - { - set(types::ssb); + assert_choice_type(types::ssb, type_, "referenceSignal"); return c.get(); } + uint8_t& set_csi_rs(); + uint8_t& set_ssb(); private: types type_; @@ -11974,7 +11061,7 @@ struct qcl_info_s { struct qcl_type_opts { enum options { type_a, type_b, type_c, type_d, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated qcl_type_e_; @@ -12000,7 +11087,7 @@ struct dmrs_dl_cfg_s { enum options { pos0, pos1, pos3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dmrs_add_position_e_; @@ -12031,7 +11118,7 @@ struct dl_preemption_s { enum options { set0, set1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_freq_set_e_; @@ -12088,14 +11175,14 @@ struct radio_link_monitoring_rs_s { struct purpose_opts { enum options { beam_fail, rlf, both, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated purpose_e_; struct detection_res_c_ { struct types_opts { enum options { ssb_idx, csi_rs_idx, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12112,34 +11199,26 @@ struct radio_link_monitoring_rs_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "detectionResource"); + assert_choice_type(types::ssb_idx, type_, "detectionResource"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "detectionResource"); + assert_choice_type(types::csi_rs_idx, type_, "detectionResource"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "detectionResource"); + assert_choice_type(types::ssb_idx, type_, "detectionResource"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "detectionResource"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); + assert_choice_type(types::csi_rs_idx, type_, "detectionResource"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); private: types type_; @@ -12170,7 +11249,7 @@ struct rate_match_pattern_s { enum options { one_slot, two_slots, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -12188,34 +11267,26 @@ struct rate_match_pattern_s { // getters fixed_bitstring<14>& one_slot() { - assert_choice_type("oneSlot", type_.to_string(), "symbolsInResourceBlock"); + assert_choice_type(types::one_slot, type_, "symbolsInResourceBlock"); return c.get >(); } fixed_bitstring<28>& two_slots() { - assert_choice_type("twoSlots", type_.to_string(), "symbolsInResourceBlock"); + assert_choice_type(types::two_slots, type_, "symbolsInResourceBlock"); return c.get >(); } const fixed_bitstring<14>& one_slot() const { - assert_choice_type("oneSlot", type_.to_string(), "symbolsInResourceBlock"); + assert_choice_type(types::one_slot, type_, "symbolsInResourceBlock"); return c.get >(); } const fixed_bitstring<28>& two_slots() const { - assert_choice_type("twoSlots", type_.to_string(), "symbolsInResourceBlock"); - return c.get >(); - } - fixed_bitstring<14>& set_one_slot() - { - set(types::one_slot); - return c.get >(); - } - fixed_bitstring<28>& set_two_slots() - { - set(types::two_slots); + assert_choice_type(types::two_slots, type_, "symbolsInResourceBlock"); return c.get >(); } + fixed_bitstring<14>& set_one_slot(); + fixed_bitstring<28>& set_two_slots(); private: types type_; @@ -12228,7 +11299,7 @@ struct rate_match_pattern_s { enum options { n2, n4, n5, n8, n10, n20, n40, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -12246,109 +11317,81 @@ struct rate_match_pattern_s { // getters fixed_bitstring<2>& n2() { - assert_choice_type("n2", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n2, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<4>& n4() { - assert_choice_type("n4", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n4, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<5>& n5() { - assert_choice_type("n5", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n5, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<8>& n8() { - assert_choice_type("n8", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n8, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<10>& n10() { - assert_choice_type("n10", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n10, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<20>& n20() { - assert_choice_type("n20", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n20, type_, "periodicityAndPattern"); return c.get >(); } fixed_bitstring<40>& n40() { - assert_choice_type("n40", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n40, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<2>& n2() const { - assert_choice_type("n2", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n2, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<4>& n4() const { - assert_choice_type("n4", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n4, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<5>& n5() const { - assert_choice_type("n5", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n5, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<8>& n8() const { - assert_choice_type("n8", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n8, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<10>& n10() const { - assert_choice_type("n10", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n10, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<20>& n20() const { - assert_choice_type("n20", type_.to_string(), "periodicityAndPattern"); + assert_choice_type(types::n20, type_, "periodicityAndPattern"); return c.get >(); } const fixed_bitstring<40>& n40() const { - assert_choice_type("n40", type_.to_string(), "periodicityAndPattern"); - return c.get >(); - } - fixed_bitstring<2>& set_n2() - { - set(types::n2); - return c.get >(); - } - fixed_bitstring<4>& set_n4() - { - set(types::n4); - return c.get >(); - } - fixed_bitstring<5>& set_n5() - { - set(types::n5); - return c.get >(); - } - fixed_bitstring<8>& set_n8() - { - set(types::n8); - return c.get >(); - } - fixed_bitstring<10>& set_n10() - { - set(types::n10); - return c.get >(); - } - fixed_bitstring<20>& set_n20() - { - set(types::n20); - return c.get >(); - } - fixed_bitstring<40>& set_n40() - { - set(types::n40); + assert_choice_type(types::n40, type_, "periodicityAndPattern"); return c.get >(); } + fixed_bitstring<2>& set_n2(); + fixed_bitstring<4>& set_n4(); + fixed_bitstring<5>& set_n5(); + fixed_bitstring<8>& set_n8(); + fixed_bitstring<10>& set_n10(); + fixed_bitstring<20>& set_n20(); + fixed_bitstring<40>& set_n40(); private: types type_; @@ -12368,7 +11411,7 @@ struct rate_match_pattern_s { struct types_opts { enum options { bitmaps, ctrl_res_set, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12385,34 +11428,26 @@ struct rate_match_pattern_s { // getters bitmaps_s_& bitmaps() { - assert_choice_type("bitmaps", type_.to_string(), "patternType"); + assert_choice_type(types::bitmaps, type_, "patternType"); return c.get(); } uint8_t& ctrl_res_set() { - assert_choice_type("controlResourceSet", type_.to_string(), "patternType"); + assert_choice_type(types::ctrl_res_set, type_, "patternType"); return c.get(); } const bitmaps_s_& bitmaps() const { - assert_choice_type("bitmaps", type_.to_string(), "patternType"); + assert_choice_type(types::bitmaps, type_, "patternType"); return c.get(); } const uint8_t& ctrl_res_set() const { - assert_choice_type("controlResourceSet", type_.to_string(), "patternType"); - return c.get(); - } - bitmaps_s_& set_bitmaps() - { - set(types::bitmaps); - return c.get(); - } - uint8_t& set_ctrl_res_set() - { - set(types::ctrl_res_set); + assert_choice_type(types::ctrl_res_set, type_, "patternType"); return c.get(); } + bitmaps_s_& set_bitmaps(); + uint8_t& set_ctrl_res_set(); private: types type_; @@ -12423,7 +11458,7 @@ struct rate_match_pattern_s { struct dummy_opts { enum options { dynamic_value, semi_static, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dummy_e_; @@ -12446,7 +11481,7 @@ struct rate_match_pattern_group_item_c_ { struct types_opts { enum options { cell_level, bwp_level, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12463,34 +11498,26 @@ struct rate_match_pattern_group_item_c_ { // getters uint8_t& cell_level() { - assert_choice_type("cellLevel", type_.to_string(), "RateMatchPatternGroup-item"); + assert_choice_type(types::cell_level, type_, "RateMatchPatternGroup-item"); return c.get(); } uint8_t& bwp_level() { - assert_choice_type("bwpLevel", type_.to_string(), "RateMatchPatternGroup-item"); + assert_choice_type(types::bwp_level, type_, "RateMatchPatternGroup-item"); return c.get(); } const uint8_t& cell_level() const { - assert_choice_type("cellLevel", type_.to_string(), "RateMatchPatternGroup-item"); + assert_choice_type(types::cell_level, type_, "RateMatchPatternGroup-item"); return c.get(); } const uint8_t& bwp_level() const { - assert_choice_type("bwpLevel", type_.to_string(), "RateMatchPatternGroup-item"); - return c.get(); - } - uint8_t& set_cell_level() - { - set(types::cell_level); - return c.get(); - } - uint8_t& set_bwp_level() - { - set(types::bwp_level); + assert_choice_type(types::bwp_level, type_, "RateMatchPatternGroup-item"); return c.get(); } + uint8_t& set_cell_level(); + uint8_t& set_bwp_level(); private: types type_; @@ -12607,7 +11634,7 @@ struct pdsch_cfg_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated vrb_to_prb_interleaver_e_; @@ -12615,7 +11642,7 @@ struct pdsch_cfg_s { enum options { res_alloc_type0, res_alloc_type1, dynamic_switch, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated res_alloc_e_; @@ -12623,7 +11650,7 @@ struct pdsch_cfg_s { enum options { n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_aggregation_factor_e_; @@ -12633,7 +11660,7 @@ struct pdsch_cfg_s { enum options { cfg1, cfg2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rbg_size_e_; @@ -12641,7 +11668,7 @@ struct pdsch_cfg_s { enum options { qam256, qam64_low_se, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcs_table_e_; @@ -12649,7 +11676,7 @@ struct pdsch_cfg_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_nrof_code_words_sched_by_dci_e_; @@ -12659,7 +11686,7 @@ struct pdsch_cfg_s { enum options { n4, wideband, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated bundle_size_e_; @@ -12672,14 +11699,14 @@ struct pdsch_cfg_s { struct bundle_size_set1_opts { enum options { n4, wideband, n2_wideband, n4_wideband, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated bundle_size_set1_e_; struct bundle_size_set2_opts { enum options { n4, wideband, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated bundle_size_set2_e_; @@ -12693,7 +11720,7 @@ struct pdsch_cfg_s { struct types_opts { enum options { static_bundling, dynamic_bundling, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12710,34 +11737,26 @@ struct pdsch_cfg_s { // getters static_bundling_s_& static_bundling() { - assert_choice_type("staticBundling", type_.to_string(), "prb-BundlingType"); + assert_choice_type(types::static_bundling, type_, "prb-BundlingType"); return c.get(); } dynamic_bundling_s_& dynamic_bundling() { - assert_choice_type("dynamicBundling", type_.to_string(), "prb-BundlingType"); + assert_choice_type(types::dynamic_bundling, type_, "prb-BundlingType"); return c.get(); } const static_bundling_s_& static_bundling() const { - assert_choice_type("staticBundling", type_.to_string(), "prb-BundlingType"); + assert_choice_type(types::static_bundling, type_, "prb-BundlingType"); return c.get(); } const dynamic_bundling_s_& dynamic_bundling() const { - assert_choice_type("dynamicBundling", type_.to_string(), "prb-BundlingType"); - return c.get(); - } - static_bundling_s_& set_static_bundling() - { - set(types::static_bundling); - return c.get(); - } - dynamic_bundling_s_& set_dynamic_bundling() - { - set(types::dynamic_bundling); + assert_choice_type(types::dynamic_bundling, type_, "prb-BundlingType"); return c.get(); } + static_bundling_s_& set_static_bundling(); + dynamic_bundling_s_& set_dynamic_bundling(); private: types type_; @@ -12815,7 +11834,7 @@ struct radio_link_monitoring_cfg_s { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated beam_fail_instance_max_count_e_; @@ -12823,7 +11842,7 @@ struct radio_link_monitoring_cfg_s { enum options { pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated beam_fail_detection_timer_e_; @@ -12870,7 +11889,7 @@ struct sps_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated periodicity_e_; @@ -12930,9 +11949,9 @@ struct alpha_opts { enum options { alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated alpha_e; @@ -12993,7 +12012,7 @@ struct ptrs_ul_cfg_s { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_nrof_ports_e_; @@ -13001,18 +12020,18 @@ struct ptrs_ul_cfg_s { enum options { offset01, offset10, offset11, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated res_elem_offset_e_; struct ptrs_pwr_opts { enum options { p00, p01, p10, p11, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ptrs_pwr_e_; @@ -13053,9 +12072,9 @@ struct pucch_max_code_rate_opts { enum options { zero_dot08, zero_dot15, zero_dot25, zero_dot35, zero_dot45, zero_dot60, zero_dot80, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated pucch_max_code_rate_e; @@ -13065,7 +12084,7 @@ struct pucch_pathloss_ref_rs_s { struct types_opts { enum options { ssb_idx, csi_rs_idx, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13082,34 +12101,26 @@ struct pucch_pathloss_ref_rs_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); private: types type_; @@ -13183,7 +12194,7 @@ struct pucch_format4_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated occ_len_e_; @@ -13191,7 +12202,7 @@ struct pucch_format4_s { enum options { n0, n1, n2, n3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated occ_idx_e_; @@ -13214,7 +12225,7 @@ struct pusch_pathloss_ref_rs_s { struct types_opts { enum options { ssb_idx, csi_rs_idx, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13231,34 +12242,26 @@ struct pusch_pathloss_ref_rs_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); private: types type_; @@ -13283,7 +12286,7 @@ struct sri_pusch_pwr_ctrl_s { enum options { i0, i1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sri_pusch_closed_loop_idx_e_; @@ -13325,7 +12328,7 @@ struct srs_periodicity_and_offset_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -13343,245 +12346,181 @@ struct srs_periodicity_and_offset_c { // getters uint8_t& sl2() { - assert_choice_type("sl2", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl2, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl4() { - assert_choice_type("sl4", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl4, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl5() { - assert_choice_type("sl5", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl5, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl8() { - assert_choice_type("sl8", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl8, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl10() { - assert_choice_type("sl10", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl10, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl16() { - assert_choice_type("sl16", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl16, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl20() { - assert_choice_type("sl20", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl20, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl32() { - assert_choice_type("sl32", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl32, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl40() { - assert_choice_type("sl40", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl40, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl64() { - assert_choice_type("sl64", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl64, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl80() { - assert_choice_type("sl80", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl80, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint8_t& sl160() { - assert_choice_type("sl160", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl160, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint16_t& sl320() { - assert_choice_type("sl320", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl320, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint16_t& sl640() { - assert_choice_type("sl640", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl640, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint16_t& sl1280() { - assert_choice_type("sl1280", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl1280, type_, "SRS-PeriodicityAndOffset"); return c.get(); } uint16_t& sl2560() { - assert_choice_type("sl2560", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl2560, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl2() const { - assert_choice_type("sl2", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl2, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl4() const { - assert_choice_type("sl4", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl4, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl5() const { - assert_choice_type("sl5", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl5, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl8() const { - assert_choice_type("sl8", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl8, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl10() const { - assert_choice_type("sl10", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl10, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl16() const { - assert_choice_type("sl16", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl16, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl20() const { - assert_choice_type("sl20", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl20, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl32() const { - assert_choice_type("sl32", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl32, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl40() const { - assert_choice_type("sl40", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl40, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl64() const { - assert_choice_type("sl64", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl64, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl80() const { - assert_choice_type("sl80", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl80, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint8_t& sl160() const { - assert_choice_type("sl160", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl160, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint16_t& sl320() const { - assert_choice_type("sl320", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl320, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint16_t& sl640() const { - assert_choice_type("sl640", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl640, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint16_t& sl1280() const { - assert_choice_type("sl1280", type_.to_string(), "SRS-PeriodicityAndOffset"); + assert_choice_type(types::sl1280, type_, "SRS-PeriodicityAndOffset"); return c.get(); } const uint16_t& sl2560() const { - assert_choice_type("sl2560", type_.to_string(), "SRS-PeriodicityAndOffset"); - return c.get(); - } - void set_sl1() { set(types::sl1); } - uint8_t& set_sl2() - { - set(types::sl2); - return c.get(); - } - uint8_t& set_sl4() - { - set(types::sl4); - return c.get(); - } - uint8_t& set_sl5() - { - set(types::sl5); - return c.get(); - } - uint8_t& set_sl8() - { - set(types::sl8); - return c.get(); - } - uint8_t& set_sl10() - { - set(types::sl10); - return c.get(); - } - uint8_t& set_sl16() - { - set(types::sl16); - return c.get(); - } - uint8_t& set_sl20() - { - set(types::sl20); - return c.get(); - } - uint8_t& set_sl32() - { - set(types::sl32); - return c.get(); - } - uint8_t& set_sl40() - { - set(types::sl40); - return c.get(); - } - uint8_t& set_sl64() - { - set(types::sl64); - return c.get(); - } - uint8_t& set_sl80() - { - set(types::sl80); - return c.get(); - } - uint8_t& set_sl160() - { - set(types::sl160); - return c.get(); - } - uint16_t& set_sl320() - { - set(types::sl320); - return c.get(); - } - uint16_t& set_sl640() - { - set(types::sl640); - return c.get(); - } - uint16_t& set_sl1280() - { - set(types::sl1280); - return c.get(); - } - uint16_t& set_sl2560() - { - set(types::sl2560); + assert_choice_type(types::sl2560, type_, "SRS-PeriodicityAndOffset"); return c.get(); } + void set_sl1(); + uint8_t& set_sl2(); + uint8_t& set_sl4(); + uint8_t& set_sl5(); + uint8_t& set_sl8(); + uint8_t& set_sl10(); + uint8_t& set_sl16(); + uint8_t& set_sl20(); + uint8_t& set_sl32(); + uint8_t& set_sl40(); + uint8_t& set_sl64(); + uint8_t& set_sl80(); + uint8_t& set_sl160(); + uint16_t& set_sl320(); + uint16_t& set_sl640(); + uint16_t& set_sl1280(); + uint16_t& set_sl2560(); private: types type_; @@ -13600,7 +12539,7 @@ struct srs_spatial_relation_info_s { struct types_opts { enum options { ssb_idx, csi_rs_idx, srs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13617,49 +12556,37 @@ struct srs_spatial_relation_info_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } srs_s_& srs() { - assert_choice_type("srs", type_.to_string(), "referenceSignal"); + assert_choice_type(types::srs, type_, "referenceSignal"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } const srs_s_& srs() const { - assert_choice_type("srs", type_.to_string(), "referenceSignal"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); - return c.get(); - } - srs_s_& set_srs() - { - set(types::srs); + assert_choice_type(types::srs, type_, "referenceSignal"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); + srs_s_& set_srs(); private: types type_; @@ -13685,7 +12612,7 @@ struct cg_uci_on_pusch_c { struct types_opts { enum options { dynamic_type, semi_static, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13702,34 +12629,26 @@ struct cg_uci_on_pusch_c { // getters dynamic_l_& dynamic_type() { - assert_choice_type("dynamic", type_.to_string(), "CG-UCI-OnPUSCH"); + assert_choice_type(types::dynamic_type, type_, "CG-UCI-OnPUSCH"); return c.get(); } beta_offsets_s& semi_static() { - assert_choice_type("semiStatic", type_.to_string(), "CG-UCI-OnPUSCH"); + assert_choice_type(types::semi_static, type_, "CG-UCI-OnPUSCH"); return c.get(); } const dynamic_l_& dynamic_type() const { - assert_choice_type("dynamic", type_.to_string(), "CG-UCI-OnPUSCH"); + assert_choice_type(types::dynamic_type, type_, "CG-UCI-OnPUSCH"); return c.get(); } const beta_offsets_s& semi_static() const { - assert_choice_type("semiStatic", type_.to_string(), "CG-UCI-OnPUSCH"); - return c.get(); - } - dynamic_l_& set_dynamic_type() - { - set(types::dynamic_type); - return c.get(); - } - beta_offsets_s& set_semi_static() - { - set(types::semi_static); + assert_choice_type(types::semi_static, type_, "CG-UCI-OnPUSCH"); return c.get(); } + dynamic_l_& set_dynamic_type(); + beta_offsets_s& set_semi_static(); private: types type_; @@ -13744,7 +12663,7 @@ struct dmrs_ul_cfg_s { enum options { pos0, pos1, pos3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dmrs_add_position_e_; @@ -13790,7 +12709,7 @@ struct prach_res_ded_bfr_c { struct types_opts { enum options { ssb, csi_rs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13807,34 +12726,26 @@ struct prach_res_ded_bfr_c { // getters bfr_ssb_res_s& ssb() { - assert_choice_type("ssb", type_.to_string(), "PRACH-ResourceDedicatedBFR"); + assert_choice_type(types::ssb, type_, "PRACH-ResourceDedicatedBFR"); return c.get(); } bfr_csirs_res_s& csi_rs() { - assert_choice_type("csi-RS", type_.to_string(), "PRACH-ResourceDedicatedBFR"); + assert_choice_type(types::csi_rs, type_, "PRACH-ResourceDedicatedBFR"); return c.get(); } const bfr_ssb_res_s& ssb() const { - assert_choice_type("ssb", type_.to_string(), "PRACH-ResourceDedicatedBFR"); + assert_choice_type(types::ssb, type_, "PRACH-ResourceDedicatedBFR"); return c.get(); } const bfr_csirs_res_s& csi_rs() const { - assert_choice_type("csi-RS", type_.to_string(), "PRACH-ResourceDedicatedBFR"); - return c.get(); - } - bfr_ssb_res_s& set_ssb() - { - set(types::ssb); - return c.get(); - } - bfr_csirs_res_s& set_csi_rs() - { - set(types::csi_rs); + assert_choice_type(types::csi_rs, type_, "PRACH-ResourceDedicatedBFR"); return c.get(); } + bfr_ssb_res_s& set_ssb(); + bfr_csirs_res_s& set_csi_rs(); private: types type_; @@ -13849,7 +12760,7 @@ struct pucch_format_cfg_s { enum options { n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_slots_e_; @@ -13907,7 +12818,7 @@ struct pucch_res_s { enum options { format0, format1, format2, format3, format4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -13925,79 +12836,59 @@ struct pucch_res_s { // getters pucch_format0_s& format0() { - assert_choice_type("format0", type_.to_string(), "format"); + assert_choice_type(types::format0, type_, "format"); return c.get(); } pucch_format1_s& format1() { - assert_choice_type("format1", type_.to_string(), "format"); + assert_choice_type(types::format1, type_, "format"); return c.get(); } pucch_format2_s& format2() { - assert_choice_type("format2", type_.to_string(), "format"); + assert_choice_type(types::format2, type_, "format"); return c.get(); } pucch_format3_s& format3() { - assert_choice_type("format3", type_.to_string(), "format"); + assert_choice_type(types::format3, type_, "format"); return c.get(); } pucch_format4_s& format4() { - assert_choice_type("format4", type_.to_string(), "format"); + assert_choice_type(types::format4, type_, "format"); return c.get(); } const pucch_format0_s& format0() const { - assert_choice_type("format0", type_.to_string(), "format"); + assert_choice_type(types::format0, type_, "format"); return c.get(); } const pucch_format1_s& format1() const { - assert_choice_type("format1", type_.to_string(), "format"); + assert_choice_type(types::format1, type_, "format"); return c.get(); } const pucch_format2_s& format2() const { - assert_choice_type("format2", type_.to_string(), "format"); + assert_choice_type(types::format2, type_, "format"); return c.get(); } const pucch_format3_s& format3() const { - assert_choice_type("format3", type_.to_string(), "format"); + assert_choice_type(types::format3, type_, "format"); return c.get(); } const pucch_format4_s& format4() const { - assert_choice_type("format4", type_.to_string(), "format"); - return c.get(); - } - pucch_format0_s& set_format0() - { - set(types::format0); - return c.get(); - } - pucch_format1_s& set_format1() - { - set(types::format1); - return c.get(); - } - pucch_format2_s& set_format2() - { - set(types::format2); - return c.get(); - } - pucch_format3_s& set_format3() - { - set(types::format3); - return c.get(); - } - pucch_format4_s& set_format4() - { - set(types::format4); + assert_choice_type(types::format4, type_, "format"); return c.get(); } + pucch_format0_s& set_format0(); + pucch_format1_s& set_format1(); + pucch_format2_s& set_format2(); + pucch_format3_s& set_format3(); + pucch_format4_s& set_format4(); private: types type_; @@ -14046,7 +12937,7 @@ struct pucch_spatial_relation_info_s { struct types_opts { enum options { ssb_idx, csi_rs_idx, srs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14063,49 +12954,37 @@ struct pucch_spatial_relation_info_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } srs_s_& srs() { - assert_choice_type("srs", type_.to_string(), "referenceSignal"); + assert_choice_type(types::srs, type_, "referenceSignal"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::ssb_idx, type_, "referenceSignal"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "referenceSignal"); + assert_choice_type(types::csi_rs_idx, type_, "referenceSignal"); return c.get(); } const srs_s_& srs() const { - assert_choice_type("srs", type_.to_string(), "referenceSignal"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); - return c.get(); - } - srs_s_& set_srs() - { - set(types::srs); + assert_choice_type(types::srs, type_, "referenceSignal"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); + srs_s_& set_srs(); private: types type_; @@ -14117,7 +12996,7 @@ struct pucch_spatial_relation_info_s { enum options { i0, i1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated closed_loop_idx_e_; @@ -14176,7 +13055,7 @@ struct ra_prioritization_s { enum options { db0, db2, db4, db6, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pwr_ramp_step_high_prio_e_; @@ -14184,7 +13063,7 @@ struct ra_prioritization_s { enum options { zero, dot25, dot5, dot75, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scaling_factor_bi_e_; @@ -14208,7 +13087,7 @@ struct srs_res_s { enum options { port1, ports2, ports4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_srs_ports_e_; @@ -14216,7 +13095,7 @@ struct srs_res_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ptrs_port_idx_e_; @@ -14233,7 +13112,7 @@ struct srs_res_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -14251,34 +13130,26 @@ struct srs_res_s { // getters n2_s_& n2() { - assert_choice_type("n2", type_.to_string(), "transmissionComb"); + assert_choice_type(types::n2, type_, "transmissionComb"); return c.get(); } n4_s_& n4() { - assert_choice_type("n4", type_.to_string(), "transmissionComb"); + assert_choice_type(types::n4, type_, "transmissionComb"); return c.get(); } const n2_s_& n2() const { - assert_choice_type("n2", type_.to_string(), "transmissionComb"); + assert_choice_type(types::n2, type_, "transmissionComb"); return c.get(); } const n4_s_& n4() const { - assert_choice_type("n4", type_.to_string(), "transmissionComb"); - return c.get(); - } - n2_s_& set_n2() - { - set(types::n2); - return c.get(); - } - n4_s_& set_n4() - { - set(types::n4); + assert_choice_type(types::n4, type_, "transmissionComb"); return c.get(); } + n2_s_& set_n2(); + n4_s_& set_n4(); private: types type_; @@ -14291,7 +13162,7 @@ struct srs_res_s { enum options { n1, n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_symbols_e_; @@ -14299,7 +13170,7 @@ struct srs_res_s { enum options { n1, n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated repeat_factor_e_; @@ -14317,7 +13188,7 @@ struct srs_res_s { struct group_or_seq_hop_opts { enum options { neither, group_hop, seq_hop, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated group_or_seq_hop_e_; struct res_type_c_ { @@ -14338,7 +13209,7 @@ struct srs_res_s { struct types_opts { enum options { aperiodic, semi_persistent, periodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14355,49 +13226,37 @@ struct srs_res_s { // getters aperiodic_s_& aperiodic() { - assert_choice_type("aperiodic", type_.to_string(), "resourceType"); + assert_choice_type(types::aperiodic, type_, "resourceType"); return c.get(); } semi_persistent_s_& semi_persistent() { - assert_choice_type("semi-persistent", type_.to_string(), "resourceType"); + assert_choice_type(types::semi_persistent, type_, "resourceType"); return c.get(); } periodic_s_& periodic() { - assert_choice_type("periodic", type_.to_string(), "resourceType"); + assert_choice_type(types::periodic, type_, "resourceType"); return c.get(); } const aperiodic_s_& aperiodic() const { - assert_choice_type("aperiodic", type_.to_string(), "resourceType"); + assert_choice_type(types::aperiodic, type_, "resourceType"); return c.get(); } const semi_persistent_s_& semi_persistent() const { - assert_choice_type("semi-persistent", type_.to_string(), "resourceType"); + assert_choice_type(types::semi_persistent, type_, "resourceType"); return c.get(); } const periodic_s_& periodic() const { - assert_choice_type("periodic", type_.to_string(), "resourceType"); - return c.get(); - } - aperiodic_s_& set_aperiodic() - { - set(types::aperiodic); - return c.get(); - } - semi_persistent_s_& set_semi_persistent() - { - set(types::semi_persistent); - return c.get(); - } - periodic_s_& set_periodic() - { - set(types::periodic); + assert_choice_type(types::periodic, type_, "resourceType"); return c.get(); } + aperiodic_s_& set_aperiodic(); + semi_persistent_s_& set_semi_persistent(); + periodic_s_& set_periodic(); private: types type_; @@ -14468,7 +13327,7 @@ struct srs_res_set_s { struct types_opts { enum options { aperiodic, semi_persistent, periodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14485,49 +13344,37 @@ struct srs_res_set_s { // getters aperiodic_s_& aperiodic() { - assert_choice_type("aperiodic", type_.to_string(), "resourceType"); + assert_choice_type(types::aperiodic, type_, "resourceType"); return c.get(); } semi_persistent_s_& semi_persistent() { - assert_choice_type("semi-persistent", type_.to_string(), "resourceType"); + assert_choice_type(types::semi_persistent, type_, "resourceType"); return c.get(); } periodic_s_& periodic() { - assert_choice_type("periodic", type_.to_string(), "resourceType"); + assert_choice_type(types::periodic, type_, "resourceType"); return c.get(); } const aperiodic_s_& aperiodic() const { - assert_choice_type("aperiodic", type_.to_string(), "resourceType"); + assert_choice_type(types::aperiodic, type_, "resourceType"); return c.get(); } const semi_persistent_s_& semi_persistent() const { - assert_choice_type("semi-persistent", type_.to_string(), "resourceType"); + assert_choice_type(types::semi_persistent, type_, "resourceType"); return c.get(); } const periodic_s_& periodic() const { - assert_choice_type("periodic", type_.to_string(), "resourceType"); - return c.get(); - } - aperiodic_s_& set_aperiodic() - { - set(types::aperiodic); - return c.get(); - } - semi_persistent_s_& set_semi_persistent() - { - set(types::semi_persistent); - return c.get(); - } - periodic_s_& set_periodic() - { - set(types::periodic); + assert_choice_type(types::periodic, type_, "resourceType"); return c.get(); } + aperiodic_s_& set_aperiodic(); + semi_persistent_s_& set_semi_persistent(); + periodic_s_& set_periodic(); private: types type_; @@ -14538,14 +13385,14 @@ struct srs_res_set_s { struct usage_opts { enum options { beam_management, codebook, non_codebook, ant_switching, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated usage_e_; struct pathloss_ref_rs_c_ { struct types_opts { enum options { ssb_idx, csi_rs_idx, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14562,34 +13409,26 @@ struct srs_res_set_s { // getters uint8_t& ssb_idx() { - assert_choice_type("ssb-Index", type_.to_string(), "pathlossReferenceRS"); + assert_choice_type(types::ssb_idx, type_, "pathlossReferenceRS"); return c.get(); } uint8_t& csi_rs_idx() { - assert_choice_type("csi-RS-Index", type_.to_string(), "pathlossReferenceRS"); + assert_choice_type(types::csi_rs_idx, type_, "pathlossReferenceRS"); return c.get(); } const uint8_t& ssb_idx() const { - assert_choice_type("ssb-Index", type_.to_string(), "pathlossReferenceRS"); + assert_choice_type(types::ssb_idx, type_, "pathlossReferenceRS"); return c.get(); } const uint8_t& csi_rs_idx() const { - assert_choice_type("csi-RS-Index", type_.to_string(), "pathlossReferenceRS"); - return c.get(); - } - uint8_t& set_ssb_idx() - { - set(types::ssb_idx); - return c.get(); - } - uint8_t& set_csi_rs_idx() - { - set(types::csi_rs_idx); + assert_choice_type(types::csi_rs_idx, type_, "pathlossReferenceRS"); return c.get(); } + uint8_t& set_ssb_idx(); + uint8_t& set_csi_rs_idx(); private: types type_; @@ -14601,7 +13440,7 @@ struct srs_res_set_s { enum options { same_as_fci2, separate_closed_loop, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated srs_pwr_ctrl_adjustment_states_e_; @@ -14652,7 +13491,7 @@ struct sched_request_res_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14669,187 +13508,139 @@ struct sched_request_res_cfg_s { // getters uint8_t& sl2() { - assert_choice_type("sl2", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl2, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl4() { - assert_choice_type("sl4", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl4, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl5() { - assert_choice_type("sl5", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl5, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl8() { - assert_choice_type("sl8", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl8, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl10() { - assert_choice_type("sl10", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl10, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl16() { - assert_choice_type("sl16", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl16, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl20() { - assert_choice_type("sl20", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl20, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl40() { - assert_choice_type("sl40", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl40, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl80() { - assert_choice_type("sl80", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl80, type_, "periodicityAndOffset"); return c.get(); } uint8_t& sl160() { - assert_choice_type("sl160", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl160, type_, "periodicityAndOffset"); return c.get(); } uint16_t& sl320() { - assert_choice_type("sl320", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl320, type_, "periodicityAndOffset"); return c.get(); } uint16_t& sl640() { - assert_choice_type("sl640", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl640, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl2() const { - assert_choice_type("sl2", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl2, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl4() const { - assert_choice_type("sl4", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl4, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl5() const { - assert_choice_type("sl5", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl5, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl8() const { - assert_choice_type("sl8", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl8, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl10() const { - assert_choice_type("sl10", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl10, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl16() const { - assert_choice_type("sl16", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl16, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl20() const { - assert_choice_type("sl20", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl20, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl40() const { - assert_choice_type("sl40", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl40, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl80() const { - assert_choice_type("sl80", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl80, type_, "periodicityAndOffset"); return c.get(); } const uint8_t& sl160() const { - assert_choice_type("sl160", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl160, type_, "periodicityAndOffset"); return c.get(); } const uint16_t& sl320() const { - assert_choice_type("sl320", type_.to_string(), "periodicityAndOffset"); + assert_choice_type(types::sl320, type_, "periodicityAndOffset"); return c.get(); } const uint16_t& sl640() const { - assert_choice_type("sl640", type_.to_string(), "periodicityAndOffset"); - return c.get(); - } - void set_sym2() { set(types::sym2); } - void set_sym6or7() { set(types::sym6or7); } - void set_sl1() { set(types::sl1); } - uint8_t& set_sl2() - { - set(types::sl2); - return c.get(); - } - uint8_t& set_sl4() - { - set(types::sl4); - return c.get(); - } - uint8_t& set_sl5() - { - set(types::sl5); - return c.get(); - } - uint8_t& set_sl8() - { - set(types::sl8); - return c.get(); - } - uint8_t& set_sl10() - { - set(types::sl10); - return c.get(); - } - uint8_t& set_sl16() - { - set(types::sl16); - return c.get(); - } - uint8_t& set_sl20() - { - set(types::sl20); - return c.get(); - } - uint8_t& set_sl40() - { - set(types::sl40); - return c.get(); - } - uint8_t& set_sl80() - { - set(types::sl80); - return c.get(); - } - uint8_t& set_sl160() - { - set(types::sl160); - return c.get(); - } - uint16_t& set_sl320() - { - set(types::sl320); - return c.get(); - } - uint16_t& set_sl640() - { - set(types::sl640); + assert_choice_type(types::sl640, type_, "periodicityAndOffset"); return c.get(); } + void set_sym2(); + void set_sym6or7(); + void set_sl1(); + uint8_t& set_sl2(); + uint8_t& set_sl4(); + uint8_t& set_sl5(); + uint8_t& set_sl8(); + uint8_t& set_sl10(); + uint8_t& set_sl16(); + uint8_t& set_sl20(); + uint8_t& set_sl40(); + uint8_t& set_sl80(); + uint8_t& set_sl160(); + uint16_t& set_sl320(); + uint16_t& set_sl640(); private: types type_; @@ -14879,7 +13670,7 @@ struct uci_on_pusch_s { struct types_opts { enum options { dynamic_type, semi_static, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14896,34 +13687,26 @@ struct uci_on_pusch_s { // getters dynamic_l_& dynamic_type() { - assert_choice_type("dynamic", type_.to_string(), "betaOffsets"); + assert_choice_type(types::dynamic_type, type_, "betaOffsets"); return c.get(); } beta_offsets_s& semi_static() { - assert_choice_type("semiStatic", type_.to_string(), "betaOffsets"); + assert_choice_type(types::semi_static, type_, "betaOffsets"); return c.get(); } const dynamic_l_& dynamic_type() const { - assert_choice_type("dynamic", type_.to_string(), "betaOffsets"); + assert_choice_type(types::dynamic_type, type_, "betaOffsets"); return c.get(); } const beta_offsets_s& semi_static() const { - assert_choice_type("semiStatic", type_.to_string(), "betaOffsets"); - return c.get(); - } - dynamic_l_& set_dynamic_type() - { - set(types::dynamic_type); - return c.get(); - } - beta_offsets_s& set_semi_static() - { - set(types::semi_static); + assert_choice_type(types::semi_static, type_, "betaOffsets"); return c.get(); } + dynamic_l_& set_dynamic_type(); + beta_offsets_s& set_semi_static(); private: types type_; @@ -14934,7 +13717,7 @@ struct uci_on_pusch_s { struct scaling_opts { enum options { f0p5, f0p65, f0p8, f1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated scaling_e_; @@ -14956,16 +13739,16 @@ struct beam_fail_recovery_cfg_s { enum options { one_eighth, one_fourth, one_half, one, two, four, eight, sixteen, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ssb_per_rach_occasion_e_; struct beam_fail_recovery_timer_opts { enum options { ms10, ms20, ms40, ms60, ms80, ms100, ms150, ms200, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated beam_fail_recovery_timer_e_; @@ -15006,14 +13789,14 @@ struct cfgured_grant_cfg_s { struct freq_hop_opts { enum options { intra_slot, inter_slot, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated freq_hop_e_; struct mcs_table_opts { enum options { qam256, qam64_low_se, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcs_table_e_; @@ -15021,7 +13804,7 @@ struct cfgured_grant_cfg_s { enum options { qam256, qam64_low_se, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcs_table_transform_precoder_e_; @@ -15029,7 +13812,7 @@ struct cfgured_grant_cfg_s { enum options { res_alloc_type0, res_alloc_type1, dynamic_switch, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated res_alloc_e_; @@ -15037,21 +13820,21 @@ struct cfgured_grant_cfg_s { enum options { n0, n1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pwr_ctrl_loop_to_use_e_; struct transform_precoder_opts { enum options { enabled, disabled, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated transform_precoder_e_; struct rep_k_opts { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rep_k_e_; @@ -15059,7 +13842,7 @@ struct cfgured_grant_cfg_s { enum options { s1_minus0231, s2_minus0303, s3_minus0000, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated rep_k_rv_e_; @@ -15113,7 +13896,7 @@ struct cfgured_grant_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated periodicity_e_; struct rrc_cfgured_ul_grant_s_ { @@ -15226,13 +14009,13 @@ struct pusch_cfg_s { struct tx_cfg_opts { enum options { codebook, non_codebook, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated tx_cfg_e_; struct freq_hop_opts { enum options { intra_slot, inter_slot, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated freq_hop_e_; using freq_hop_offset_lists_l_ = bounded_array; @@ -15240,7 +14023,7 @@ struct pusch_cfg_s { enum options { res_alloc_type0, res_alloc_type1, dynamic_switch, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated res_alloc_e_; @@ -15248,7 +14031,7 @@ struct pusch_cfg_s { enum options { n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pusch_aggregation_factor_e_; @@ -15256,7 +14039,7 @@ struct pusch_cfg_s { enum options { qam256, qam64_low_se, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcs_table_e_; @@ -15264,20 +14047,20 @@ struct pusch_cfg_s { enum options { qam256, qam64_low_se, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcs_table_transform_precoder_e_; struct transform_precoder_opts { enum options { enabled, disabled, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated transform_precoder_e_; struct codebook_subset_opts { enum options { fully_and_partial_and_non_coherent, partial_and_non_coherent, non_coherent, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated codebook_subset_e_; @@ -15391,7 +14174,7 @@ struct bwp_ul_s { struct ca_bw_class_eutra_opts { enum options { a, b, c, d, e, f, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ca_bw_class_eutra_e; @@ -15399,7 +14182,7 @@ typedef enumerated ca_bw_class_eutra_e; struct ca_bw_class_nr_opts { enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ca_bw_class_nr_e; @@ -15422,7 +14205,7 @@ struct band_params_c { struct types_opts { enum options { eutra, nr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15439,34 +14222,26 @@ struct band_params_c { // getters eutra_s_& eutra() { - assert_choice_type("eutra", type_.to_string(), "BandParameters"); + assert_choice_type(types::eutra, type_, "BandParameters"); return c.get(); } nr_s_& nr() { - assert_choice_type("nr", type_.to_string(), "BandParameters"); + assert_choice_type(types::nr, type_, "BandParameters"); return c.get(); } const eutra_s_& eutra() const { - assert_choice_type("eutra", type_.to_string(), "BandParameters"); + assert_choice_type(types::eutra, type_, "BandParameters"); return c.get(); } const nr_s_& nr() const { - assert_choice_type("nr", type_.to_string(), "BandParameters"); - return c.get(); - } - eutra_s_& set_eutra() - { - set(types::eutra); - return c.get(); - } - nr_s_& set_nr() - { - set(types::nr); + assert_choice_type(types::nr, type_, "BandParameters"); return c.get(); } + eutra_s_& set_eutra(); + nr_s_& set_nr(); private: types type_; @@ -15500,7 +14275,7 @@ struct ca_params_nr_s { enum options { n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_num_tag_e_; @@ -15529,21 +14304,21 @@ struct mrdc_params_s { struct ul_sharing_eutra_nr_opts { enum options { tdm, fdm, both, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ul_sharing_eutra_nr_e_; struct ul_switching_time_eutra_nr_opts { enum options { type1, type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ul_switching_time_eutra_nr_e_; struct intra_band_endc_support_opts { enum options { non_contiguous, both, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated intra_band_endc_support_e_; @@ -15617,9 +14392,9 @@ struct srs_switching_time_eutra_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated switching_time_dl_e_; struct switching_time_ul_opts { @@ -15643,9 +14418,9 @@ struct srs_switching_time_eutra_s { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated switching_time_ul_e_; @@ -15667,7 +14442,7 @@ struct srs_switching_time_nr_s { enum options { n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated switching_time_dl_e_; @@ -15675,7 +14450,7 @@ struct srs_switching_time_nr_s { enum options { n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated switching_time_ul_e_; @@ -15710,7 +14485,7 @@ struct band_params_v1540_s { struct types_opts { enum options { nr, eutra, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15727,34 +14502,26 @@ struct band_params_v1540_s { // getters nr_s_& nr() { - assert_choice_type("nr", type_.to_string(), "srs-CarrierSwitch"); + assert_choice_type(types::nr, type_, "srs-CarrierSwitch"); return c.get(); } eutra_s_& eutra() { - assert_choice_type("eutra", type_.to_string(), "srs-CarrierSwitch"); + assert_choice_type(types::eutra, type_, "srs-CarrierSwitch"); return c.get(); } const nr_s_& nr() const { - assert_choice_type("nr", type_.to_string(), "srs-CarrierSwitch"); + assert_choice_type(types::nr, type_, "srs-CarrierSwitch"); return c.get(); } const eutra_s_& eutra() const { - assert_choice_type("eutra", type_.to_string(), "srs-CarrierSwitch"); - return c.get(); - } - nr_s_& set_nr() - { - set(types::nr); - return c.get(); - } - eutra_s_& set_eutra() - { - set(types::eutra); + assert_choice_type(types::eutra, type_, "srs-CarrierSwitch"); return c.get(); } + nr_s_& set_nr(); + eutra_s_& set_eutra(); private: types type_; @@ -15766,7 +14533,7 @@ struct band_params_v1540_s { struct supported_srs_tx_port_switch_opts { enum options { t1r2, t1r4, t2r4, t1r4_t2r4, t1r1, t2r2, t4r4, not_supported, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_srs_tx_port_switch_e_; @@ -15995,7 +14762,7 @@ struct supported_csi_rs_res_s { enum options { p2, p4, p8, p12, p16, p24, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_tx_ports_per_res_e_; @@ -16017,7 +14784,7 @@ struct beam_management_ssb_csi_rs_s { enum options { n0, n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_ssb_csi_rs_res_one_tx_e_; @@ -16025,7 +14792,7 @@ struct beam_management_ssb_csi_rs_s { enum options { n0, n4, n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_csi_rs_res_e_; @@ -16033,21 +14800,21 @@ struct beam_management_ssb_csi_rs_s { enum options { n0, n4, n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_csi_rs_res_two_tx_e_; struct supported_csi_rs_density_opts { enum options { one, three, one_and_three, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_csi_rs_density_e_; struct max_num_aperiodic_csi_rs_res_opts { enum options { n0, n1, n4, n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_aperiodic_csi_rs_res_e_; @@ -16085,7 +14852,7 @@ struct csi_rs_im_reception_for_feedback_s { enum options { n1, n2, n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_cfg_num_csi_im_per_cc_e_; @@ -16122,7 +14889,7 @@ struct csi_report_framework_s { enum options { n3, n7, n15, n31, n63, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_aperiodic_csi_trigger_state_per_cc_e_; @@ -16151,7 +14918,7 @@ struct codebook_params_s { struct modes_opts { enum options { mode1, mode1and_mode2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated modes_e_; @@ -16166,7 +14933,7 @@ struct codebook_params_s { enum options { mode1, mode2, both, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated modes_e_; @@ -16174,7 +14941,7 @@ struct codebook_params_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_panels_e_; @@ -16196,7 +14963,7 @@ struct codebook_params_s { struct amplitude_scaling_type_opts { enum options { wideband, wideband_and_subband, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated amplitude_scaling_type_e_; @@ -16211,7 +14978,7 @@ struct codebook_params_s { struct amplitude_scaling_type_opts { enum options { wideband, wideband_and_subband, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated amplitude_scaling_type_e_; @@ -16240,7 +15007,7 @@ struct dummy_g_s { enum options { n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_ssb_csi_rs_res_one_tx_e_; @@ -16248,14 +15015,14 @@ struct dummy_g_s { enum options { n0, n4, n8, n16, n32, n64, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_ssb_csi_rs_res_two_tx_e_; struct supported_csi_rs_density_opts { enum options { one, three, one_and_three, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_csi_rs_density_e_; @@ -16322,7 +15089,7 @@ struct spatial_relations_s { enum options { n4, n8, n16, n32, n64, n96, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_cfgured_spatial_relations_e_; @@ -16330,7 +15097,7 @@ struct spatial_relations_s { enum options { n1, n2, n4, n8, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_active_spatial_relations_e_; @@ -16338,7 +15105,7 @@ struct spatial_relations_s { enum options { n1, n2, n4, n8, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_dl_rs_qcl_type_d_e_; @@ -16362,7 +15129,7 @@ struct mimo_params_per_band_s { enum options { n4, n8, n16, n32, n64, n128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_cfgured_tcistates_per_cc_e_; @@ -16370,7 +15137,7 @@ struct mimo_params_per_band_s { enum options { n1, n2, n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_active_tci_per_bwp_e_; @@ -16384,7 +15151,7 @@ struct mimo_params_per_band_s { struct pusch_trans_coherence_opts { enum options { non_coherent, partial_coherent, full_coherent, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pusch_trans_coherence_e_; struct max_num_rx_tx_beam_switch_dl_s_ { @@ -16392,7 +15159,7 @@ struct mimo_params_per_band_s { enum options { n4, n7, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus15k_hz_e_; @@ -16400,7 +15167,7 @@ struct mimo_params_per_band_s { enum options { n4, n7, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus30k_hz_e_; @@ -16408,7 +15175,7 @@ struct mimo_params_per_band_s { enum options { n4, n7, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -16416,7 +15183,7 @@ struct mimo_params_per_band_s { enum options { n4, n7, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -16424,7 +15191,7 @@ struct mimo_params_per_band_s { enum options { n4, n7, n14, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus240k_hz_e_; @@ -16445,7 +15212,7 @@ struct mimo_params_per_band_s { enum options { n1, n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_non_group_beam_report_e_; @@ -16454,7 +15221,7 @@ struct mimo_params_per_band_s { enum options { n2, n4, n8, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_srs_res_per_set_bm_e_; @@ -16468,7 +15235,7 @@ struct mimo_params_per_band_s { enum options { sym2, sym4, sym8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus15k_hz_e_; @@ -16476,7 +15243,7 @@ struct mimo_params_per_band_s { enum options { sym4, sym8, sym14, sym28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus30k_hz_e_; @@ -16484,7 +15251,7 @@ struct mimo_params_per_band_s { enum options { sym8, sym14, sym28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -16492,7 +15259,7 @@ struct mimo_params_per_band_s { enum options { sym14, sym28, sym56, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -16532,7 +15299,7 @@ struct mimo_params_per_band_s { enum options { sym14, sym28, sym48, sym224, sym336, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -16540,7 +15307,7 @@ struct mimo_params_per_band_s { enum options { sym14, sym28, sym48, sym224, sym336, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -16622,7 +15389,7 @@ struct band_nr_s { enum options { upto2, upto4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated bwp_same_numerology_e_; @@ -16630,7 +15397,7 @@ struct band_nr_s { enum options { pc1, pc2, pc3, pc4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ue_pwr_class_e_; @@ -16653,7 +15420,7 @@ struct band_nr_s { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -16671,34 +15438,26 @@ struct band_nr_s { // getters fr1_s_& fr1() { - assert_choice_type("fr1", type_.to_string(), "channelBWs-DL"); + assert_choice_type(types::fr1, type_, "channelBWs-DL"); return c.get(); } fr2_s_& fr2() { - assert_choice_type("fr2", type_.to_string(), "channelBWs-DL"); + assert_choice_type(types::fr2, type_, "channelBWs-DL"); return c.get(); } const fr1_s_& fr1() const { - assert_choice_type("fr1", type_.to_string(), "channelBWs-DL"); + assert_choice_type(types::fr1, type_, "channelBWs-DL"); return c.get(); } const fr2_s_& fr2() const { - assert_choice_type("fr2", type_.to_string(), "channelBWs-DL"); - return c.get(); - } - fr1_s_& set_fr1() - { - set(types::fr1); - return c.get(); - } - fr2_s_& set_fr2() - { - set(types::fr2); + assert_choice_type(types::fr2, type_, "channelBWs-DL"); return c.get(); } + fr1_s_& set_fr1(); + fr2_s_& set_fr2(); private: types type_; @@ -16725,7 +15484,7 @@ struct band_nr_s { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -16743,34 +15502,26 @@ struct band_nr_s { // getters fr1_s_& fr1() { - assert_choice_type("fr1", type_.to_string(), "channelBWs-UL"); + assert_choice_type(types::fr1, type_, "channelBWs-UL"); return c.get(); } fr2_s_& fr2() { - assert_choice_type("fr2", type_.to_string(), "channelBWs-UL"); + assert_choice_type(types::fr2, type_, "channelBWs-UL"); return c.get(); } const fr1_s_& fr1() const { - assert_choice_type("fr1", type_.to_string(), "channelBWs-UL"); + assert_choice_type(types::fr1, type_, "channelBWs-UL"); return c.get(); } const fr2_s_& fr2() const { - assert_choice_type("fr2", type_.to_string(), "channelBWs-UL"); - return c.get(); - } - fr1_s_& set_fr1() - { - set(types::fr1); - return c.get(); - } - fr2_s_& set_fr2() - { - set(types::fr2); + assert_choice_type(types::fr2, type_, "channelBWs-UL"); return c.get(); } + fr1_s_& set_fr1(); + fr2_s_& set_fr2(); private: types type_; @@ -16782,7 +15533,7 @@ struct band_nr_s { enum options { n60, n70, n80, n90, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_ul_duty_cycle_pc2_fr1_e_; @@ -16790,7 +15541,7 @@ struct band_nr_s { enum options { n15, n20, n25, n30, n40, n50, n60, n70, n80, n90, n100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_ul_duty_cycle_fr2_e_; @@ -16813,7 +15564,7 @@ struct band_nr_s { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -16831,34 +15582,26 @@ struct band_nr_s { // getters fr1_s_& fr1() { - assert_choice_type("fr1", type_.to_string(), "channelBWs-DL-v1590"); + assert_choice_type(types::fr1, type_, "channelBWs-DL-v1590"); return c.get(); } fr2_s_& fr2() { - assert_choice_type("fr2", type_.to_string(), "channelBWs-DL-v1590"); + assert_choice_type(types::fr2, type_, "channelBWs-DL-v1590"); return c.get(); } const fr1_s_& fr1() const { - assert_choice_type("fr1", type_.to_string(), "channelBWs-DL-v1590"); + assert_choice_type(types::fr1, type_, "channelBWs-DL-v1590"); return c.get(); } const fr2_s_& fr2() const { - assert_choice_type("fr2", type_.to_string(), "channelBWs-DL-v1590"); - return c.get(); - } - fr1_s_& set_fr1() - { - set(types::fr1); - return c.get(); - } - fr2_s_& set_fr2() - { - set(types::fr2); + assert_choice_type(types::fr2, type_, "channelBWs-DL-v1590"); return c.get(); } + fr1_s_& set_fr1(); + fr2_s_& set_fr2(); private: types type_; @@ -16885,7 +15628,7 @@ struct band_nr_s { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -16903,34 +15646,26 @@ struct band_nr_s { // getters fr1_s_& fr1() { - assert_choice_type("fr1", type_.to_string(), "channelBWs-UL-v1590"); + assert_choice_type(types::fr1, type_, "channelBWs-UL-v1590"); return c.get(); } fr2_s_& fr2() { - assert_choice_type("fr2", type_.to_string(), "channelBWs-UL-v1590"); + assert_choice_type(types::fr2, type_, "channelBWs-UL-v1590"); return c.get(); } const fr1_s_& fr1() const { - assert_choice_type("fr1", type_.to_string(), "channelBWs-UL-v1590"); + assert_choice_type(types::fr1, type_, "channelBWs-UL-v1590"); return c.get(); } const fr2_s_& fr2() const { - assert_choice_type("fr2", type_.to_string(), "channelBWs-UL-v1590"); - return c.get(); - } - fr1_s_& set_fr1() - { - set(types::fr1); - return c.get(); - } - fr2_s_& set_fr2() - { - set(types::fr2); + assert_choice_type(types::fr2, type_, "channelBWs-UL-v1590"); return c.get(); } + fr1_s_& set_fr1(); + fr2_s_& set_fr2(); private: types type_; @@ -17022,9 +15757,9 @@ struct cfra_s { enum options { one_eighth, one_fourth, one_half, one, two, four, eight, sixteen, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated ssb_per_rach_occasion_e_; @@ -17051,7 +15786,7 @@ struct cfra_s { struct types_opts { enum options { ssb, csirs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17068,34 +15803,26 @@ struct cfra_s { // getters ssb_s_& ssb() { - assert_choice_type("ssb", type_.to_string(), "resources"); + assert_choice_type(types::ssb, type_, "resources"); return c.get(); } csirs_s_& csirs() { - assert_choice_type("csirs", type_.to_string(), "resources"); + assert_choice_type(types::csirs, type_, "resources"); return c.get(); } const ssb_s_& ssb() const { - assert_choice_type("ssb", type_.to_string(), "resources"); + assert_choice_type(types::ssb, type_, "resources"); return c.get(); } const csirs_s_& csirs() const { - assert_choice_type("csirs", type_.to_string(), "resources"); - return c.get(); - } - ssb_s_& set_ssb() - { - set(types::ssb); - return c.get(); - } - csirs_s_& set_csirs() - { - set(types::csirs); + assert_choice_type(types::csirs, type_, "resources"); return c.get(); } + ssb_s_& set_ssb(); + csirs_s_& set_csirs(); private: types type_; @@ -17134,7 +15861,7 @@ struct csi_associated_report_cfg_info_s { struct types_opts { enum options { nzp_csi_rs, csi_ssb_res_set, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17151,34 +15878,26 @@ struct csi_associated_report_cfg_info_s { // getters nzp_csi_rs_s_& nzp_csi_rs() { - assert_choice_type("nzp-CSI-RS", type_.to_string(), "resourcesForChannel"); + assert_choice_type(types::nzp_csi_rs, type_, "resourcesForChannel"); return c.get(); } uint8_t& csi_ssb_res_set() { - assert_choice_type("csi-SSB-ResourceSet", type_.to_string(), "resourcesForChannel"); + assert_choice_type(types::csi_ssb_res_set, type_, "resourcesForChannel"); return c.get(); } const nzp_csi_rs_s_& nzp_csi_rs() const { - assert_choice_type("nzp-CSI-RS", type_.to_string(), "resourcesForChannel"); + assert_choice_type(types::nzp_csi_rs, type_, "resourcesForChannel"); return c.get(); } const uint8_t& csi_ssb_res_set() const { - assert_choice_type("csi-SSB-ResourceSet", type_.to_string(), "resourcesForChannel"); - return c.get(); - } - nzp_csi_rs_s_& set_nzp_csi_rs() - { - set(types::nzp_csi_rs); - return c.get(); - } - uint8_t& set_csi_ssb_res_set() - { - set(types::csi_ssb_res_set); + assert_choice_type(types::csi_ssb_res_set, type_, "resourcesForChannel"); return c.get(); } + nzp_csi_rs_s_& set_nzp_csi_rs(); + uint8_t& set_csi_ssb_res_set(); private: types type_; @@ -17229,7 +15948,7 @@ struct csi_im_res_s { enum options { s0, s2, s4, s6, s8, s10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_location_p0_e_; @@ -17243,7 +15962,7 @@ struct csi_im_res_s { enum options { s0, s4, s8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_location_p1_e_; @@ -17256,7 +15975,7 @@ struct csi_im_res_s { enum options { pattern0, pattern1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -17274,34 +15993,26 @@ struct csi_im_res_s { // getters pattern0_s_& pattern0() { - assert_choice_type("pattern0", type_.to_string(), "csi-IM-ResourceElementPattern"); + assert_choice_type(types::pattern0, type_, "csi-IM-ResourceElementPattern"); return c.get(); } pattern1_s_& pattern1() { - assert_choice_type("pattern1", type_.to_string(), "csi-IM-ResourceElementPattern"); + assert_choice_type(types::pattern1, type_, "csi-IM-ResourceElementPattern"); return c.get(); } const pattern0_s_& pattern0() const { - assert_choice_type("pattern0", type_.to_string(), "csi-IM-ResourceElementPattern"); + assert_choice_type(types::pattern0, type_, "csi-IM-ResourceElementPattern"); return c.get(); } const pattern1_s_& pattern1() const { - assert_choice_type("pattern1", type_.to_string(), "csi-IM-ResourceElementPattern"); - return c.get(); - } - pattern0_s_& set_pattern0() - { - set(types::pattern0); - return c.get(); - } - pattern1_s_& set_pattern1() - { - set(types::pattern1); + assert_choice_type(types::pattern1, type_, "csi-IM-ResourceElementPattern"); return c.get(); } + pattern0_s_& set_pattern0(); + pattern1_s_& set_pattern1(); private: types type_; @@ -17361,7 +16072,7 @@ struct csi_report_periodicity_and_offset_c { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -17379,154 +16090,114 @@ struct csi_report_periodicity_and_offset_c { // getters uint8_t& slots4() { - assert_choice_type("slots4", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots4, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots5() { - assert_choice_type("slots5", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots5, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots8() { - assert_choice_type("slots8", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots8, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots10() { - assert_choice_type("slots10", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots10, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots16() { - assert_choice_type("slots16", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots16, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots20() { - assert_choice_type("slots20", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots20, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots40() { - assert_choice_type("slots40", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots40, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots80() { - assert_choice_type("slots80", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots80, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint8_t& slots160() { - assert_choice_type("slots160", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots160, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } uint16_t& slots320() { - assert_choice_type("slots320", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots320, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots4() const { - assert_choice_type("slots4", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots4, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots5() const { - assert_choice_type("slots5", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots5, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots8() const { - assert_choice_type("slots8", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots8, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots10() const { - assert_choice_type("slots10", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots10, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots16() const { - assert_choice_type("slots16", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots16, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots20() const { - assert_choice_type("slots20", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots20, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots40() const { - assert_choice_type("slots40", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots40, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots80() const { - assert_choice_type("slots80", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots80, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint8_t& slots160() const { - assert_choice_type("slots160", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); + assert_choice_type(types::slots160, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } const uint16_t& slots320() const { - assert_choice_type("slots320", type_.to_string(), "CSI-ReportPeriodicityAndOffset"); - return c.get(); - } - uint8_t& set_slots4() - { - set(types::slots4); - return c.get(); - } - uint8_t& set_slots5() - { - set(types::slots5); - return c.get(); - } - uint8_t& set_slots8() - { - set(types::slots8); - return c.get(); - } - uint8_t& set_slots10() - { - set(types::slots10); - return c.get(); - } - uint8_t& set_slots16() - { - set(types::slots16); - return c.get(); - } - uint8_t& set_slots20() - { - set(types::slots20); - return c.get(); - } - uint8_t& set_slots40() - { - set(types::slots40); - return c.get(); - } - uint8_t& set_slots80() - { - set(types::slots80); - return c.get(); - } - uint8_t& set_slots160() - { - set(types::slots160); - return c.get(); - } - uint16_t& set_slots320() - { - set(types::slots320); + assert_choice_type(types::slots320, type_, "CSI-ReportPeriodicityAndOffset"); return c.get(); } + uint8_t& set_slots4(); + uint8_t& set_slots5(); + uint8_t& set_slots8(); + uint8_t& set_slots10(); + uint8_t& set_slots16(); + uint8_t& set_slots20(); + uint8_t& set_slots40(); + uint8_t& set_slots80(); + uint8_t& set_slots160(); + uint16_t& set_slots320(); private: types type_; @@ -17577,7 +16248,7 @@ struct codebook_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17594,199 +16265,147 @@ struct codebook_cfg_s { // getters fixed_bitstring<8>& two_one_type_i_single_panel_restrict() { - assert_choice_type("two-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::two_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<64>& two_two_type_i_single_panel_restrict() { - assert_choice_type("two-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::two_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<16>& four_one_type_i_single_panel_restrict() { - assert_choice_type("four-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<96>& three_two_type_i_single_panel_restrict() { - assert_choice_type("three-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::three_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<24>& six_one_type_i_single_panel_restrict() { - assert_choice_type("six-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::six_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<128>& four_two_type_i_single_panel_restrict() { - assert_choice_type("four-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<32>& eight_one_type_i_single_panel_restrict() { - assert_choice_type("eight-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::eight_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<192>& four_three_type_i_single_panel_restrict() { - assert_choice_type("four-three-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_three_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<192>& six_two_type_i_single_panel_restrict() { - assert_choice_type("six-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::six_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<48>& twelve_one_type_i_single_panel_restrict() { - assert_choice_type("twelve-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::twelve_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<256>& four_four_type_i_single_panel_restrict() { - assert_choice_type("four-four-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_four_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<256>& eight_two_type_i_single_panel_restrict() { - assert_choice_type("eight-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::eight_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } fixed_bitstring<64>& sixteen_one_type_i_single_panel_restrict() { - assert_choice_type("sixteen-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::sixteen_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<8>& two_one_type_i_single_panel_restrict() const { - assert_choice_type("two-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::two_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<64>& two_two_type_i_single_panel_restrict() const { - assert_choice_type("two-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::two_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<16>& four_one_type_i_single_panel_restrict() const { - assert_choice_type("four-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<96>& three_two_type_i_single_panel_restrict() const { - assert_choice_type("three-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::three_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<24>& six_one_type_i_single_panel_restrict() const { - assert_choice_type("six-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::six_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<128>& four_two_type_i_single_panel_restrict() const { - assert_choice_type("four-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<32>& eight_one_type_i_single_panel_restrict() const { - assert_choice_type("eight-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::eight_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<192>& four_three_type_i_single_panel_restrict() const { - assert_choice_type("four-three-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_three_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<192>& six_two_type_i_single_panel_restrict() const { - assert_choice_type("six-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::six_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<48>& twelve_one_type_i_single_panel_restrict() const { - assert_choice_type("twelve-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::twelve_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<256>& four_four_type_i_single_panel_restrict() const { - assert_choice_type("four-four-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::four_four_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<256>& eight_two_type_i_single_panel_restrict() const { - assert_choice_type("eight-two-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); + assert_choice_type(types::eight_two_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } const fixed_bitstring<64>& sixteen_one_type_i_single_panel_restrict() const { - assert_choice_type("sixteen-one-TypeI-SinglePanel-Restriction", type_.to_string(), "n1-n2"); - return c.get >(); - } - fixed_bitstring<8>& set_two_one_type_i_single_panel_restrict() - { - set(types::two_one_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<64>& set_two_two_type_i_single_panel_restrict() - { - set(types::two_two_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<16>& set_four_one_type_i_single_panel_restrict() - { - set(types::four_one_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<96>& set_three_two_type_i_single_panel_restrict() - { - set(types::three_two_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<24>& set_six_one_type_i_single_panel_restrict() - { - set(types::six_one_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<128>& set_four_two_type_i_single_panel_restrict() - { - set(types::four_two_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<32>& set_eight_one_type_i_single_panel_restrict() - { - set(types::eight_one_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<192>& set_four_three_type_i_single_panel_restrict() - { - set(types::four_three_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<192>& set_six_two_type_i_single_panel_restrict() - { - set(types::six_two_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<48>& set_twelve_one_type_i_single_panel_restrict() - { - set(types::twelve_one_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<256>& set_four_four_type_i_single_panel_restrict() - { - set(types::four_four_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<256>& set_eight_two_type_i_single_panel_restrict() - { - set(types::eight_two_type_i_single_panel_restrict); - return c.get >(); - } - fixed_bitstring<64>& set_sixteen_one_type_i_single_panel_restrict() - { - set(types::sixteen_one_type_i_single_panel_restrict); + assert_choice_type(types::sixteen_one_type_i_single_panel_restrict, type_, "n1-n2"); return c.get >(); } + fixed_bitstring<8>& set_two_one_type_i_single_panel_restrict(); + fixed_bitstring<64>& set_two_two_type_i_single_panel_restrict(); + fixed_bitstring<16>& set_four_one_type_i_single_panel_restrict(); + fixed_bitstring<96>& set_three_two_type_i_single_panel_restrict(); + fixed_bitstring<24>& set_six_one_type_i_single_panel_restrict(); + fixed_bitstring<128>& set_four_two_type_i_single_panel_restrict(); + fixed_bitstring<32>& set_eight_one_type_i_single_panel_restrict(); + fixed_bitstring<192>& set_four_three_type_i_single_panel_restrict(); + fixed_bitstring<192>& set_six_two_type_i_single_panel_restrict(); + fixed_bitstring<48>& set_twelve_one_type_i_single_panel_restrict(); + fixed_bitstring<256>& set_four_four_type_i_single_panel_restrict(); + fixed_bitstring<256>& set_eight_two_type_i_single_panel_restrict(); + fixed_bitstring<64>& set_sixteen_one_type_i_single_panel_restrict(); private: types type_; @@ -17804,7 +16423,7 @@ struct codebook_cfg_s { enum options { two, more_than_two, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -17822,34 +16441,26 @@ struct codebook_cfg_s { // getters two_s_& two() { - assert_choice_type("two", type_.to_string(), "nrOfAntennaPorts"); + assert_choice_type(types::two, type_, "nrOfAntennaPorts"); return c.get(); } more_than_two_s_& more_than_two() { - assert_choice_type("moreThanTwo", type_.to_string(), "nrOfAntennaPorts"); + assert_choice_type(types::more_than_two, type_, "nrOfAntennaPorts"); return c.get(); } const two_s_& two() const { - assert_choice_type("two", type_.to_string(), "nrOfAntennaPorts"); + assert_choice_type(types::two, type_, "nrOfAntennaPorts"); return c.get(); } const more_than_two_s_& more_than_two() const { - assert_choice_type("moreThanTwo", type_.to_string(), "nrOfAntennaPorts"); - return c.get(); - } - two_s_& set_two() - { - set(types::two); - return c.get(); - } - more_than_two_s_& set_more_than_two() - { - set(types::more_than_two); + assert_choice_type(types::more_than_two, type_, "nrOfAntennaPorts"); return c.get(); } + two_s_& set_two(); + more_than_two_s_& set_more_than_two(); private: types type_; @@ -17877,7 +16488,7 @@ struct codebook_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17894,124 +16505,92 @@ struct codebook_cfg_s { // getters fixed_bitstring<8>& two_two_one_type_i_multi_panel_restrict() { - assert_choice_type("two-two-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_two_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<16>& two_four_one_type_i_multi_panel_restrict() { - assert_choice_type("two-four-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_four_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<8>& four_two_one_type_i_multi_panel_restrict() { - assert_choice_type("four-two-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::four_two_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<64>& two_two_two_type_i_multi_panel_restrict() { - assert_choice_type("two-two-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_two_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<32>& two_eight_one_type_i_multi_panel_restrict() { - assert_choice_type("two-eight-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_eight_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<16>& four_four_one_type_i_multi_panel_restrict() { - assert_choice_type("four-four-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::four_four_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<128>& two_four_two_type_i_multi_panel_restrict() { - assert_choice_type("two-four-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_four_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } fixed_bitstring<64>& four_two_two_type_i_multi_panel_restrict() { - assert_choice_type("four-two-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::four_two_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<8>& two_two_one_type_i_multi_panel_restrict() const { - assert_choice_type("two-two-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_two_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<16>& two_four_one_type_i_multi_panel_restrict() const { - assert_choice_type("two-four-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_four_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<8>& four_two_one_type_i_multi_panel_restrict() const { - assert_choice_type("four-two-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::four_two_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<64>& two_two_two_type_i_multi_panel_restrict() const { - assert_choice_type("two-two-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_two_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<32>& two_eight_one_type_i_multi_panel_restrict() const { - assert_choice_type("two-eight-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_eight_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<16>& four_four_one_type_i_multi_panel_restrict() const { - assert_choice_type("four-four-one-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::four_four_one_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<128>& two_four_two_type_i_multi_panel_restrict() const { - assert_choice_type("two-four-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); + assert_choice_type(types::two_four_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } const fixed_bitstring<64>& four_two_two_type_i_multi_panel_restrict() const { - assert_choice_type("four-two-two-TypeI-MultiPanel-Restriction", type_.to_string(), "ng-n1-n2"); - return c.get >(); - } - fixed_bitstring<8>& set_two_two_one_type_i_multi_panel_restrict() - { - set(types::two_two_one_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<16>& set_two_four_one_type_i_multi_panel_restrict() - { - set(types::two_four_one_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<8>& set_four_two_one_type_i_multi_panel_restrict() - { - set(types::four_two_one_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<64>& set_two_two_two_type_i_multi_panel_restrict() - { - set(types::two_two_two_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<32>& set_two_eight_one_type_i_multi_panel_restrict() - { - set(types::two_eight_one_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<16>& set_four_four_one_type_i_multi_panel_restrict() - { - set(types::four_four_one_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<128>& set_two_four_two_type_i_multi_panel_restrict() - { - set(types::two_four_two_type_i_multi_panel_restrict); - return c.get >(); - } - fixed_bitstring<64>& set_four_two_two_type_i_multi_panel_restrict() - { - set(types::four_two_two_type_i_multi_panel_restrict); + assert_choice_type(types::four_two_two_type_i_multi_panel_restrict, type_, "ng-n1-n2"); return c.get >(); } + fixed_bitstring<8>& set_two_two_one_type_i_multi_panel_restrict(); + fixed_bitstring<16>& set_two_four_one_type_i_multi_panel_restrict(); + fixed_bitstring<8>& set_four_two_one_type_i_multi_panel_restrict(); + fixed_bitstring<64>& set_two_two_two_type_i_multi_panel_restrict(); + fixed_bitstring<32>& set_two_eight_one_type_i_multi_panel_restrict(); + fixed_bitstring<16>& set_four_four_one_type_i_multi_panel_restrict(); + fixed_bitstring<128>& set_two_four_two_type_i_multi_panel_restrict(); + fixed_bitstring<64>& set_four_two_two_type_i_multi_panel_restrict(); private: types type_; @@ -18027,7 +16606,7 @@ struct codebook_cfg_s { struct types_opts { enum options { type_i_single_panel, type_i_multi_panel, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18044,34 +16623,26 @@ struct codebook_cfg_s { // getters type_i_single_panel_s_& type_i_single_panel() { - assert_choice_type("typeI-SinglePanel", type_.to_string(), "subType"); + assert_choice_type(types::type_i_single_panel, type_, "subType"); return c.get(); } type_i_multi_panel_s_& type_i_multi_panel() { - assert_choice_type("typeI-MultiPanel", type_.to_string(), "subType"); + assert_choice_type(types::type_i_multi_panel, type_, "subType"); return c.get(); } const type_i_single_panel_s_& type_i_single_panel() const { - assert_choice_type("typeI-SinglePanel", type_.to_string(), "subType"); + assert_choice_type(types::type_i_single_panel, type_, "subType"); return c.get(); } const type_i_multi_panel_s_& type_i_multi_panel() const { - assert_choice_type("typeI-MultiPanel", type_.to_string(), "subType"); - return c.get(); - } - type_i_single_panel_s_& set_type_i_single_panel() - { - set(types::type_i_single_panel); - return c.get(); - } - type_i_multi_panel_s_& set_type_i_multi_panel() - { - set(types::type_i_multi_panel); + assert_choice_type(types::type_i_multi_panel, type_, "subType"); return c.get(); } + type_i_single_panel_s_& set_type_i_single_panel(); + type_i_multi_panel_s_& set_type_i_multi_panel(); private: types type_; @@ -18106,7 +16677,7 @@ struct codebook_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18123,199 +16694,147 @@ struct codebook_cfg_s { // getters fixed_bitstring<16>& two_one() { - assert_choice_type("two-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::two_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<43>& two_two() { - assert_choice_type("two-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::two_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<32>& four_one() { - assert_choice_type("four-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<59>& three_two() { - assert_choice_type("three-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::three_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<48>& six_one() { - assert_choice_type("six-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::six_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<75>& four_two() { - assert_choice_type("four-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<64>& eight_one() { - assert_choice_type("eight-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::eight_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<107>& four_three() { - assert_choice_type("four-three", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_three, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<107>& six_two() { - assert_choice_type("six-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::six_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<96>& twelve_one() { - assert_choice_type("twelve-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::twelve_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<139>& four_four() { - assert_choice_type("four-four", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_four, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<139>& eight_two() { - assert_choice_type("eight-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::eight_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } fixed_bitstring<128>& sixteen_one() { - assert_choice_type("sixteen-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::sixteen_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<16>& two_one() const { - assert_choice_type("two-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::two_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<43>& two_two() const { - assert_choice_type("two-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::two_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<32>& four_one() const { - assert_choice_type("four-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<59>& three_two() const { - assert_choice_type("three-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::three_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<48>& six_one() const { - assert_choice_type("six-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::six_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<75>& four_two() const { - assert_choice_type("four-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<64>& eight_one() const { - assert_choice_type("eight-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::eight_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<107>& four_three() const { - assert_choice_type("four-three", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_three, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<107>& six_two() const { - assert_choice_type("six-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::six_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<96>& twelve_one() const { - assert_choice_type("twelve-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::twelve_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<139>& four_four() const { - assert_choice_type("four-four", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::four_four, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<139>& eight_two() const { - assert_choice_type("eight-two", type_.to_string(), "n1-n2-codebookSubsetRestriction"); + assert_choice_type(types::eight_two, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } const fixed_bitstring<128>& sixteen_one() const { - assert_choice_type("sixteen-one", type_.to_string(), "n1-n2-codebookSubsetRestriction"); - return c.get >(); - } - fixed_bitstring<16>& set_two_one() - { - set(types::two_one); - return c.get >(); - } - fixed_bitstring<43>& set_two_two() - { - set(types::two_two); - return c.get >(); - } - fixed_bitstring<32>& set_four_one() - { - set(types::four_one); - return c.get >(); - } - fixed_bitstring<59>& set_three_two() - { - set(types::three_two); - return c.get >(); - } - fixed_bitstring<48>& set_six_one() - { - set(types::six_one); - return c.get >(); - } - fixed_bitstring<75>& set_four_two() - { - set(types::four_two); - return c.get >(); - } - fixed_bitstring<64>& set_eight_one() - { - set(types::eight_one); - return c.get >(); - } - fixed_bitstring<107>& set_four_three() - { - set(types::four_three); - return c.get >(); - } - fixed_bitstring<107>& set_six_two() - { - set(types::six_two); - return c.get >(); - } - fixed_bitstring<96>& set_twelve_one() - { - set(types::twelve_one); - return c.get >(); - } - fixed_bitstring<139>& set_four_four() - { - set(types::four_four); - return c.get >(); - } - fixed_bitstring<139>& set_eight_two() - { - set(types::eight_two); - return c.get >(); - } - fixed_bitstring<128>& set_sixteen_one() - { - set(types::sixteen_one); + assert_choice_type(types::sixteen_one, type_, "n1-n2-codebookSubsetRestriction"); return c.get >(); } + fixed_bitstring<16>& set_two_one(); + fixed_bitstring<43>& set_two_two(); + fixed_bitstring<32>& set_four_one(); + fixed_bitstring<59>& set_three_two(); + fixed_bitstring<48>& set_six_one(); + fixed_bitstring<75>& set_four_two(); + fixed_bitstring<64>& set_eight_one(); + fixed_bitstring<107>& set_four_three(); + fixed_bitstring<107>& set_six_two(); + fixed_bitstring<96>& set_twelve_one(); + fixed_bitstring<139>& set_four_four(); + fixed_bitstring<139>& set_eight_two(); + fixed_bitstring<128>& set_sixteen_one(); private: types type_; @@ -18333,7 +16852,7 @@ struct codebook_cfg_s { enum options { n1, n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated port_sel_sampling_size_e_; @@ -18346,7 +16865,7 @@ struct codebook_cfg_s { struct types_opts { enum options { type_ii, type_ii_port_sel, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18363,34 +16882,26 @@ struct codebook_cfg_s { // getters type_ii_s_& type_ii() { - assert_choice_type("typeII", type_.to_string(), "subType"); + assert_choice_type(types::type_ii, type_, "subType"); return c.get(); } type_ii_port_sel_s_& type_ii_port_sel() { - assert_choice_type("typeII-PortSelection", type_.to_string(), "subType"); + assert_choice_type(types::type_ii_port_sel, type_, "subType"); return c.get(); } const type_ii_s_& type_ii() const { - assert_choice_type("typeII", type_.to_string(), "subType"); + assert_choice_type(types::type_ii, type_, "subType"); return c.get(); } const type_ii_port_sel_s_& type_ii_port_sel() const { - assert_choice_type("typeII-PortSelection", type_.to_string(), "subType"); - return c.get(); - } - type_ii_s_& set_type_ii() - { - set(types::type_ii); - return c.get(); - } - type_ii_port_sel_s_& set_type_ii_port_sel() - { - set(types::type_ii_port_sel); + assert_choice_type(types::type_ii_port_sel, type_, "subType"); return c.get(); } + type_ii_s_& set_type_ii(); + type_ii_port_sel_s_& set_type_ii_port_sel(); private: types type_; @@ -18402,7 +16913,7 @@ struct codebook_cfg_s { enum options { n4, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated phase_alphabet_size_e_; @@ -18410,7 +16921,7 @@ struct codebook_cfg_s { enum options { two, three, four, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nof_beams_e_; @@ -18425,7 +16936,7 @@ struct codebook_cfg_s { enum options { type1, type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -18443,34 +16954,26 @@ struct codebook_cfg_s { // getters type1_s_& type1() { - assert_choice_type("type1", type_.to_string(), "codebookType"); + assert_choice_type(types::type1, type_, "codebookType"); return c.get(); } type2_s_& type2() { - assert_choice_type("type2", type_.to_string(), "codebookType"); + assert_choice_type(types::type2, type_, "codebookType"); return c.get(); } const type1_s_& type1() const { - assert_choice_type("type1", type_.to_string(), "codebookType"); + assert_choice_type(types::type1, type_, "codebookType"); return c.get(); } const type2_s_& type2() const { - assert_choice_type("type2", type_.to_string(), "codebookType"); - return c.get(); - } - type1_s_& set_type1() - { - set(types::type1); - return c.get(); - } - type2_s_& set_type2() - { - set(types::type2); + assert_choice_type(types::type2, type_, "codebookType"); return c.get(); } + type1_s_& set_type1(); + type2_s_& set_type2(); private: types type_; @@ -18556,7 +17059,7 @@ struct port_idx_for8_ranks_c { enum options { port_idx8, port_idx4, port_idx2, port_idx1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -18574,50 +17077,38 @@ struct port_idx_for8_ranks_c { // getters port_idx8_s_& port_idx8() { - assert_choice_type("portIndex8", type_.to_string(), "PortIndexFor8Ranks"); + assert_choice_type(types::port_idx8, type_, "PortIndexFor8Ranks"); return c.get(); } port_idx4_s_& port_idx4() { - assert_choice_type("portIndex4", type_.to_string(), "PortIndexFor8Ranks"); + assert_choice_type(types::port_idx4, type_, "PortIndexFor8Ranks"); return c.get(); } port_idx2_s_& port_idx2() { - assert_choice_type("portIndex2", type_.to_string(), "PortIndexFor8Ranks"); + assert_choice_type(types::port_idx2, type_, "PortIndexFor8Ranks"); return c.get(); } const port_idx8_s_& port_idx8() const { - assert_choice_type("portIndex8", type_.to_string(), "PortIndexFor8Ranks"); + assert_choice_type(types::port_idx8, type_, "PortIndexFor8Ranks"); return c.get(); } const port_idx4_s_& port_idx4() const { - assert_choice_type("portIndex4", type_.to_string(), "PortIndexFor8Ranks"); + assert_choice_type(types::port_idx4, type_, "PortIndexFor8Ranks"); return c.get(); } const port_idx2_s_& port_idx2() const { - assert_choice_type("portIndex2", type_.to_string(), "PortIndexFor8Ranks"); - return c.get(); - } - port_idx8_s_& set_port_idx8() - { - set(types::port_idx8); - return c.get(); - } - port_idx4_s_& set_port_idx4() - { - set(types::port_idx4); - return c.get(); - } - port_idx2_s_& set_port_idx2() - { - set(types::port_idx2); + assert_choice_type(types::port_idx2, type_, "PortIndexFor8Ranks"); return c.get(); } - void set_port_idx1() { set(types::port_idx1); } + port_idx8_s_& set_port_idx8(); + port_idx4_s_& set_port_idx4(); + port_idx2_s_& set_port_idx2(); + void set_port_idx1(); private: types type_; @@ -18648,7 +17139,7 @@ struct csi_report_cfg_s { enum options { sl5, sl10, sl20, sl40, sl80, sl160, sl320, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated report_slot_cfg_e_; @@ -18668,7 +17159,7 @@ struct csi_report_cfg_s { struct types_opts { enum options { periodic, semi_persistent_on_pucch, semi_persistent_on_pusch, aperiodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18685,64 +17176,48 @@ struct csi_report_cfg_s { // getters periodic_s_& periodic() { - assert_choice_type("periodic", type_.to_string(), "reportConfigType"); + assert_choice_type(types::periodic, type_, "reportConfigType"); return c.get(); } semi_persistent_on_pucch_s_& semi_persistent_on_pucch() { - assert_choice_type("semiPersistentOnPUCCH", type_.to_string(), "reportConfigType"); + assert_choice_type(types::semi_persistent_on_pucch, type_, "reportConfigType"); return c.get(); } semi_persistent_on_pusch_s_& semi_persistent_on_pusch() { - assert_choice_type("semiPersistentOnPUSCH", type_.to_string(), "reportConfigType"); + assert_choice_type(types::semi_persistent_on_pusch, type_, "reportConfigType"); return c.get(); } aperiodic_s_& aperiodic() { - assert_choice_type("aperiodic", type_.to_string(), "reportConfigType"); + assert_choice_type(types::aperiodic, type_, "reportConfigType"); return c.get(); } const periodic_s_& periodic() const { - assert_choice_type("periodic", type_.to_string(), "reportConfigType"); + assert_choice_type(types::periodic, type_, "reportConfigType"); return c.get(); } const semi_persistent_on_pucch_s_& semi_persistent_on_pucch() const { - assert_choice_type("semiPersistentOnPUCCH", type_.to_string(), "reportConfigType"); + assert_choice_type(types::semi_persistent_on_pucch, type_, "reportConfigType"); return c.get(); } const semi_persistent_on_pusch_s_& semi_persistent_on_pusch() const { - assert_choice_type("semiPersistentOnPUSCH", type_.to_string(), "reportConfigType"); + assert_choice_type(types::semi_persistent_on_pusch, type_, "reportConfigType"); return c.get(); } const aperiodic_s_& aperiodic() const { - assert_choice_type("aperiodic", type_.to_string(), "reportConfigType"); - return c.get(); - } - periodic_s_& set_periodic() - { - set(types::periodic); - return c.get(); - } - semi_persistent_on_pucch_s_& set_semi_persistent_on_pucch() - { - set(types::semi_persistent_on_pucch); - return c.get(); - } - semi_persistent_on_pusch_s_& set_semi_persistent_on_pusch() - { - set(types::semi_persistent_on_pusch); - return c.get(); - } - aperiodic_s_& set_aperiodic() - { - set(types::aperiodic); + assert_choice_type(types::aperiodic, type_, "reportConfigType"); return c.get(); } + periodic_s_& set_periodic(); + semi_persistent_on_pucch_s_& set_semi_persistent_on_pucch(); + semi_persistent_on_pusch_s_& set_semi_persistent_on_pusch(); + aperiodic_s_& set_aperiodic(); private: types type_; @@ -18756,7 +17231,7 @@ struct csi_report_cfg_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_bundle_size_for_csi_e_; @@ -18778,7 +17253,7 @@ struct csi_report_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18792,26 +17267,22 @@ struct csi_report_cfg_s { // getters cri_ri_i1_cqi_s_& cri_ri_i1_cqi() { - assert_choice_type("cri-RI-i1-CQI", type_.to_string(), "reportQuantity"); + assert_choice_type(types::cri_ri_i1_cqi, type_, "reportQuantity"); return c; } const cri_ri_i1_cqi_s_& cri_ri_i1_cqi() const { - assert_choice_type("cri-RI-i1-CQI", type_.to_string(), "reportQuantity"); - return c; - } - void set_none() { set(types::none); } - void set_cri_ri_pmi_cqi() { set(types::cri_ri_pmi_cqi); } - void set_cri_ri_i1() { set(types::cri_ri_i1); } - cri_ri_i1_cqi_s_& set_cri_ri_i1_cqi() - { - set(types::cri_ri_i1_cqi); + assert_choice_type(types::cri_ri_i1_cqi, type_, "reportQuantity"); return c; } - void set_cri_ri_cqi() { set(types::cri_ri_cqi); } - void set_cri_rsrp() { set(types::cri_rsrp); } - void set_ssb_idx_rsrp() { set(types::ssb_idx_rsrp); } - void set_cri_ri_li_pmi_cqi() { set(types::cri_ri_li_pmi_cqi); } + void set_none(); + void set_cri_ri_pmi_cqi(); + void set_cri_ri_i1(); + cri_ri_i1_cqi_s_& set_cri_ri_i1_cqi(); + void set_cri_ri_cqi(); + void set_cri_rsrp(); + void set_ssb_idx_rsrp(); + void set_cri_ri_li_pmi_cqi(); private: types type_; @@ -18821,13 +17292,13 @@ struct csi_report_cfg_s { struct cqi_format_ind_opts { enum options { wideband_cqi, subband_cqi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cqi_format_ind_e_; struct pmi_format_ind_opts { enum options { wideband_pmi, subband_pmi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pmi_format_ind_e_; struct csi_report_band_c_ { @@ -18855,7 +17326,7 @@ struct csi_report_cfg_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -18873,259 +17344,191 @@ struct csi_report_cfg_s { // getters fixed_bitstring<3>& subbands3() { - assert_choice_type("subbands3", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands3, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<4>& subbands4() { - assert_choice_type("subbands4", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands4, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<5>& subbands5() { - assert_choice_type("subbands5", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands5, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<6>& subbands6() { - assert_choice_type("subbands6", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands6, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<7>& subbands7() { - assert_choice_type("subbands7", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands7, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<8>& subbands8() { - assert_choice_type("subbands8", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands8, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<9>& subbands9() { - assert_choice_type("subbands9", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands9, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<10>& subbands10() { - assert_choice_type("subbands10", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands10, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<11>& subbands11() { - assert_choice_type("subbands11", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands11, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<12>& subbands12() { - assert_choice_type("subbands12", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands12, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<13>& subbands13() { - assert_choice_type("subbands13", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands13, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<14>& subbands14() { - assert_choice_type("subbands14", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands14, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<15>& subbands15() { - assert_choice_type("subbands15", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands15, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<16>& subbands16() { - assert_choice_type("subbands16", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands16, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<17>& subbands17() { - assert_choice_type("subbands17", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands17, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<18>& subbands18() { - assert_choice_type("subbands18", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands18, type_, "csi-ReportingBand"); return c.get >(); } fixed_bitstring<19>& subbands19_v1530() { - assert_choice_type("subbands19-v1530", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands19_v1530, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<3>& subbands3() const { - assert_choice_type("subbands3", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands3, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<4>& subbands4() const { - assert_choice_type("subbands4", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands4, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<5>& subbands5() const { - assert_choice_type("subbands5", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands5, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<6>& subbands6() const { - assert_choice_type("subbands6", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands6, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<7>& subbands7() const { - assert_choice_type("subbands7", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands7, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<8>& subbands8() const { - assert_choice_type("subbands8", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands8, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<9>& subbands9() const { - assert_choice_type("subbands9", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands9, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<10>& subbands10() const { - assert_choice_type("subbands10", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands10, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<11>& subbands11() const { - assert_choice_type("subbands11", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands11, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<12>& subbands12() const { - assert_choice_type("subbands12", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands12, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<13>& subbands13() const { - assert_choice_type("subbands13", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands13, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<14>& subbands14() const { - assert_choice_type("subbands14", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands14, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<15>& subbands15() const { - assert_choice_type("subbands15", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands15, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<16>& subbands16() const { - assert_choice_type("subbands16", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands16, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<17>& subbands17() const { - assert_choice_type("subbands17", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands17, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<18>& subbands18() const { - assert_choice_type("subbands18", type_.to_string(), "csi-ReportingBand"); + assert_choice_type(types::subbands18, type_, "csi-ReportingBand"); return c.get >(); } const fixed_bitstring<19>& subbands19_v1530() const { - assert_choice_type("subbands19-v1530", type_.to_string(), "csi-ReportingBand"); - return c.get >(); - } - fixed_bitstring<3>& set_subbands3() - { - set(types::subbands3); - return c.get >(); - } - fixed_bitstring<4>& set_subbands4() - { - set(types::subbands4); - return c.get >(); - } - fixed_bitstring<5>& set_subbands5() - { - set(types::subbands5); - return c.get >(); - } - fixed_bitstring<6>& set_subbands6() - { - set(types::subbands6); - return c.get >(); - } - fixed_bitstring<7>& set_subbands7() - { - set(types::subbands7); - return c.get >(); - } - fixed_bitstring<8>& set_subbands8() - { - set(types::subbands8); - return c.get >(); - } - fixed_bitstring<9>& set_subbands9() - { - set(types::subbands9); - return c.get >(); - } - fixed_bitstring<10>& set_subbands10() - { - set(types::subbands10); - return c.get >(); - } - fixed_bitstring<11>& set_subbands11() - { - set(types::subbands11); - return c.get >(); - } - fixed_bitstring<12>& set_subbands12() - { - set(types::subbands12); - return c.get >(); - } - fixed_bitstring<13>& set_subbands13() - { - set(types::subbands13); - return c.get >(); - } - fixed_bitstring<14>& set_subbands14() - { - set(types::subbands14); - return c.get >(); - } - fixed_bitstring<15>& set_subbands15() - { - set(types::subbands15); - return c.get >(); - } - fixed_bitstring<16>& set_subbands16() - { - set(types::subbands16); - return c.get >(); - } - fixed_bitstring<17>& set_subbands17() - { - set(types::subbands17); - return c.get >(); - } - fixed_bitstring<18>& set_subbands18() - { - set(types::subbands18); - return c.get >(); - } - fixed_bitstring<19>& set_subbands19_v1530() - { - set(types::subbands19_v1530); + assert_choice_type(types::subbands19_v1530, type_, "csi-ReportingBand"); return c.get >(); } + fixed_bitstring<3>& set_subbands3(); + fixed_bitstring<4>& set_subbands4(); + fixed_bitstring<5>& set_subbands5(); + fixed_bitstring<6>& set_subbands6(); + fixed_bitstring<7>& set_subbands7(); + fixed_bitstring<8>& set_subbands8(); + fixed_bitstring<9>& set_subbands9(); + fixed_bitstring<10>& set_subbands10(); + fixed_bitstring<11>& set_subbands11(); + fixed_bitstring<12>& set_subbands12(); + fixed_bitstring<13>& set_subbands13(); + fixed_bitstring<14>& set_subbands14(); + fixed_bitstring<15>& set_subbands15(); + fixed_bitstring<16>& set_subbands16(); + fixed_bitstring<17>& set_subbands17(); + fixed_bitstring<18>& set_subbands18(); + fixed_bitstring<19>& set_subbands19_v1530(); private: types type_; @@ -19145,20 +17548,20 @@ struct csi_report_cfg_s { struct time_restrict_for_ch_meass_opts { enum options { cfgured, not_cfgured, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated time_restrict_for_ch_meass_e_; struct time_restrict_for_interference_meass_opts { enum options { cfgured, not_cfgured, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated time_restrict_for_interference_meass_e_; struct dummy_opts { enum options { n1, n2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dummy_e_; @@ -19168,7 +17571,7 @@ struct csi_report_cfg_s { enum options { n1, n2, n3, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_reported_rs_e_; @@ -19180,7 +17583,7 @@ struct csi_report_cfg_s { struct types_opts { enum options { enabled, disabled, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -19194,20 +17597,16 @@ struct csi_report_cfg_s { // getters disabled_s_& disabled() { - assert_choice_type("disabled", type_.to_string(), "groupBasedBeamReporting"); + assert_choice_type(types::disabled, type_, "groupBasedBeamReporting"); return c; } const disabled_s_& disabled() const { - assert_choice_type("disabled", type_.to_string(), "groupBasedBeamReporting"); - return c; - } - void set_enabled() { set(types::enabled); } - disabled_s_& set_disabled() - { - set(types::disabled); + assert_choice_type(types::disabled, type_, "groupBasedBeamReporting"); return c; } + void set_enabled(); + disabled_s_& set_disabled(); private: types type_; @@ -19217,7 +17616,7 @@ struct csi_report_cfg_s { enum options { table1, table2, table3, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cqi_table_e_; @@ -19225,7 +17624,7 @@ struct csi_report_cfg_s { enum options { value1, value2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subband_size_e_; @@ -19235,7 +17634,7 @@ struct csi_report_cfg_s { enum options { sl4, sl8, sl16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated report_slot_cfg_v1530_e_; @@ -19297,7 +17696,7 @@ struct csi_res_cfg_s { struct types_opts { enum options { nzp_csi_rs_ssb, csi_im_res_set_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -19314,34 +17713,26 @@ struct csi_res_cfg_s { // getters nzp_csi_rs_ssb_s_& nzp_csi_rs_ssb() { - assert_choice_type("nzp-CSI-RS-SSB", type_.to_string(), "csi-RS-ResourceSetList"); + assert_choice_type(types::nzp_csi_rs_ssb, type_, "csi-RS-ResourceSetList"); return c.get(); } csi_im_res_set_list_l_& csi_im_res_set_list() { - assert_choice_type("csi-IM-ResourceSetList", type_.to_string(), "csi-RS-ResourceSetList"); + assert_choice_type(types::csi_im_res_set_list, type_, "csi-RS-ResourceSetList"); return c.get(); } const nzp_csi_rs_ssb_s_& nzp_csi_rs_ssb() const { - assert_choice_type("nzp-CSI-RS-SSB", type_.to_string(), "csi-RS-ResourceSetList"); + assert_choice_type(types::nzp_csi_rs_ssb, type_, "csi-RS-ResourceSetList"); return c.get(); } const csi_im_res_set_list_l_& csi_im_res_set_list() const { - assert_choice_type("csi-IM-ResourceSetList", type_.to_string(), "csi-RS-ResourceSetList"); - return c.get(); - } - nzp_csi_rs_ssb_s_& set_nzp_csi_rs_ssb() - { - set(types::nzp_csi_rs_ssb); - return c.get(); - } - csi_im_res_set_list_l_& set_csi_im_res_set_list() - { - set(types::csi_im_res_set_list); + assert_choice_type(types::csi_im_res_set_list, type_, "csi-RS-ResourceSetList"); return c.get(); } + nzp_csi_rs_ssb_s_& set_nzp_csi_rs_ssb(); + csi_im_res_set_list_l_& set_csi_im_res_set_list(); private: types type_; @@ -19352,7 +17743,7 @@ struct csi_res_cfg_s { struct res_type_opts { enum options { aperiodic, semi_persistent, periodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated res_type_e_; @@ -19395,7 +17786,7 @@ struct nzp_csi_rs_res_s { enum options { db_minus3, db0, db3, db6, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated pwr_ctrl_offset_ss_e_; @@ -19426,7 +17817,7 @@ struct nzp_csi_rs_res_set_s { struct repeat_opts { enum options { on, off, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated repeat_e_; @@ -19515,7 +17906,7 @@ struct eutra_mbsfn_sf_cfg_s { enum options { n1, n2, n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated radioframe_alloc_period_e_; @@ -19524,7 +17915,7 @@ struct eutra_mbsfn_sf_cfg_s { enum options { one_frame, four_frames, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -19542,34 +17933,26 @@ struct eutra_mbsfn_sf_cfg_s { // getters fixed_bitstring<6>& one_frame() { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation1"); - return c.get >(); - } - fixed_bitstring<24>& four_frames() - { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation1"); - return c.get >(); - } - const fixed_bitstring<6>& one_frame() const - { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation1"); + assert_choice_type(types::one_frame, type_, "subframeAllocation1"); return c.get >(); } - const fixed_bitstring<24>& four_frames() const + fixed_bitstring<24>& four_frames() { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation1"); + assert_choice_type(types::four_frames, type_, "subframeAllocation1"); return c.get >(); } - fixed_bitstring<6>& set_one_frame() + const fixed_bitstring<6>& one_frame() const { - set(types::one_frame); + assert_choice_type(types::one_frame, type_, "subframeAllocation1"); return c.get >(); } - fixed_bitstring<24>& set_four_frames() + const fixed_bitstring<24>& four_frames() const { - set(types::four_frames); + assert_choice_type(types::four_frames, type_, "subframeAllocation1"); return c.get >(); } + fixed_bitstring<6>& set_one_frame(); + fixed_bitstring<24>& set_four_frames(); private: types type_; @@ -19582,7 +17965,7 @@ struct eutra_mbsfn_sf_cfg_s { enum options { one_frame, four_frames, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -19600,34 +17983,26 @@ struct eutra_mbsfn_sf_cfg_s { // getters fixed_bitstring<2>& one_frame() { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation2"); + assert_choice_type(types::one_frame, type_, "subframeAllocation2"); return c.get >(); } fixed_bitstring<8>& four_frames() { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation2"); + assert_choice_type(types::four_frames, type_, "subframeAllocation2"); return c.get >(); } const fixed_bitstring<2>& one_frame() const { - assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation2"); + assert_choice_type(types::one_frame, type_, "subframeAllocation2"); return c.get >(); } const fixed_bitstring<8>& four_frames() const { - assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation2"); - return c.get >(); - } - fixed_bitstring<2>& set_one_frame() - { - set(types::one_frame); - return c.get >(); - } - fixed_bitstring<8>& set_four_frames() - { - set(types::four_frames); + assert_choice_type(types::four_frames, type_, "subframeAllocation2"); return c.get >(); } + fixed_bitstring<2>& set_one_frame(); + fixed_bitstring<8>& set_four_frames(); private: types type_; @@ -19730,7 +18105,7 @@ struct pusch_code_block_group_tx_s { enum options { n2, n4, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_code_block_groups_per_transport_block_e_; @@ -19803,7 +18178,7 @@ struct pdsch_code_block_group_tx_s { enum options { n2, n4, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_code_block_groups_per_transport_block_e_; @@ -19826,7 +18201,7 @@ struct pusch_serving_cell_cfg_s { enum options { xoh6, xoh12, xoh18, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated xoverhead_e_; @@ -19922,7 +18297,7 @@ struct poll_byte_opts { } value; typedef int32_t number_type; - std::string to_string() const; + const char* to_string() const; int32_t to_number() const; }; typedef enumerated poll_byte_e; @@ -19966,7 +18341,7 @@ struct poll_pdu_opts { } value; typedef int32_t number_type; - std::string to_string() const; + const char* to_string() const; int32_t to_number() const; }; typedef enumerated poll_pdu_e; @@ -19977,7 +18352,7 @@ struct rate_match_pattern_lte_crs_s { enum options { n6, n15, n25, n50, n75, n100, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated carrier_bw_dl_e_; @@ -19985,7 +18360,7 @@ struct rate_match_pattern_lte_crs_s { enum options { n1, n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_crs_ports_e_; @@ -19993,7 +18368,7 @@ struct rate_match_pattern_lte_crs_s { enum options { n0, n1, n2, n3, n4, n5, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated v_shift_e_; @@ -20017,7 +18392,7 @@ struct sn_field_len_am_opts { enum options { size12, size18, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sn_field_len_am_e; @@ -20027,7 +18402,7 @@ struct sn_field_len_um_opts { enum options { size6, size12, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sn_field_len_um_e; @@ -20037,7 +18412,7 @@ struct srs_carrier_switching_s { struct srs_switch_from_carrier_opts { enum options { sul, nul, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated srs_switch_from_carrier_e_; struct srs_tpc_pdcch_group_c_ { @@ -20045,7 +18420,7 @@ struct srs_carrier_switching_s { struct types_opts { enum options { type_a, type_b, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -20062,34 +18437,26 @@ struct srs_carrier_switching_s { // getters type_a_l_& type_a() { - assert_choice_type("typeA", type_.to_string(), "srs-TPC-PDCCH-Group"); + assert_choice_type(types::type_a, type_, "srs-TPC-PDCCH-Group"); return c.get(); } srs_tpc_pdcch_cfg_s& type_b() { - assert_choice_type("typeB", type_.to_string(), "srs-TPC-PDCCH-Group"); + assert_choice_type(types::type_b, type_, "srs-TPC-PDCCH-Group"); return c.get(); } const type_a_l_& type_a() const { - assert_choice_type("typeA", type_.to_string(), "srs-TPC-PDCCH-Group"); + assert_choice_type(types::type_a, type_, "srs-TPC-PDCCH-Group"); return c.get(); } const srs_tpc_pdcch_cfg_s& type_b() const { - assert_choice_type("typeB", type_.to_string(), "srs-TPC-PDCCH-Group"); - return c.get(); - } - type_a_l_& set_type_a() - { - set(types::type_a); - return c.get(); - } - srs_tpc_pdcch_cfg_s& set_type_b() - { - set(types::type_b); + assert_choice_type(types::type_b, type_, "srs-TPC-PDCCH-Group"); return c.get(); } + type_a_l_& set_type_a(); + srs_tpc_pdcch_cfg_s& set_type_b(); private: types type_; @@ -20208,7 +18575,7 @@ struct t_poll_retx_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_poll_retx_e; @@ -20252,7 +18619,7 @@ struct t_reassembly_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated t_reassembly_e; @@ -20328,7 +18695,7 @@ struct t_status_prohibit_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t_status_prohibit_e; @@ -20345,7 +18712,7 @@ struct tdd_ul_dl_slot_cfg_s { struct types_opts { enum options { all_dl, all_ul, explicit_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -20359,21 +18726,17 @@ struct tdd_ul_dl_slot_cfg_s { // getters explicit_s_& explicit_type() { - assert_choice_type("explicit", type_.to_string(), "symbols"); + assert_choice_type(types::explicit_type, type_, "symbols"); return c; } const explicit_s_& explicit_type() const { - assert_choice_type("explicit", type_.to_string(), "symbols"); - return c; - } - void set_all_dl() { set(types::all_dl); } - void set_all_ul() { set(types::all_ul); } - explicit_s_& set_explicit_type() - { - set(types::explicit_type); + assert_choice_type(types::explicit_type, type_, "symbols"); return c; } + void set_all_dl(); + void set_all_ul(); + explicit_s_& set_explicit_type(); private: types type_; @@ -20417,7 +18780,7 @@ struct cross_carrier_sched_cfg_s { struct types_opts { enum options { own, other, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -20434,34 +18797,26 @@ struct cross_carrier_sched_cfg_s { // getters own_s_& own() { - assert_choice_type("own", type_.to_string(), "schedulingCellInfo"); + assert_choice_type(types::own, type_, "schedulingCellInfo"); return c.get(); } other_s_& other() { - assert_choice_type("other", type_.to_string(), "schedulingCellInfo"); + assert_choice_type(types::other, type_, "schedulingCellInfo"); return c.get(); } const own_s_& own() const { - assert_choice_type("own", type_.to_string(), "schedulingCellInfo"); + assert_choice_type(types::own, type_, "schedulingCellInfo"); return c.get(); } const other_s_& other() const { - assert_choice_type("other", type_.to_string(), "schedulingCellInfo"); - return c.get(); - } - own_s_& set_own() - { - set(types::own); - return c.get(); - } - other_s_& set_other() - { - set(types::other); + assert_choice_type(types::other, type_, "schedulingCellInfo"); return c.get(); } + own_s_& set_own(); + other_s_& set_other(); private: types type_; @@ -20525,7 +18880,7 @@ struct pdsch_serving_cell_cfg_s { enum options { xoh6, xoh12, xoh18, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated xoverhead_e_; @@ -20533,7 +18888,7 @@ struct pdsch_serving_cell_cfg_s { enum options { n2, n4, n6, n10, n12, n16, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrof_harq_processes_for_pdsch_e_; @@ -20582,7 +18937,7 @@ struct sched_request_to_add_mod_s { enum options { ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sr_prohibit_timer_e_; @@ -20590,7 +18945,7 @@ struct sched_request_to_add_mod_s { enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sr_trans_max_e_; @@ -20613,7 +18968,7 @@ struct serving_cell_cfg_common_s { enum options { n0, n25600, n39936, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated n_timing_advance_offset_e_; @@ -20621,7 +18976,7 @@ struct serving_cell_cfg_common_s { struct types_opts { enum options { short_bitmap, medium_bitmap, long_bitmap, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -20638,49 +18993,37 @@ struct serving_cell_cfg_common_s { // getters fixed_bitstring<4>& short_bitmap() { - assert_choice_type("shortBitmap", type_.to_string(), "ssb-PositionsInBurst"); + assert_choice_type(types::short_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } fixed_bitstring<8>& medium_bitmap() { - assert_choice_type("mediumBitmap", type_.to_string(), "ssb-PositionsInBurst"); + assert_choice_type(types::medium_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } fixed_bitstring<64>& long_bitmap() { - assert_choice_type("longBitmap", type_.to_string(), "ssb-PositionsInBurst"); + assert_choice_type(types::long_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } const fixed_bitstring<4>& short_bitmap() const { - assert_choice_type("shortBitmap", type_.to_string(), "ssb-PositionsInBurst"); + assert_choice_type(types::short_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } const fixed_bitstring<8>& medium_bitmap() const { - assert_choice_type("mediumBitmap", type_.to_string(), "ssb-PositionsInBurst"); + assert_choice_type(types::medium_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } const fixed_bitstring<64>& long_bitmap() const { - assert_choice_type("longBitmap", type_.to_string(), "ssb-PositionsInBurst"); - return c.get >(); - } - fixed_bitstring<4>& set_short_bitmap() - { - set(types::short_bitmap); - return c.get >(); - } - fixed_bitstring<8>& set_medium_bitmap() - { - set(types::medium_bitmap); - return c.get >(); - } - fixed_bitstring<64>& set_long_bitmap() - { - set(types::long_bitmap); + assert_choice_type(types::long_bitmap, type_, "ssb-PositionsInBurst"); return c.get >(); } + fixed_bitstring<4>& set_short_bitmap(); + fixed_bitstring<8>& set_medium_bitmap(); + fixed_bitstring<64>& set_long_bitmap(); private: types type_; @@ -20692,7 +19035,7 @@ struct serving_cell_cfg_common_s { enum options { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ssb_periodicity_serving_cell_e_; @@ -20700,7 +19043,7 @@ struct serving_cell_cfg_common_s { enum options { pos2, pos3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated dmrs_type_a_position_e_; @@ -20781,7 +19124,7 @@ struct ul_am_rlc_s { enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_retx_thres_e_; @@ -20867,7 +19210,7 @@ struct bsr_cfg_s { } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated periodic_bsr_timer_e_; @@ -20893,7 +19236,7 @@ struct bsr_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated retx_bsr_timer_e_; @@ -20901,7 +19244,7 @@ struct bsr_cfg_s { enum options { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated lc_ch_sr_delay_timer_e_; @@ -20961,14 +19304,14 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated milli_seconds_e_; struct types_opts { enum options { sub_milli_seconds, milli_seconds, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -20985,34 +19328,26 @@ struct drx_cfg_s { // getters uint8_t& sub_milli_seconds() { - assert_choice_type("subMilliSeconds", type_.to_string(), "drx-onDurationTimer"); + assert_choice_type(types::sub_milli_seconds, type_, "drx-onDurationTimer"); return c.get(); } milli_seconds_e_& milli_seconds() { - assert_choice_type("milliSeconds", type_.to_string(), "drx-onDurationTimer"); + assert_choice_type(types::milli_seconds, type_, "drx-onDurationTimer"); return c.get(); } const uint8_t& sub_milli_seconds() const { - assert_choice_type("subMilliSeconds", type_.to_string(), "drx-onDurationTimer"); + assert_choice_type(types::sub_milli_seconds, type_, "drx-onDurationTimer"); return c.get(); } const milli_seconds_e_& milli_seconds() const { - assert_choice_type("milliSeconds", type_.to_string(), "drx-onDurationTimer"); - return c.get(); - } - uint8_t& set_sub_milli_seconds() - { - set(types::sub_milli_seconds); - return c.get(); - } - milli_seconds_e_& set_milli_seconds() - { - set(types::milli_seconds); + assert_choice_type(types::milli_seconds, type_, "drx-onDurationTimer"); return c.get(); } + uint8_t& set_sub_milli_seconds(); + milli_seconds_e_& set_milli_seconds(); private: types type_; @@ -21058,7 +19393,7 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_e_; @@ -21100,7 +19435,7 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_retx_timer_dl_e_; @@ -21142,7 +19477,7 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_retx_timer_ul_e_; @@ -21173,7 +19508,7 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -21191,304 +19526,224 @@ struct drx_cfg_s { // getters uint8_t& ms10() { - assert_choice_type("ms10", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms20() { - assert_choice_type("ms20", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms20, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms32() { - assert_choice_type("ms32", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms32, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms40() { - assert_choice_type("ms40", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms40, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms60() { - assert_choice_type("ms60", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms60, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms64() { - assert_choice_type("ms64", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms64, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms70() { - assert_choice_type("ms70", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms70, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms80() { - assert_choice_type("ms80", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms80, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms128() { - assert_choice_type("ms128", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms128, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms160() { - assert_choice_type("ms160", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms160, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms256() { - assert_choice_type("ms256", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms256, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms320() { - assert_choice_type("ms320", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms320, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms512() { - assert_choice_type("ms512", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms512, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms640() { - assert_choice_type("ms640", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms640, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms1024() { - assert_choice_type("ms1024", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1024, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms1280() { - assert_choice_type("ms1280", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1280, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms2048() { - assert_choice_type("ms2048", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2048, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms2560() { - assert_choice_type("ms2560", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2560, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms5120() { - assert_choice_type("ms5120", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms5120, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms10240() { - assert_choice_type("ms10240", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10240, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms10() const { - assert_choice_type("ms10", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms20() const { - assert_choice_type("ms20", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms20, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms32() const { - assert_choice_type("ms32", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms32, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms40() const { - assert_choice_type("ms40", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms40, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms60() const { - assert_choice_type("ms60", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms60, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms64() const { - assert_choice_type("ms64", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms64, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms70() const { - assert_choice_type("ms70", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms70, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms80() const { - assert_choice_type("ms80", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms80, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms128() const { - assert_choice_type("ms128", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms128, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms160() const { - assert_choice_type("ms160", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms160, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms256() const { - assert_choice_type("ms256", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms256, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms320() const { - assert_choice_type("ms320", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms320, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms512() const { - assert_choice_type("ms512", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms512, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms640() const { - assert_choice_type("ms640", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms640, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms1024() const { - assert_choice_type("ms1024", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1024, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms1280() const { - assert_choice_type("ms1280", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1280, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms2048() const { - assert_choice_type("ms2048", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2048, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms2560() const { - assert_choice_type("ms2560", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2560, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms5120() const { - assert_choice_type("ms5120", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms5120, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms10240() const { - assert_choice_type("ms10240", type_.to_string(), "drx-LongCycleStartOffset"); - return c.get(); - } - uint8_t& set_ms10() - { - set(types::ms10); - return c.get(); - } - uint8_t& set_ms20() - { - set(types::ms20); - return c.get(); - } - uint8_t& set_ms32() - { - set(types::ms32); - return c.get(); - } - uint8_t& set_ms40() - { - set(types::ms40); - return c.get(); - } - uint8_t& set_ms60() - { - set(types::ms60); - return c.get(); - } - uint8_t& set_ms64() - { - set(types::ms64); - return c.get(); - } - uint8_t& set_ms70() - { - set(types::ms70); - return c.get(); - } - uint8_t& set_ms80() - { - set(types::ms80); - return c.get(); - } - uint8_t& set_ms128() - { - set(types::ms128); - return c.get(); - } - uint8_t& set_ms160() - { - set(types::ms160); - return c.get(); - } - uint16_t& set_ms256() - { - set(types::ms256); - return c.get(); - } - uint16_t& set_ms320() - { - set(types::ms320); - return c.get(); - } - uint16_t& set_ms512() - { - set(types::ms512); - return c.get(); - } - uint16_t& set_ms640() - { - set(types::ms640); - return c.get(); - } - uint16_t& set_ms1024() - { - set(types::ms1024); - return c.get(); - } - uint16_t& set_ms1280() - { - set(types::ms1280); - return c.get(); - } - uint16_t& set_ms2048() - { - set(types::ms2048); - return c.get(); - } - uint16_t& set_ms2560() - { - set(types::ms2560); - return c.get(); - } - uint16_t& set_ms5120() - { - set(types::ms5120); - return c.get(); - } - uint16_t& set_ms10240() - { - set(types::ms10240); + assert_choice_type(types::ms10240, type_, "drx-LongCycleStartOffset"); return c.get(); } + uint8_t& set_ms10(); + uint8_t& set_ms20(); + uint8_t& set_ms32(); + uint8_t& set_ms40(); + uint8_t& set_ms60(); + uint8_t& set_ms64(); + uint8_t& set_ms70(); + uint8_t& set_ms80(); + uint8_t& set_ms128(); + uint8_t& set_ms160(); + uint16_t& set_ms256(); + uint16_t& set_ms320(); + uint16_t& set_ms512(); + uint16_t& set_ms640(); + uint16_t& set_ms1024(); + uint16_t& set_ms1280(); + uint16_t& set_ms2048(); + uint16_t& set_ms2560(); + uint16_t& set_ms5120(); + uint16_t& set_ms10240(); private: types type_; @@ -21535,7 +19790,7 @@ struct drx_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_short_cycle_e_; @@ -21568,7 +19823,7 @@ struct data_inactivity_timer_opts { enum options { s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated data_inactivity_timer_e; @@ -21598,7 +19853,7 @@ struct lc_ch_cfg_s { } value; typedef int32_t number_type; - std::string to_string() const; + const char* to_string() const; int32_t to_number() const; }; typedef enumerated prioritised_bit_rate_e_; @@ -21624,7 +19879,7 @@ struct lc_ch_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated bucket_size_dur_e_; @@ -21633,16 +19888,16 @@ struct lc_ch_cfg_s { struct max_pusch_dur_opts { enum options { ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated max_pusch_dur_e_; struct bit_rate_query_prohibit_timer_opts { enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated bit_rate_query_prohibit_timer_e_; @@ -21692,7 +19947,7 @@ struct phr_cfg_s { enum options { sf10, sf20, sf50, sf100, sf200, sf500, sf1000, infinity, nulltype } value; typedef int16_t number_type; - std::string to_string() const; + const char* to_string() const; int16_t to_number() const; }; typedef enumerated phr_periodic_timer_e_; @@ -21700,7 +19955,7 @@ struct phr_cfg_s { enum options { sf0, sf10, sf20, sf50, sf100, sf200, sf500, sf1000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated phr_prohibit_timer_e_; @@ -21708,14 +19963,14 @@ struct phr_cfg_s { enum options { db1, db3, db6, infinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated phr_tx_pwr_factor_change_e_; struct phr_mode_other_cg_opts { enum options { real, virtual_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated phr_mode_other_cg_e_; @@ -21755,7 +20010,7 @@ struct rlc_cfg_c { struct types_opts { enum options { am, um_bi_dir, um_uni_dir_ul, um_uni_dir_dl, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -21772,64 +20027,48 @@ struct rlc_cfg_c { // getters am_s_& am() { - assert_choice_type("am", type_.to_string(), "RLC-Config"); + assert_choice_type(types::am, type_, "RLC-Config"); return c.get(); } um_bi_dir_s_& um_bi_dir() { - assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_bi_dir, type_, "RLC-Config"); return c.get(); } um_uni_dir_ul_s_& um_uni_dir_ul() { - assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_ul, type_, "RLC-Config"); return c.get(); } um_uni_dir_dl_s_& um_uni_dir_dl() { - assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_dl, type_, "RLC-Config"); return c.get(); } const am_s_& am() const { - assert_choice_type("am", type_.to_string(), "RLC-Config"); + assert_choice_type(types::am, type_, "RLC-Config"); return c.get(); } const um_bi_dir_s_& um_bi_dir() const { - assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_bi_dir, type_, "RLC-Config"); return c.get(); } const um_uni_dir_ul_s_& um_uni_dir_ul() const { - assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config"); + assert_choice_type(types::um_uni_dir_ul, type_, "RLC-Config"); return c.get(); } const um_uni_dir_dl_s_& um_uni_dir_dl() const { - assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config"); - return c.get(); - } - am_s_& set_am() - { - set(types::am); - return c.get(); - } - um_bi_dir_s_& set_um_bi_dir() - { - set(types::um_bi_dir); - return c.get(); - } - um_uni_dir_ul_s_& set_um_uni_dir_ul() - { - set(types::um_uni_dir_ul); - return c.get(); - } - um_uni_dir_dl_s_& set_um_uni_dir_dl() - { - set(types::um_uni_dir_dl); + assert_choice_type(types::um_uni_dir_dl, type_, "RLC-Config"); return c.get(); } + am_s_& set_am(); + um_bi_dir_s_& set_um_bi_dir(); + um_uni_dir_ul_s_& set_um_uni_dir_ul(); + um_uni_dir_dl_s_& set_um_uni_dir_dl(); private: types type_; @@ -21844,7 +20083,7 @@ struct rlf_timers_and_consts_s { enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, ms4000, ms6000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t310_e_; @@ -21852,7 +20091,7 @@ struct rlf_timers_and_consts_s { enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n310_e_; @@ -21860,7 +20099,7 @@ struct rlf_timers_and_consts_s { enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated n311_e_; @@ -21868,7 +20107,7 @@ struct rlf_timers_and_consts_s { enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t311_e_; @@ -21894,7 +20133,7 @@ struct recfg_with_sync_s { enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated t304_e_; @@ -21902,7 +20141,7 @@ struct recfg_with_sync_s { struct types_opts { enum options { ul, supplementary_ul, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -21919,34 +20158,26 @@ struct recfg_with_sync_s { // getters rach_cfg_ded_s& ul() { - assert_choice_type("uplink", type_.to_string(), "rach-ConfigDedicated"); + assert_choice_type(types::ul, type_, "rach-ConfigDedicated"); return c.get(); } rach_cfg_ded_s& supplementary_ul() { - assert_choice_type("supplementaryUplink", type_.to_string(), "rach-ConfigDedicated"); + assert_choice_type(types::supplementary_ul, type_, "rach-ConfigDedicated"); return c.get(); } const rach_cfg_ded_s& ul() const { - assert_choice_type("uplink", type_.to_string(), "rach-ConfigDedicated"); + assert_choice_type(types::ul, type_, "rach-ConfigDedicated"); return c.get(); } const rach_cfg_ded_s& supplementary_ul() const { - assert_choice_type("supplementaryUplink", type_.to_string(), "rach-ConfigDedicated"); - return c.get(); - } - rach_cfg_ded_s& set_ul() - { - set(types::ul); - return c.get(); - } - rach_cfg_ded_s& set_supplementary_ul() - { - set(types::supplementary_ul); + assert_choice_type(types::supplementary_ul, type_, "rach-ConfigDedicated"); return c.get(); } + rach_cfg_ded_s& set_ul(); + rach_cfg_ded_s& set_supplementary_ul(); private: types type_; @@ -22031,7 +20262,7 @@ struct serving_cell_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated bwp_inactivity_timer_e_; @@ -22057,14 +20288,14 @@ struct serving_cell_cfg_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated scell_deactivation_timer_e_; struct pathloss_ref_linking_opts { enum options { sp_cell, scell, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pathloss_ref_linking_e_; using rate_match_pattern_to_add_mod_list_l_ = dyn_array; @@ -22168,14 +20399,14 @@ struct phys_cell_group_cfg_s { struct pdsch_harq_ack_codebook_opts { enum options { semi_static, dynamic_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pdsch_harq_ack_codebook_e_; struct xscale_opts { enum options { db0, db6, spare2, spare1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated xscale_e_; @@ -22221,7 +20452,7 @@ struct rlc_bearer_cfg_s { struct types_opts { enum options { srb_id, drb_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -22238,34 +20469,26 @@ struct rlc_bearer_cfg_s { // getters uint8_t& srb_id() { - assert_choice_type("srb-Identity", type_.to_string(), "servedRadioBearer"); + assert_choice_type(types::srb_id, type_, "servedRadioBearer"); return c.get(); } uint8_t& drb_id() { - assert_choice_type("drb-Identity", type_.to_string(), "servedRadioBearer"); + assert_choice_type(types::drb_id, type_, "servedRadioBearer"); return c.get(); } const uint8_t& srb_id() const { - assert_choice_type("srb-Identity", type_.to_string(), "servedRadioBearer"); + assert_choice_type(types::srb_id, type_, "servedRadioBearer"); return c.get(); } const uint8_t& drb_id() const { - assert_choice_type("drb-Identity", type_.to_string(), "servedRadioBearer"); - return c.get(); - } - uint8_t& set_srb_id() - { - set(types::srb_id); - return c.get(); - } - uint8_t& set_drb_id() - { - set(types::drb_id); + assert_choice_type(types::drb_id, type_, "servedRadioBearer"); return c.get(); } + uint8_t& set_srb_id(); + uint8_t& set_drb_id(); private: types type_; @@ -22426,7 +20649,7 @@ struct feature_set_c { struct types_opts { enum options { eutra, nr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -22443,34 +20666,26 @@ struct feature_set_c { // getters eutra_s_& eutra() { - assert_choice_type("eutra", type_.to_string(), "FeatureSet"); + assert_choice_type(types::eutra, type_, "FeatureSet"); return c.get(); } nr_s_& nr() { - assert_choice_type("nr", type_.to_string(), "FeatureSet"); + assert_choice_type(types::nr, type_, "FeatureSet"); return c.get(); } const eutra_s_& eutra() const { - assert_choice_type("eutra", type_.to_string(), "FeatureSet"); + assert_choice_type(types::eutra, type_, "FeatureSet"); return c.get(); } const nr_s_& nr() const { - assert_choice_type("nr", type_.to_string(), "FeatureSet"); - return c.get(); - } - eutra_s_& set_eutra() - { - set(types::eutra); - return c.get(); - } - nr_s_& set_nr() - { - set(types::nr); + assert_choice_type(types::nr, type_, "FeatureSet"); return c.get(); } + eutra_s_& set_eutra(); + nr_s_& set_nr(); private: types type_; @@ -22528,7 +20743,7 @@ struct dummy_a_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated max_num_ports_across_nzp_csi_rs_per_cc_e_; @@ -22536,7 +20751,7 @@ struct dummy_a_s { enum options { n1, n2, n4, n8, n16, n32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_cs_im_per_cc_e_; @@ -22579,7 +20794,7 @@ struct dummy_a_s { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_simul_csi_rs_act_bwp_all_cc_e_; @@ -22622,7 +20837,7 @@ struct dummy_a_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated total_num_ports_simul_csi_rs_act_bwp_all_cc_e_; @@ -22646,14 +20861,14 @@ struct dummy_b_s { enum options { p2, p4, p8, p12, p16, p24, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_tx_ports_per_res_e_; struct supported_codebook_mode_opts { enum options { mode1, mode1_and_mode2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_codebook_mode_e_; @@ -22676,7 +20891,7 @@ struct dummy_c_s { enum options { p8, p16, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_tx_ports_per_res_e_; @@ -22684,7 +20899,7 @@ struct dummy_c_s { enum options { mode1, mode2, both, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_codebook_mode_e_; @@ -22692,7 +20907,7 @@ struct dummy_c_s { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated supported_num_panels_e_; @@ -22717,14 +20932,14 @@ struct dummy_d_s { enum options { p4, p8, p12, p16, p24, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_tx_ports_per_res_e_; struct amplitude_scaling_type_opts { enum options { wideband, wideband_and_subband, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated amplitude_scaling_type_e_; @@ -22749,14 +20964,14 @@ struct dummy_e_s { enum options { p4, p8, p12, p16, p24, p32, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_tx_ports_per_res_e_; struct amplitude_scaling_type_opts { enum options { wideband, wideband_and_subband, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated amplitude_scaling_type_e_; @@ -22779,7 +20994,7 @@ struct freq_separation_class_opts { enum options { c1, c2, c3, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated freq_separation_class_e; @@ -22790,13 +21005,13 @@ struct feature_set_dl_s { struct scaling_factor_opts { enum options { f0p4, f0p75, f0p8, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated scaling_factor_e_; struct pdcch_monitoring_any_occasions_opts { enum options { without_dci_gap, with_dci_gap, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pdcch_monitoring_any_occasions_e_; struct time_dur_for_qcl_s_ { @@ -22804,7 +21019,7 @@ struct feature_set_dl_s { enum options { s7, s14, s28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -22812,7 +21027,7 @@ struct feature_set_dl_s { enum options { s14, s28, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -22828,7 +21043,7 @@ struct feature_set_dl_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus15k_hz_e_; @@ -22836,7 +21051,7 @@ struct feature_set_dl_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus30k_hz_e_; @@ -22844,7 +21059,7 @@ struct feature_set_dl_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -22852,7 +21067,7 @@ struct feature_set_dl_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -22915,7 +21130,7 @@ struct processing_params_s { enum options { sc, cap1_only, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated fallback_e_; @@ -22948,7 +21163,7 @@ struct feature_set_dl_v1540_s { enum options { set1, set2, set3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus15k_hz_e_; @@ -22956,7 +21171,7 @@ struct feature_set_dl_v1540_s { enum options { set1, set2, set3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus30k_hz_e_; @@ -22964,7 +21179,7 @@ struct feature_set_dl_v1540_s { enum options { set1, set2, set3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -22972,7 +21187,7 @@ struct feature_set_dl_v1540_s { enum options { set1, set2, set3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -23000,7 +21215,7 @@ struct feature_set_dl_v1540_s { enum options { upto1, upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated different_tb_per_slot_scs_minus30k_hz_e_; @@ -23045,9 +21260,9 @@ struct mod_order_opts { enum options { bpsk_halfpi, bpsk, qpsk, qam16, qam64, qam256, nulltype } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated mod_order_e; @@ -23057,7 +21272,7 @@ struct supported_bw_c { enum options { mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated fr1_e_; @@ -23065,7 +21280,7 @@ struct supported_bw_c { enum options { mhz50, mhz100, mhz200, mhz400, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fr2_e_; @@ -23073,7 +21288,7 @@ struct supported_bw_c { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -23091,34 +21306,26 @@ struct supported_bw_c { // getters fr1_e_& fr1() { - assert_choice_type("fr1", type_.to_string(), "SupportedBandwidth"); + assert_choice_type(types::fr1, type_, "SupportedBandwidth"); return c.get(); } fr2_e_& fr2() { - assert_choice_type("fr2", type_.to_string(), "SupportedBandwidth"); + assert_choice_type(types::fr2, type_, "SupportedBandwidth"); return c.get(); } const fr1_e_& fr1() const { - assert_choice_type("fr1", type_.to_string(), "SupportedBandwidth"); + assert_choice_type(types::fr1, type_, "SupportedBandwidth"); return c.get(); } const fr2_e_& fr2() const { - assert_choice_type("fr2", type_.to_string(), "SupportedBandwidth"); - return c.get(); - } - fr1_e_& set_fr1() - { - set(types::fr1); - return c.get(); - } - fr2_e_& set_fr2() - { - set(types::fr2); + assert_choice_type(types::fr2, type_, "SupportedBandwidth"); return c.get(); } + fr1_e_& set_fr1(); + fr2_e_& set_fr2(); private: types type_; @@ -23161,7 +21368,7 @@ struct dummy_i_s { struct supported_srs_tx_port_switch_opts { enum options { t1r2, t1r4, t2r4, t1r4_t2r4, tr_equal, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_srs_tx_port_switch_e_; @@ -23181,7 +21388,7 @@ struct feature_set_ul_s { struct scaling_factor_opts { enum options { f0p4, f0p75, f0p8, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated scaling_factor_e_; struct pusch_processing_type1_different_tb_per_slot_s_ { @@ -23189,7 +21396,7 @@ struct feature_set_ul_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus15k_hz_e_; @@ -23197,7 +21404,7 @@ struct feature_set_ul_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus30k_hz_e_; @@ -23205,7 +21412,7 @@ struct feature_set_ul_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus60k_hz_e_; @@ -23213,7 +21420,7 @@ struct feature_set_ul_s { enum options { upto2, upto4, upto7, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated scs_minus120k_hz_e_; @@ -23380,7 +21587,7 @@ struct aggregated_bw_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated aggregated_bw_e; @@ -23422,7 +21629,7 @@ struct freq_band_info_c { struct types_opts { enum options { band_info_eutra, band_info_nr, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -23439,34 +21646,26 @@ struct freq_band_info_c { // getters freq_band_info_eutra_s& band_info_eutra() { - assert_choice_type("bandInformationEUTRA", type_.to_string(), "FreqBandInformation"); + assert_choice_type(types::band_info_eutra, type_, "FreqBandInformation"); return c.get(); } freq_band_info_nr_s& band_info_nr() { - assert_choice_type("bandInformationNR", type_.to_string(), "FreqBandInformation"); + assert_choice_type(types::band_info_nr, type_, "FreqBandInformation"); return c.get(); } const freq_band_info_eutra_s& band_info_eutra() const { - assert_choice_type("bandInformationEUTRA", type_.to_string(), "FreqBandInformation"); + assert_choice_type(types::band_info_eutra, type_, "FreqBandInformation"); return c.get(); } const freq_band_info_nr_s& band_info_nr() const { - assert_choice_type("bandInformationNR", type_.to_string(), "FreqBandInformation"); - return c.get(); - } - freq_band_info_eutra_s& set_band_info_eutra() - { - set(types::band_info_eutra); - return c.get(); - } - freq_band_info_nr_s& set_band_info_nr() - { - set(types::band_info_nr); + assert_choice_type(types::band_info_nr, type_, "FreqBandInformation"); return c.get(); } + freq_band_info_eutra_s& set_band_info_eutra(); + freq_band_info_nr_s& set_band_info_nr(); private: types type_; @@ -23585,7 +21784,7 @@ struct meas_and_mob_params_common_s { enum options { n4, n8, n16, n32, n64, n96, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_csi_rs_rrm_rs_sinr_e_; @@ -23628,7 +21827,7 @@ struct meas_and_mob_params_frx_diff_s { enum options { n2, n4, n6, n8, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated max_num_res_csi_rs_rlm_e_; @@ -23863,7 +22062,7 @@ struct phy_params_common_s { enum options { type1, type2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated bwp_switching_delay_e_; @@ -23927,7 +22126,7 @@ struct phy_params_fr1_s { enum options { n10, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_re_map_fr1_per_symbol_e_; @@ -23953,7 +22152,7 @@ struct phy_params_fr1_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pdsch_re_map_fr1_per_slot_e_; @@ -23982,7 +22181,7 @@ struct phy_params_fr2_s { enum options { n6, n20, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_re_map_fr2_per_symbol_e_; @@ -24008,7 +22207,7 @@ struct phy_params_fr2_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pdsch_re_map_fr2_per_slot_e_; @@ -24035,13 +22234,13 @@ struct phy_params_frx_diff_s { struct supported_dmrs_type_dl_opts { enum options { type1, type1_and2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_dmrs_type_dl_e_; struct supported_dmrs_type_ul_opts { enum options { type1, type1_and2, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated supported_dmrs_type_ul_e_; struct mux_sr_harq_ack_csi_pucch_once_per_slot_s_ { @@ -24189,7 +22388,7 @@ struct naics_cap_entry_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nof_aggregated_prb_e_; @@ -24516,7 +22715,7 @@ struct access_stratum_release_opts { enum options { rel15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated access_stratum_release_e; @@ -24557,7 +22756,7 @@ struct pdcp_params_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated max_num_rohc_context_sessions_e_; @@ -24874,7 +23073,7 @@ struct affected_carrier_freq_comb_info_mrdc_s { struct interference_direction_mrdc_opts { enum options { eutra_nr, nr, other, utra_nr_other, nr_other, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated interference_direction_mrdc_e_; struct affected_carrier_freq_comb_mrdc_s_ { @@ -24901,7 +23100,7 @@ struct ph_ul_carrier_scg_s { enum options { type1, type3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ph_type1or3_e_; @@ -24995,7 +23194,7 @@ struct fr_info_s { enum options { fr1, fr2, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated fr_type_e_; @@ -25107,7 +23306,7 @@ struct drx_info_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; @@ -25125,304 +23324,224 @@ struct drx_info_s { // getters uint8_t& ms10() { - assert_choice_type("ms10", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms20() { - assert_choice_type("ms20", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms20, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms32() { - assert_choice_type("ms32", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms32, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms40() { - assert_choice_type("ms40", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms40, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms60() { - assert_choice_type("ms60", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms60, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms64() { - assert_choice_type("ms64", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms64, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms70() { - assert_choice_type("ms70", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms70, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms80() { - assert_choice_type("ms80", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms80, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms128() { - assert_choice_type("ms128", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms128, type_, "drx-LongCycleStartOffset"); return c.get(); } uint8_t& ms160() { - assert_choice_type("ms160", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms160, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms256() { - assert_choice_type("ms256", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms256, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms320() { - assert_choice_type("ms320", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms320, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms512() { - assert_choice_type("ms512", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms512, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms640() { - assert_choice_type("ms640", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms640, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms1024() { - assert_choice_type("ms1024", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1024, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms1280() { - assert_choice_type("ms1280", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1280, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms2048() { - assert_choice_type("ms2048", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2048, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms2560() { - assert_choice_type("ms2560", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2560, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms5120() { - assert_choice_type("ms5120", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms5120, type_, "drx-LongCycleStartOffset"); return c.get(); } uint16_t& ms10240() { - assert_choice_type("ms10240", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10240, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms10() const { - assert_choice_type("ms10", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms10, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms20() const { - assert_choice_type("ms20", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms20, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms32() const { - assert_choice_type("ms32", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms32, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms40() const { - assert_choice_type("ms40", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms40, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms60() const { - assert_choice_type("ms60", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms60, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms64() const { - assert_choice_type("ms64", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms64, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms70() const { - assert_choice_type("ms70", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms70, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms80() const { - assert_choice_type("ms80", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms80, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms128() const { - assert_choice_type("ms128", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms128, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint8_t& ms160() const { - assert_choice_type("ms160", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms160, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms256() const { - assert_choice_type("ms256", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms256, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms320() const { - assert_choice_type("ms320", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms320, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms512() const { - assert_choice_type("ms512", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms512, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms640() const { - assert_choice_type("ms640", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms640, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms1024() const { - assert_choice_type("ms1024", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1024, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms1280() const { - assert_choice_type("ms1280", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms1280, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms2048() const { - assert_choice_type("ms2048", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2048, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms2560() const { - assert_choice_type("ms2560", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms2560, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms5120() const { - assert_choice_type("ms5120", type_.to_string(), "drx-LongCycleStartOffset"); + assert_choice_type(types::ms5120, type_, "drx-LongCycleStartOffset"); return c.get(); } const uint16_t& ms10240() const { - assert_choice_type("ms10240", type_.to_string(), "drx-LongCycleStartOffset"); - return c.get(); - } - uint8_t& set_ms10() - { - set(types::ms10); - return c.get(); - } - uint8_t& set_ms20() - { - set(types::ms20); - return c.get(); - } - uint8_t& set_ms32() - { - set(types::ms32); - return c.get(); - } - uint8_t& set_ms40() - { - set(types::ms40); - return c.get(); - } - uint8_t& set_ms60() - { - set(types::ms60); - return c.get(); - } - uint8_t& set_ms64() - { - set(types::ms64); - return c.get(); - } - uint8_t& set_ms70() - { - set(types::ms70); - return c.get(); - } - uint8_t& set_ms80() - { - set(types::ms80); - return c.get(); - } - uint8_t& set_ms128() - { - set(types::ms128); - return c.get(); - } - uint8_t& set_ms160() - { - set(types::ms160); - return c.get(); - } - uint16_t& set_ms256() - { - set(types::ms256); - return c.get(); - } - uint16_t& set_ms320() - { - set(types::ms320); - return c.get(); - } - uint16_t& set_ms512() - { - set(types::ms512); - return c.get(); - } - uint16_t& set_ms640() - { - set(types::ms640); - return c.get(); - } - uint16_t& set_ms1024() - { - set(types::ms1024); - return c.get(); - } - uint16_t& set_ms1280() - { - set(types::ms1280); - return c.get(); - } - uint16_t& set_ms2048() - { - set(types::ms2048); - return c.get(); - } - uint16_t& set_ms2560() - { - set(types::ms2560); - return c.get(); - } - uint16_t& set_ms5120() - { - set(types::ms5120); - return c.get(); - } - uint16_t& set_ms10240() - { - set(types::ms10240); + assert_choice_type(types::ms10240, type_, "drx-LongCycleStartOffset"); return c.get(); } + uint8_t& set_ms10(); + uint8_t& set_ms20(); + uint8_t& set_ms32(); + uint8_t& set_ms40(); + uint8_t& set_ms60(); + uint8_t& set_ms64(); + uint8_t& set_ms70(); + uint8_t& set_ms80(); + uint8_t& set_ms128(); + uint8_t& set_ms160(); + uint16_t& set_ms256(); + uint16_t& set_ms320(); + uint16_t& set_ms512(); + uint16_t& set_ms640(); + uint16_t& set_ms1024(); + uint16_t& set_ms1280(); + uint16_t& set_ms2048(); + uint16_t& set_ms2560(); + uint16_t& set_ms5120(); + uint16_t& set_ms10240(); private: types type_; @@ -25469,7 +23588,7 @@ struct drx_info_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_short_cycle_e_; @@ -25545,7 +23664,7 @@ struct cg_cfg_s { struct types_opts { enum options { cg_cfg, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -25559,22 +23678,18 @@ struct cg_cfg_s { // getters cg_cfg_ies_s& cg_cfg() { - assert_choice_type("cg-Config", type_.to_string(), "c1"); + assert_choice_type(types::cg_cfg, type_, "c1"); return c; } const cg_cfg_ies_s& cg_cfg() const { - assert_choice_type("cg-Config", type_.to_string(), "c1"); - return c; - } - cg_cfg_ies_s& set_cg_cfg() - { - set(types::cg_cfg); + assert_choice_type(types::cg_cfg, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + cg_cfg_ies_s& set_cg_cfg(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -25584,7 +23699,7 @@ struct cg_cfg_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -25599,20 +23714,16 @@ struct cg_cfg_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -25649,7 +23760,7 @@ struct ph_ul_carrier_mcg_s { enum options { type1, type3, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ph_type1or3_e_; @@ -25708,7 +23819,7 @@ struct cg_cfg_info_v1560_ies_s { enum options { t313_expiry, random_access_problem, rlc_max_num_retx, scg_change_fail, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_eutra_e_; @@ -25796,7 +23907,7 @@ struct meas_cfg_mn_s { enum options { per_ue, per_fr1, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated gap_purpose_e_; @@ -25834,7 +23945,7 @@ struct cg_cfg_info_ies_s { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated fail_type_e_; @@ -25885,7 +23996,7 @@ struct cg_cfg_info_s { struct types_opts { enum options { cg_cfg_info, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -25899,22 +24010,18 @@ struct cg_cfg_info_s { // getters cg_cfg_info_ies_s& cg_cfg_info() { - assert_choice_type("cg-ConfigInfo", type_.to_string(), "c1"); + assert_choice_type(types::cg_cfg_info, type_, "c1"); return c; } const cg_cfg_info_ies_s& cg_cfg_info() const { - assert_choice_type("cg-ConfigInfo", type_.to_string(), "c1"); + assert_choice_type(types::cg_cfg_info, type_, "c1"); return c; } - cg_cfg_info_ies_s& set_cg_cfg_info() - { - set(types::cg_cfg_info); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + cg_cfg_info_ies_s& set_cg_cfg_info(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -25924,7 +24031,7 @@ struct cg_cfg_info_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -25939,20 +24046,16 @@ struct cg_cfg_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -25972,7 +24075,7 @@ struct cells_triggered_list_item_c_ { struct types_opts { enum options { pci, pci_eutra, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -25989,34 +24092,26 @@ struct cells_triggered_list_item_c_ { // getters uint16_t& pci() { - assert_choice_type("physCellId", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci, type_, "CellsTriggeredList-item"); return c.get(); } uint16_t& pci_eutra() { - assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci_eutra, type_, "CellsTriggeredList-item"); return c.get(); } const uint16_t& pci() const { - assert_choice_type("physCellId", type_.to_string(), "CellsTriggeredList-item"); + assert_choice_type(types::pci, type_, "CellsTriggeredList-item"); return c.get(); } const uint16_t& pci_eutra() const { - assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item"); - return c.get(); - } - uint16_t& set_pci() - { - set(types::pci); - return c.get(); - } - uint16_t& set_pci_eutra() - { - set(types::pci_eutra); + assert_choice_type(types::pci_eutra, type_, "CellsTriggeredList-item"); return c.get(); } + uint16_t& set_pci(); + uint16_t& set_pci_eutra(); private: types type_; @@ -26046,7 +24141,7 @@ struct ho_cmd_s { struct types_opts { enum options { ho_cmd, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26060,22 +24155,18 @@ struct ho_cmd_s { // getters ho_cmd_ies_s& ho_cmd() { - assert_choice_type("handoverCommand", type_.to_string(), "c1"); + assert_choice_type(types::ho_cmd, type_, "c1"); return c; } const ho_cmd_ies_s& ho_cmd() const { - assert_choice_type("handoverCommand", type_.to_string(), "c1"); + assert_choice_type(types::ho_cmd, type_, "c1"); return c; } - ho_cmd_ies_s& set_ho_cmd() - { - set(types::ho_cmd); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_cmd_ies_s& set_ho_cmd(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -26085,7 +24176,7 @@ struct ho_cmd_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -26100,20 +24191,16 @@ struct ho_cmd_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -26200,7 +24287,7 @@ struct rrm_cfg_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_inactive_time_e_; @@ -26244,7 +24331,7 @@ struct ho_prep_info_s { struct types_opts { enum options { ho_prep_info, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26258,22 +24345,18 @@ struct ho_prep_info_s { // getters ho_prep_info_ies_s& ho_prep_info() { - assert_choice_type("handoverPreparationInformation", type_.to_string(), "c1"); + assert_choice_type(types::ho_prep_info, type_, "c1"); return c; } const ho_prep_info_ies_s& ho_prep_info() const { - assert_choice_type("handoverPreparationInformation", type_.to_string(), "c1"); - return c; - } - ho_prep_info_ies_s& set_ho_prep_info() - { - set(types::ho_prep_info); + assert_choice_type(types::ho_prep_info, type_, "c1"); return c; } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ho_prep_info_ies_s& set_ho_prep_info(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -26283,7 +24366,7 @@ struct ho_prep_info_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -26298,20 +24381,16 @@ struct ho_prep_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -26388,7 +24467,7 @@ struct meas_timing_cfg_s { struct types_opts { enum options { meas_timing_conf, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26402,22 +24481,18 @@ struct meas_timing_cfg_s { // getters meas_timing_cfg_ies_s& meas_timing_conf() { - assert_choice_type("measTimingConf", type_.to_string(), "c1"); + assert_choice_type(types::meas_timing_conf, type_, "c1"); return c; } const meas_timing_cfg_ies_s& meas_timing_conf() const { - assert_choice_type("measTimingConf", type_.to_string(), "c1"); + assert_choice_type(types::meas_timing_conf, type_, "c1"); return c; } - meas_timing_cfg_ies_s& set_meas_timing_conf() - { - set(types::meas_timing_conf); - return c; - } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + meas_timing_cfg_ies_s& set_meas_timing_conf(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -26427,7 +24502,7 @@ struct meas_timing_cfg_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -26442,20 +24517,16 @@ struct meas_timing_cfg_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -26499,7 +24570,7 @@ struct ue_radio_access_cap_info_s { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26513,26 +24584,22 @@ struct ue_radio_access_cap_info_s { // getters ue_radio_access_cap_info_ies_s& ue_radio_access_cap_info() { - assert_choice_type("ueRadioAccessCapabilityInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_access_cap_info, type_, "c1"); return c; } const ue_radio_access_cap_info_ies_s& ue_radio_access_cap_info() const { - assert_choice_type("ueRadioAccessCapabilityInformation", type_.to_string(), "c1"); - return c; - } - ue_radio_access_cap_info_ies_s& set_ue_radio_access_cap_info() - { - set(types::ue_radio_access_cap_info); + assert_choice_type(types::ue_radio_access_cap_info, type_, "c1"); return c; } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_access_cap_info_ies_s& set_ue_radio_access_cap_info(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -26542,7 +24609,7 @@ struct ue_radio_access_cap_info_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -26557,20 +24624,16 @@ struct ue_radio_access_cap_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -26608,7 +24671,7 @@ struct ue_radio_paging_info_s { struct types_opts { enum options { ue_radio_paging_info, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26622,26 +24685,22 @@ struct ue_radio_paging_info_s { // getters ue_radio_paging_info_ies_s& ue_radio_paging_info() { - assert_choice_type("ueRadioPagingInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info, type_, "c1"); return c; } const ue_radio_paging_info_ies_s& ue_radio_paging_info() const { - assert_choice_type("ueRadioPagingInformation", type_.to_string(), "c1"); + assert_choice_type(types::ue_radio_paging_info, type_, "c1"); return c; } - ue_radio_paging_info_ies_s& set_ue_radio_paging_info() - { - set(types::ue_radio_paging_info); - return c; - } - void set_spare7() { set(types::spare7); } - void set_spare6() { set(types::spare6); } - void set_spare5() { set(types::spare5); } - void set_spare4() { set(types::spare4); } - void set_spare3() { set(types::spare3); } - void set_spare2() { set(types::spare2); } - void set_spare1() { set(types::spare1); } + ue_radio_paging_info_ies_s& set_ue_radio_paging_info(); + void set_spare7(); + void set_spare6(); + void set_spare5(); + void set_spare4(); + void set_spare3(); + void set_spare2(); + void set_spare1(); private: types type_; @@ -26651,7 +24710,7 @@ struct ue_radio_paging_info_s { enum options { c1, crit_exts_future, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -26666,20 +24725,16 @@ struct ue_radio_paging_info_s { // getters c1_c_& c1() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } const c1_c_& c1() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c; - } - c1_c_& set_c1() - { - set(types::c1); + assert_choice_type(types::c1, type_, "criticalExtensions"); return c; } - void set_crit_exts_future() { set(types::crit_exts_future); } + c1_c_& set_c1(); + void set_crit_exts_future(); private: types type_; @@ -26701,7 +24756,7 @@ struct var_meas_cfg_s { struct types_opts { enum options { ssb_rsrp, csi_rsrp, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -26718,34 +24773,26 @@ struct var_meas_cfg_s { // getters uint8_t& ssb_rsrp() { - assert_choice_type("ssb-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::ssb_rsrp, type_, "s-MeasureConfig"); return c.get(); } uint8_t& csi_rsrp() { - assert_choice_type("csi-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::csi_rsrp, type_, "s-MeasureConfig"); return c.get(); } const uint8_t& ssb_rsrp() const { - assert_choice_type("ssb-RSRP", type_.to_string(), "s-MeasureConfig"); + assert_choice_type(types::ssb_rsrp, type_, "s-MeasureConfig"); return c.get(); } const uint8_t& csi_rsrp() const { - assert_choice_type("csi-RSRP", type_.to_string(), "s-MeasureConfig"); - return c.get(); - } - uint8_t& set_ssb_rsrp() - { - set(types::ssb_rsrp); - return c.get(); - } - uint8_t& set_csi_rsrp() - { - set(types::csi_rsrp); + assert_choice_type(types::csi_rsrp, type_, "s-MeasureConfig"); return c.get(); } + uint8_t& set_ssb_rsrp(); + uint8_t& set_csi_rsrp(); private: types type_; diff --git a/lib/include/srsran/asn1/s1ap.h b/lib/include/srsran/asn1/s1ap.h index 765e6bab2..b77f5a704 100644 --- a/lib/include/srsran/asn1/s1ap.h +++ b/lib/include/srsran/asn1/s1ap.h @@ -441,7 +441,7 @@ namespace s1ap { struct crit_opts { enum options { reject, ignore, notify, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated crit_e; @@ -449,7 +449,7 @@ typedef enumerated crit_e; struct presence_opts { enum options { optional, conditional, mandatory, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated presence_e; @@ -458,7 +458,7 @@ struct private_ie_id_c { struct types_opts { enum options { local, global, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -472,20 +472,16 @@ struct private_ie_id_c { // getters uint32_t& local() { - assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); + assert_choice_type(types::local, type_, "PrivateIE-ID"); return c; } const uint32_t& local() const { - assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); + assert_choice_type(types::local, type_, "PrivateIE-ID"); return c; } - uint32_t& set_local() - { - set(types::local); - return c; - } - void set_global() { set(types::global); } + uint32_t& set_local(); + void set_global(); private: types type_; @@ -596,7 +592,7 @@ struct s1ap_protocol_ext_empty_o { struct types_opts { enum options { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -687,7 +683,7 @@ using alloc_and_retention_prio_ext_ies_o = s1ap_protocol_ext_empty_o; struct pre_emption_cap_opts { enum options { shall_not_trigger_pre_emption, may_trigger_pre_emption, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pre_emption_cap_e; @@ -695,7 +691,7 @@ typedef enumerated pre_emption_cap_e; struct pre_emption_vulnerability_opts { enum options { not_pre_emptable, pre_emptable, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pre_emption_vulnerability_e; @@ -828,7 +824,7 @@ struct area_scope_of_mdt_c { struct types_opts { enum options { cell_based, tabased, plmn_wide, /*...*/ tai_based, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -845,50 +841,38 @@ struct area_scope_of_mdt_c { // getters cell_based_mdt_s& cell_based() { - assert_choice_type("cellBased", type_.to_string(), "AreaScopeOfMDT"); + assert_choice_type(types::cell_based, type_, "AreaScopeOfMDT"); return c.get(); } ta_based_mdt_s& tabased() { - assert_choice_type("tABased", type_.to_string(), "AreaScopeOfMDT"); + assert_choice_type(types::tabased, type_, "AreaScopeOfMDT"); return c.get(); } tai_based_mdt_s& tai_based() { - assert_choice_type("tAIBased", type_.to_string(), "AreaScopeOfMDT"); + assert_choice_type(types::tai_based, type_, "AreaScopeOfMDT"); return c.get(); } const cell_based_mdt_s& cell_based() const { - assert_choice_type("cellBased", type_.to_string(), "AreaScopeOfMDT"); + assert_choice_type(types::cell_based, type_, "AreaScopeOfMDT"); return c.get(); } const ta_based_mdt_s& tabased() const { - assert_choice_type("tABased", type_.to_string(), "AreaScopeOfMDT"); + assert_choice_type(types::tabased, type_, "AreaScopeOfMDT"); return c.get(); } const tai_based_mdt_s& tai_based() const { - assert_choice_type("tAIBased", type_.to_string(), "AreaScopeOfMDT"); - return c.get(); - } - cell_based_mdt_s& set_cell_based() - { - set(types::cell_based); - return c.get(); - } - ta_based_mdt_s& set_tabased() - { - set(types::tabased); - return c.get(); - } - void set_plmn_wide() { set(types::plmn_wide); } - tai_based_mdt_s& set_tai_based() - { - set(types::tai_based); + assert_choice_type(types::tai_based, type_, "AreaScopeOfMDT"); return c.get(); } + cell_based_mdt_s& set_cell_based(); + ta_based_mdt_s& set_tabased(); + void set_plmn_wide(); + tai_based_mdt_s& set_tai_based(); private: types type_; @@ -990,7 +974,7 @@ struct area_scope_of_qmc_c { struct types_opts { enum options { cell_based, tabased, tai_based, plmn_area_based, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1007,64 +991,48 @@ struct area_scope_of_qmc_c { // getters cell_based_qmc_s& cell_based() { - assert_choice_type("cellBased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::cell_based, type_, "AreaScopeOfQMC"); return c.get(); } ta_based_qmc_s& tabased() { - assert_choice_type("tABased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::tabased, type_, "AreaScopeOfQMC"); return c.get(); } tai_based_qmc_s& tai_based() { - assert_choice_type("tAIBased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::tai_based, type_, "AreaScopeOfQMC"); return c.get(); } plmn_area_based_qmc_s& plmn_area_based() { - assert_choice_type("pLMNAreaBased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::plmn_area_based, type_, "AreaScopeOfQMC"); return c.get(); } const cell_based_qmc_s& cell_based() const { - assert_choice_type("cellBased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::cell_based, type_, "AreaScopeOfQMC"); return c.get(); } const ta_based_qmc_s& tabased() const { - assert_choice_type("tABased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::tabased, type_, "AreaScopeOfQMC"); return c.get(); } const tai_based_qmc_s& tai_based() const { - assert_choice_type("tAIBased", type_.to_string(), "AreaScopeOfQMC"); + assert_choice_type(types::tai_based, type_, "AreaScopeOfQMC"); return c.get(); } const plmn_area_based_qmc_s& plmn_area_based() const { - assert_choice_type("pLMNAreaBased", type_.to_string(), "AreaScopeOfQMC"); - return c.get(); - } - cell_based_qmc_s& set_cell_based() - { - set(types::cell_based); - return c.get(); - } - ta_based_qmc_s& set_tabased() - { - set(types::tabased); - return c.get(); - } - tai_based_qmc_s& set_tai_based() - { - set(types::tai_based); - return c.get(); - } - plmn_area_based_qmc_s& set_plmn_area_based() - { - set(types::plmn_area_based); + assert_choice_type(types::plmn_area_based, type_, "AreaScopeOfQMC"); return c.get(); } + cell_based_qmc_s& set_cell_based(); + ta_based_qmc_s& set_tabased(); + tai_based_qmc_s& set_tai_based(); + plmn_area_based_qmc_s& set_plmn_area_based(); private: types type_; @@ -1140,7 +1108,7 @@ struct recommended_cell_item_ies_o { struct types_opts { enum options { recommended_cell_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1178,7 +1146,7 @@ using assist_data_for_recommended_cells_ext_ies_o = s1ap_protocol_ext_empty_o; struct next_paging_area_scope_opts { enum options { same, changed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated next_paging_area_scope_e; @@ -1321,7 +1289,7 @@ struct bearers_subject_to_status_transfer_item_ext_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1435,7 +1403,7 @@ struct bearers_subject_to_status_transfer_item_ies_o { struct types_opts { enum options { bearers_subject_to_status_transfer_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1472,7 +1440,7 @@ using bluetooth_meas_cfg_name_list_l = bounded_array bluetooth_meas_cfg_e; @@ -1486,7 +1454,7 @@ struct bluetooth_meas_cfg_s { struct bt_rssi_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated bt_rssi_e_; @@ -1627,7 +1595,7 @@ struct broadcast_cancelled_area_list_c { struct types_opts { enum options { cell_id_cancelled, tai_cancelled, emergency_area_id_cancelled, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1644,49 +1612,37 @@ struct broadcast_cancelled_area_list_c { // getters cell_id_cancelled_l& cell_id_cancelled() { - assert_choice_type("cellID-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } tai_cancelled_l& tai_cancelled() { - assert_choice_type("tAI-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } emergency_area_id_cancelled_l& emergency_area_id_cancelled() { - assert_choice_type("emergencyAreaID-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::emergency_area_id_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } const cell_id_cancelled_l& cell_id_cancelled() const { - assert_choice_type("cellID-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::cell_id_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } const tai_cancelled_l& tai_cancelled() const { - assert_choice_type("tAI-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); + assert_choice_type(types::tai_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } const emergency_area_id_cancelled_l& emergency_area_id_cancelled() const { - assert_choice_type("emergencyAreaID-Cancelled", type_.to_string(), "BroadcastCancelledAreaList"); - return c.get(); - } - cell_id_cancelled_l& set_cell_id_cancelled() - { - set(types::cell_id_cancelled); - return c.get(); - } - tai_cancelled_l& set_tai_cancelled() - { - set(types::tai_cancelled); - return c.get(); - } - emergency_area_id_cancelled_l& set_emergency_area_id_cancelled() - { - set(types::emergency_area_id_cancelled); + assert_choice_type(types::emergency_area_id_cancelled, type_, "BroadcastCancelledAreaList"); return c.get(); } + cell_id_cancelled_l& set_cell_id_cancelled(); + tai_cancelled_l& set_tai_cancelled(); + emergency_area_id_cancelled_l& set_emergency_area_id_cancelled(); private: types type_; @@ -1812,7 +1768,7 @@ struct broadcast_completed_area_list_c { struct types_opts { enum options { cell_id_broadcast, tai_broadcast, emergency_area_id_broadcast, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -1829,49 +1785,37 @@ struct broadcast_completed_area_list_c { // getters cell_id_broadcast_l& cell_id_broadcast() { - assert_choice_type("cellID-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } tai_broadcast_l& tai_broadcast() { - assert_choice_type("tAI-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } emergency_area_id_broadcast_l& emergency_area_id_broadcast() { - assert_choice_type("emergencyAreaID-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::emergency_area_id_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } const cell_id_broadcast_l& cell_id_broadcast() const { - assert_choice_type("cellID-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::cell_id_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } const tai_broadcast_l& tai_broadcast() const { - assert_choice_type("tAI-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); + assert_choice_type(types::tai_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } const emergency_area_id_broadcast_l& emergency_area_id_broadcast() const { - assert_choice_type("emergencyAreaID-Broadcast", type_.to_string(), "BroadcastCompletedAreaList"); - return c.get(); - } - cell_id_broadcast_l& set_cell_id_broadcast() - { - set(types::cell_id_broadcast); - return c.get(); - } - tai_broadcast_l& set_tai_broadcast() - { - set(types::tai_broadcast); - return c.get(); - } - emergency_area_id_broadcast_l& set_emergency_area_id_broadcast() - { - set(types::emergency_area_id_broadcast); + assert_choice_type(types::emergency_area_id_broadcast, type_, "BroadcastCompletedAreaList"); return c.get(); } + cell_id_broadcast_l& set_cell_id_broadcast(); + tai_broadcast_l& set_tai_broadcast(); + emergency_area_id_broadcast_l& set_emergency_area_id_broadcast(); private: types type_; @@ -1908,7 +1852,7 @@ struct cn_type_opts { enum options { five_gc_forbidden, /*...*/ epc_forbiddden, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cn_type_e; @@ -1965,7 +1909,7 @@ using csg_membership_info_ext_ies_o = s1ap_protocol_ext_empty_o; struct csg_membership_status_opts { enum options { member, not_member, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated csg_membership_status_e; @@ -1973,7 +1917,7 @@ typedef enumerated csg_membership_status_e; struct cell_access_mode_opts { enum options { hybrid, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_access_mode_e; @@ -2003,7 +1947,7 @@ struct irat_cell_id_c { struct types_opts { enum options { eutran, utran, geran, /*...*/ ehrpd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2020,64 +1964,48 @@ struct irat_cell_id_c { // getters unbounded_octstring& eutran() { - assert_choice_type("eUTRAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::eutran, type_, "IRAT-Cell-ID"); return c.get >(); } unbounded_octstring& utran() { - assert_choice_type("uTRAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::utran, type_, "IRAT-Cell-ID"); return c.get >(); } unbounded_octstring& geran() { - assert_choice_type("gERAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::geran, type_, "IRAT-Cell-ID"); return c.get >(); } fixed_octstring<16, true>& ehrpd() { - assert_choice_type("eHRPD", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::ehrpd, type_, "IRAT-Cell-ID"); return c.get >(); } const unbounded_octstring& eutran() const { - assert_choice_type("eUTRAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::eutran, type_, "IRAT-Cell-ID"); return c.get >(); } const unbounded_octstring& utran() const { - assert_choice_type("uTRAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::utran, type_, "IRAT-Cell-ID"); return c.get >(); } const unbounded_octstring& geran() const { - assert_choice_type("gERAN", type_.to_string(), "IRAT-Cell-ID"); + assert_choice_type(types::geran, type_, "IRAT-Cell-ID"); return c.get >(); } const fixed_octstring<16, true>& ehrpd() const { - assert_choice_type("eHRPD", type_.to_string(), "IRAT-Cell-ID"); - return c.get >(); - } - unbounded_octstring& set_eutran() - { - set(types::eutran); - return c.get >(); - } - unbounded_octstring& set_utran() - { - set(types::utran); - return c.get >(); - } - unbounded_octstring& set_geran() - { - set(types::geran); - return c.get >(); - } - fixed_octstring<16, true>& set_ehrpd() - { - set(types::ehrpd); + assert_choice_type(types::ehrpd, type_, "IRAT-Cell-ID"); return c.get >(); } + unbounded_octstring& set_eutran(); + unbounded_octstring& set_utran(); + unbounded_octstring& set_geran(); + fixed_octstring<16, true>& set_ehrpd(); private: types type_; @@ -2118,7 +2046,7 @@ struct cause_misc_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_misc_e; @@ -2133,7 +2061,7 @@ struct cause_nas_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_nas_e; @@ -2151,7 +2079,7 @@ struct cause_protocol_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_protocol_e; @@ -2202,7 +2130,7 @@ struct cause_radio_network_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_radio_network_e; @@ -2210,7 +2138,7 @@ typedef enumerated cause_radio_network_e; struct cause_transport_opts { enum options { transport_res_unavailable, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cause_transport_e; @@ -2220,7 +2148,7 @@ struct cause_c { enum options { radio_network, transport, nas, protocol, misc, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -2238,79 +2166,59 @@ struct cause_c { // getters cause_radio_network_e& radio_network() { - assert_choice_type("radioNetwork", type_.to_string(), "Cause"); + assert_choice_type(types::radio_network, type_, "Cause"); return c.get(); } cause_transport_e& transport() { - assert_choice_type("transport", type_.to_string(), "Cause"); + assert_choice_type(types::transport, type_, "Cause"); return c.get(); } cause_nas_e& nas() { - assert_choice_type("nas", type_.to_string(), "Cause"); + assert_choice_type(types::nas, type_, "Cause"); return c.get(); } cause_protocol_e& protocol() { - assert_choice_type("protocol", type_.to_string(), "Cause"); + assert_choice_type(types::protocol, type_, "Cause"); return c.get(); } cause_misc_e& misc() { - assert_choice_type("misc", type_.to_string(), "Cause"); + assert_choice_type(types::misc, type_, "Cause"); return c.get(); } const cause_radio_network_e& radio_network() const { - assert_choice_type("radioNetwork", type_.to_string(), "Cause"); + assert_choice_type(types::radio_network, type_, "Cause"); return c.get(); } const cause_transport_e& transport() const { - assert_choice_type("transport", type_.to_string(), "Cause"); + assert_choice_type(types::transport, type_, "Cause"); return c.get(); } const cause_nas_e& nas() const { - assert_choice_type("nas", type_.to_string(), "Cause"); + assert_choice_type(types::nas, type_, "Cause"); return c.get(); } const cause_protocol_e& protocol() const { - assert_choice_type("protocol", type_.to_string(), "Cause"); + assert_choice_type(types::protocol, type_, "Cause"); return c.get(); } const cause_misc_e& misc() const { - assert_choice_type("misc", type_.to_string(), "Cause"); - return c.get(); - } - cause_radio_network_e& set_radio_network() - { - set(types::radio_network); - return c.get(); - } - cause_transport_e& set_transport() - { - set(types::transport); - return c.get(); - } - cause_nas_e& set_nas() - { - set(types::nas); - return c.get(); - } - cause_protocol_e& set_protocol() - { - set(types::protocol); - return c.get(); - } - cause_misc_e& set_misc() - { - set(types::misc); + assert_choice_type(types::misc, type_, "Cause"); return c.get(); } + cause_radio_network_e& set_radio_network(); + cause_transport_e& set_transport(); + cause_nas_e& set_nas(); + cause_protocol_e& set_protocol(); + cause_misc_e& set_misc(); private: types type_; @@ -2424,7 +2332,7 @@ struct cell_load_report_resp_c { struct types_opts { enum options { eutran, utran, geran, /*...*/ ehrpd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2441,64 +2349,48 @@ struct cell_load_report_resp_c { // getters eutra_ncell_load_report_resp_s& eutran() { - assert_choice_type("eUTRAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::eutran, type_, "CellLoadReportingResponse"); return c.get(); } unbounded_octstring& utran() { - assert_choice_type("uTRAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::utran, type_, "CellLoadReportingResponse"); return c.get >(); } unbounded_octstring& geran() { - assert_choice_type("gERAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::geran, type_, "CellLoadReportingResponse"); return c.get >(); } ehrpd_sector_load_report_resp_s& ehrpd() { - assert_choice_type("eHRPD", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::ehrpd, type_, "CellLoadReportingResponse"); return c.get(); } const eutra_ncell_load_report_resp_s& eutran() const { - assert_choice_type("eUTRAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::eutran, type_, "CellLoadReportingResponse"); return c.get(); } const unbounded_octstring& utran() const { - assert_choice_type("uTRAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::utran, type_, "CellLoadReportingResponse"); return c.get >(); } const unbounded_octstring& geran() const { - assert_choice_type("gERAN", type_.to_string(), "CellLoadReportingResponse"); + assert_choice_type(types::geran, type_, "CellLoadReportingResponse"); return c.get >(); } const ehrpd_sector_load_report_resp_s& ehrpd() const { - assert_choice_type("eHRPD", type_.to_string(), "CellLoadReportingResponse"); - return c.get(); - } - eutra_ncell_load_report_resp_s& set_eutran() - { - set(types::eutran); - return c.get(); - } - unbounded_octstring& set_utran() - { - set(types::utran); - return c.get >(); - } - unbounded_octstring& set_geran() - { - set(types::geran); - return c.get >(); - } - ehrpd_sector_load_report_resp_s& set_ehrpd() - { - set(types::ehrpd); + assert_choice_type(types::ehrpd, type_, "CellLoadReportingResponse"); return c.get(); } + eutra_ncell_load_report_resp_s& set_eutran(); + unbounded_octstring& set_utran(); + unbounded_octstring& set_geran(); + ehrpd_sector_load_report_resp_s& set_ehrpd(); private: types type_; @@ -2511,7 +2403,7 @@ private: struct notify_flag_opts { enum options { activ, deactiv, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated notify_flag_e; @@ -2547,7 +2439,7 @@ struct cell_state_ind_s { struct privacy_ind_opts { enum options { immediate_mdt, logged_mdt, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated privacy_ind_e; @@ -2566,7 +2458,7 @@ struct cell_traffic_trace_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2658,7 +2550,7 @@ struct cell_traffic_trace_s { struct cell_size_opts { enum options { verysmall, small, medium, large, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_size_e; @@ -2685,7 +2577,7 @@ struct cell_type_s { struct rat_type_opts { enum options { nbiot, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rat_type_e; @@ -2696,7 +2588,7 @@ struct supported_tas_item_ext_ies_o { struct types_opts { enum options { rat_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2775,7 +2667,7 @@ struct gbr_qos_info_ext_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2827,7 +2719,7 @@ struct erab_qos_params_ext_ies_o { struct types_opts { enum options { dl_packet_loss_rate, ul_packet_loss_rate, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -2928,7 +2820,7 @@ using subscription_based_ue_differentiation_info_ext_ies_o = s1ap_protocol_ext_e struct ce_mode_brestricted_opts { enum options { restricted, not_restricted, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ce_mode_brestricted_e; @@ -2986,7 +2878,7 @@ struct erab_level_qos_params_s { struct end_ind_opts { enum options { no_further_data, further_data_exists, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated end_ind_e; @@ -2994,7 +2886,7 @@ typedef enumerated end_ind_e; struct enhanced_coverage_restricted_opts { enum options { restricted, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated enhanced_coverage_restricted_e; @@ -3005,19 +2897,19 @@ struct subscription_based_ue_differentiation_info_s { struct periodic_communication_ind_opts { enum options { periodically, ondemand, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated periodic_communication_ind_e_; struct stationary_ind_opts { enum options { stationary, mobile, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated stationary_ind_e_; struct traffic_profile_opts { enum options { single_packet, dual_packets, multiple_packets, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated traffic_profile_e_; struct battery_ind_opts { @@ -3028,7 +2920,7 @@ struct subscription_based_ue_differentiation_info_s { /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated battery_ind_e_; @@ -3074,7 +2966,7 @@ struct conn_establishment_ind_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3173,7 +3065,7 @@ struct enb_id_c { struct types_opts { enum options { macro_enb_id, home_enb_id, /*...*/ short_macro_enb_id, long_macro_enb_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3190,64 +3082,48 @@ struct enb_id_c { // getters fixed_bitstring<20, false, true>& macro_enb_id() { - assert_choice_type("macroENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::macro_enb_id, type_, "ENB-ID"); return c.get >(); } fixed_bitstring<28, false, true>& home_enb_id() { - assert_choice_type("homeENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::home_enb_id, type_, "ENB-ID"); return c.get >(); } fixed_bitstring<18, false, true>& short_macro_enb_id() { - assert_choice_type("short-macroENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::short_macro_enb_id, type_, "ENB-ID"); return c.get >(); } fixed_bitstring<21, false, true>& long_macro_enb_id() { - assert_choice_type("long-macroENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::long_macro_enb_id, type_, "ENB-ID"); return c.get >(); } const fixed_bitstring<20, false, true>& macro_enb_id() const { - assert_choice_type("macroENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::macro_enb_id, type_, "ENB-ID"); return c.get >(); } const fixed_bitstring<28, false, true>& home_enb_id() const { - assert_choice_type("homeENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::home_enb_id, type_, "ENB-ID"); return c.get >(); } const fixed_bitstring<18, false, true>& short_macro_enb_id() const { - assert_choice_type("short-macroENB-ID", type_.to_string(), "ENB-ID"); + assert_choice_type(types::short_macro_enb_id, type_, "ENB-ID"); return c.get >(); } const fixed_bitstring<21, false, true>& long_macro_enb_id() const { - assert_choice_type("long-macroENB-ID", type_.to_string(), "ENB-ID"); - return c.get >(); - } - fixed_bitstring<20, false, true>& set_macro_enb_id() - { - set(types::macro_enb_id); - return c.get >(); - } - fixed_bitstring<28, false, true>& set_home_enb_id() - { - set(types::home_enb_id); - return c.get >(); - } - fixed_bitstring<18, false, true>& set_short_macro_enb_id() - { - set(types::short_macro_enb_id); - return c.get >(); - } - fixed_bitstring<21, false, true>& set_long_macro_enb_id() - { - set(types::long_macro_enb_id); + assert_choice_type(types::long_macro_enb_id, type_, "ENB-ID"); return c.get >(); } + fixed_bitstring<20, false, true>& set_macro_enb_id(); + fixed_bitstring<28, false, true>& set_home_enb_id(); + fixed_bitstring<18, false, true>& set_short_macro_enb_id(); + fixed_bitstring<21, false, true>& set_long_macro_enb_id(); private: types type_; @@ -3261,7 +3137,7 @@ struct gnb_id_c { struct types_opts { enum options { gnb_id, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3364,7 +3240,7 @@ struct global_ran_node_id_c { struct types_opts { enum options { gnb, ng_enb, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3381,34 +3257,26 @@ struct global_ran_node_id_c { // getters gnb_s& gnb() { - assert_choice_type("gNB", type_.to_string(), "Global-RAN-NODE-ID"); + assert_choice_type(types::gnb, type_, "Global-RAN-NODE-ID"); return c.get(); } ng_enb_s& ng_enb() { - assert_choice_type("ng-eNB", type_.to_string(), "Global-RAN-NODE-ID"); + assert_choice_type(types::ng_enb, type_, "Global-RAN-NODE-ID"); return c.get(); } const gnb_s& gnb() const { - assert_choice_type("gNB", type_.to_string(), "Global-RAN-NODE-ID"); + assert_choice_type(types::gnb, type_, "Global-RAN-NODE-ID"); return c.get(); } const ng_enb_s& ng_enb() const { - assert_choice_type("ng-eNB", type_.to_string(), "Global-RAN-NODE-ID"); - return c.get(); - } - gnb_s& set_gnb() - { - set(types::gnb); - return c.get(); - } - ng_enb_s& set_ng_enb() - { - set(types::ng_enb); + assert_choice_type(types::ng_enb, type_, "Global-RAN-NODE-ID"); return c.get(); } + gnb_s& set_gnb(); + ng_enb_s& set_ng_enb(); private: types type_; @@ -3441,7 +3309,7 @@ using crit_diagnostics_ie_item_ext_ies_o = s1ap_protocol_ext_empty_o; struct type_of_error_opts { enum options { not_understood, missing, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated type_of_error_e; @@ -3473,7 +3341,7 @@ using crit_diagnostics_ie_list_l = dyn_array; struct trigger_msg_opts { enum options { init_msg, successful_outcome, unsuccessfull_outcome, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated trigger_msg_e; @@ -3507,7 +3375,7 @@ struct deactiv_trace_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, e_utran_trace_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3623,7 +3491,7 @@ struct nrrestrictin5_gs_opts { enum options { nrrestrictedin5_gs, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nrrestrictin5_gs_e; @@ -3632,7 +3500,7 @@ typedef enumerated nrrestrictin5_gs_e; struct nrrestrictin_ep_sas_secondary_rat_opts { enum options { nrrestrictedin_ep_sas_secondary_rat, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated nrrestrictin_ep_sas_secondary_rat_e; @@ -3640,7 +3508,7 @@ typedef enumerated nrrestrictin_ep struct unlicensed_spec_restrict_opts { enum options { unlicensed_restricted, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated unlicensed_spec_restrict_e; @@ -3651,7 +3519,7 @@ using eplmns_l = bounded_array, 15>; struct forbidden_inter_rats_opts { enum options { all, geran, utran, cdma2000, /*...*/ geranandutran, cdma2000andutran, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated forbidden_inter_rats_e; @@ -3676,7 +3544,7 @@ struct ho_restrict_list_ext_ies_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -3725,7 +3593,7 @@ using nrue_security_cap_ext_ies_o = s1ap_protocol_ext_empty_o; struct dlnaspdu_delivery_ack_request_opts { enum options { requested, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dlnaspdu_delivery_ack_request_e; @@ -3795,7 +3663,7 @@ struct nrue_security_cap_s { struct pending_data_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pending_data_ind_e; @@ -3803,7 +3671,7 @@ typedef enumerated pending_data_ind_e; struct srvcc_operation_possible_opts { enum options { possible, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated srvcc_operation_possible_e; @@ -3811,7 +3679,7 @@ typedef enumerated srvcc_operation_possible struct ue_cap_info_request_opts { enum options { requested, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_cap_info_request_e; @@ -3840,7 +3708,7 @@ struct dl_nas_transport_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -3970,7 +3838,7 @@ struct dl_non_ueassociated_lp_pa_transport_ies_o { enum options { routing_id, lp_pa_pdu, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -4076,7 +3944,7 @@ struct erab_data_forwarding_item_ies_o { struct types_opts { enum options { erab_data_forwarding_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4105,7 +3973,7 @@ struct erab_data_forwarding_item_ies_o { struct cdma2000_ho_status_opts { enum options { hosuccess, hofail, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cdma2000_ho_status_e; @@ -4114,7 +3982,7 @@ struct cdma2000_rat_type_opts { enum options { hrpd, onex_rtt, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated cdma2000_rat_type_e; @@ -4134,7 +4002,7 @@ struct dl_s1cdma2000tunnelling_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4217,7 +4085,7 @@ struct dl_ueassociated_lp_pa_transport_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, routing_id, lp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4331,7 +4199,7 @@ struct erab_admitted_item_ies_o { struct types_opts { enum options { erab_admitted_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4383,7 +4251,7 @@ struct erab_failed_to_resume_item_resume_req_ies_o { struct types_opts { enum options { erab_failed_to_resume_item_resume_req, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4435,7 +4303,7 @@ struct erab_failed_to_resume_item_resume_res_ies_o { struct types_opts { enum options { erab_failed_to_resume_item_resume_res, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4487,7 +4355,7 @@ struct erab_failedto_setup_item_ho_req_ack_ies_o { struct types_opts { enum options { erab_failedto_setup_item_ho_req_ack, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4516,7 +4384,7 @@ struct erab_failedto_setup_item_ho_req_ack_ies_o { struct dl_forwarding_opts { enum options { dl_forwarding_proposed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated dl_forwarding_e; @@ -4548,7 +4416,7 @@ struct erab_info_list_ies_o { struct types_opts { enum options { erab_info_list_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4603,7 +4471,7 @@ struct erab_item_ies_o { struct types_opts { enum options { erab_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4657,7 +4525,7 @@ struct erab_modify_item_bearer_mod_conf_ies_o { struct types_opts { enum options { erab_modify_item_bearer_mod_conf, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4703,7 +4571,7 @@ struct erab_mod_confirm_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4817,7 +4685,7 @@ struct erabusage_report_item_ies_o { struct types_opts { enum options { erabusage_report_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4881,7 +4749,7 @@ using secondary_rat_data_usage_report_item_ext_ies_o = s1ap_protocol_ext_empty_o struct secondary_rat_type_opts { enum options { nr, /*...*/ unlicensed, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated secondary_rat_type_e; @@ -4962,7 +4830,7 @@ struct erab_not_to_be_modified_item_bearer_mod_ind_ies_o { struct types_opts { enum options { erab_not_to_be_modified_item_bearer_mod_ind, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -4997,7 +4865,7 @@ struct erab_to_be_modified_item_bearer_mod_ind_ies_o { struct types_opts { enum options { erab_to_be_modified_item_bearer_mod_ind, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5029,7 +4897,7 @@ struct secondary_rat_data_usage_report_item_ies_o { struct types_opts { enum options { secondary_rat_data_usage_report_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5064,7 +4932,7 @@ struct user_location_info_ext_ies_o { struct types_opts { enum options { ps_cell_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5144,7 +5012,7 @@ struct erab_mod_ind_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5267,7 +5135,7 @@ struct erab_modify_item_bearer_mod_res_ies_o { struct types_opts { enum options { erab_modify_item_bearer_mod_res, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5317,7 +5185,7 @@ struct erab_to_be_modify_item_bearer_mod_req_ext_ies_o { struct types_opts { enum options { transport_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5365,7 +5233,7 @@ struct erab_to_be_modified_item_bearer_mod_req_ies_o { struct types_opts { enum options { erab_to_be_modified_item_bearer_mod_req, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5401,7 +5269,7 @@ struct ue_aggregate_maximum_bitrates_ext_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5445,7 +5313,7 @@ using erab_to_be_modified_list_bearer_mod_req_l = struct secondary_rat_data_usage_request_opts { enum options { requested, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated secondary_rat_data_usage_request_e; @@ -5495,7 +5363,7 @@ struct erab_modify_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5584,7 +5452,7 @@ struct erab_modify_resp_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5682,7 +5550,7 @@ struct erab_release_cmd_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5769,7 +5637,7 @@ struct erab_release_ind_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5869,7 +5737,7 @@ struct erab_release_item_bearer_rel_comp_ies_o { struct types_opts { enum options { erab_release_item_bearer_rel_comp, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -5915,7 +5783,7 @@ struct erab_release_resp_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6032,7 +5900,7 @@ struct erab_setup_item_bearer_su_res_ies_o { struct types_opts { enum options { erab_setup_item_bearer_su_res, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6085,7 +5953,7 @@ struct erab_setup_item_ctxt_su_res_ies_o { struct types_opts { enum options { erab_setup_item_ctxt_su_res, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6120,7 +5988,7 @@ using erab_setup_list_ctxt_su_res_l = dyn_array bearer_type_e; @@ -6131,7 +5999,7 @@ struct erab_to_be_setup_item_bearer_su_req_ext_ies_o { struct types_opts { enum options { correlation_id, sipto_correlation_id, bearer_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6212,7 +6080,7 @@ struct erab_to_be_setup_item_bearer_su_req_ies_o { struct types_opts { enum options { erab_to_be_setup_item_bearer_su_req, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6255,7 +6123,7 @@ struct erab_setup_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6339,7 +6207,7 @@ struct erab_setup_resp_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6422,7 +6290,7 @@ struct erab_to_be_setup_item_ctxt_su_req_ext_ies_o { struct types_opts { enum options { correlation_id, sipto_correlation_id, bearer_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6504,7 +6372,7 @@ struct erab_to_be_setup_item_ctxt_su_req_ies_o { struct types_opts { enum options { erab_to_be_setup_item_ctxt_su_req, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6533,7 +6401,7 @@ struct erab_to_be_setup_item_ctxt_su_req_ies_o { struct data_forwarding_not_possible_opts { enum options { data_forwarding_not_possible, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated data_forwarding_not_possible_e; @@ -6544,7 +6412,7 @@ struct erab_to_be_setup_item_ho_req_ext_ies_o { struct types_opts { enum options { data_forwarding_not_possible, bearer_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6620,7 +6488,7 @@ struct erab_to_be_setup_item_ho_req_ies_o { struct types_opts { enum options { erab_to_be_setup_item_ho_req, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6678,7 +6546,7 @@ struct erab_to_be_switched_dl_item_ies_o { struct types_opts { enum options { erab_to_be_switched_dl_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6731,7 +6599,7 @@ struct erab_to_be_switched_ul_item_ies_o { struct types_opts { enum options { erab_to_be_switched_ul_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6804,7 +6672,7 @@ struct enbx2_ext_tla_s { struct muting_availability_ind_opts { enum options { available, unavailable, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated muting_availability_ind_e; @@ -6845,7 +6713,7 @@ struct rlf_report_info_s { struct synchronisation_status_opts { enum options { sync, async, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated synchronisation_status_e; @@ -6856,7 +6724,7 @@ struct time_synchronisation_info_ext_ies_o { struct types_opts { enum options { muting_availability_ind, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6918,7 +6786,7 @@ struct muting_pattern_info_s { enum options { ms0, ms1280, ms2560, ms5120, ms10240, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated muting_pattern_period_e_; @@ -6943,7 +6811,7 @@ struct son_info_report_c { struct types_opts { enum options { rlf_report_info, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -6986,7 +6854,7 @@ struct x2_tnl_cfg_info_ext_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7085,7 +6953,7 @@ struct son_info_ext_ie_o { struct types_opts { enum options { son_info_report, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7117,7 +6985,7 @@ struct son_info_reply_ext_ies_o { struct types_opts { enum options { time_synchronisation_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7233,7 +7101,7 @@ struct son_info_request_opts { enum options { x2_tnl_cfg_info, /*...*/ time_synchronisation_info, activ_muting, deactiv_muting, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated son_info_request_e; @@ -7246,7 +7114,7 @@ struct en_dcson_transfer_type_c { struct types_opts { enum options { request, reply, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7263,34 +7131,26 @@ struct en_dcson_transfer_type_c { // getters en_dc_transfer_type_request_s& request() { - assert_choice_type("request", type_.to_string(), "EN-DCSONTransferType"); + assert_choice_type(types::request, type_, "EN-DCSONTransferType"); return c.get(); } en_dc_transfer_type_reply_s& reply() { - assert_choice_type("reply", type_.to_string(), "EN-DCSONTransferType"); + assert_choice_type(types::reply, type_, "EN-DCSONTransferType"); return c.get(); } const en_dc_transfer_type_request_s& request() const { - assert_choice_type("request", type_.to_string(), "EN-DCSONTransferType"); + assert_choice_type(types::request, type_, "EN-DCSONTransferType"); return c.get(); } const en_dc_transfer_type_reply_s& reply() const { - assert_choice_type("reply", type_.to_string(), "EN-DCSONTransferType"); - return c.get(); - } - en_dc_transfer_type_request_s& set_request() - { - set(types::request); - return c.get(); - } - en_dc_transfer_type_reply_s& set_reply() - { - set(types::reply); + assert_choice_type(types::reply, type_, "EN-DCSONTransferType"); return c.get(); } + en_dc_transfer_type_request_s& set_request(); + en_dc_transfer_type_reply_s& set_reply(); private: types type_; @@ -7304,7 +7164,7 @@ struct son_info_c { struct types_opts { enum options { son_info_request, son_info_reply, /*...*/ son_info_ext, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7321,49 +7181,37 @@ struct son_info_c { // getters son_info_request_e& son_info_request() { - assert_choice_type("sONInformationRequest", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_request, type_, "SONInformation"); return c.get(); } son_info_reply_s& son_info_reply() { - assert_choice_type("sONInformationReply", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_reply, type_, "SONInformation"); return c.get(); } protocol_ie_single_container_s& son_info_ext() { - assert_choice_type("sONInformation-Extension", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_ext, type_, "SONInformation"); return c.get >(); } const son_info_request_e& son_info_request() const { - assert_choice_type("sONInformationRequest", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_request, type_, "SONInformation"); return c.get(); } const son_info_reply_s& son_info_reply() const { - assert_choice_type("sONInformationReply", type_.to_string(), "SONInformation"); + assert_choice_type(types::son_info_reply, type_, "SONInformation"); return c.get(); } const protocol_ie_single_container_s& son_info_ext() const { - assert_choice_type("sONInformation-Extension", type_.to_string(), "SONInformation"); - return c.get >(); - } - son_info_request_e& set_son_info_request() - { - set(types::son_info_request); - return c.get(); - } - son_info_reply_s& set_son_info_reply() - { - set(types::son_info_reply); - return c.get(); - } - protocol_ie_single_container_s& set_son_info_ext() - { - set(types::son_info_ext); + assert_choice_type(types::son_info_ext, type_, "SONInformation"); return c.get >(); } + son_info_request_e& set_son_info_request(); + son_info_reply_s& set_son_info_reply(); + protocol_ie_single_container_s& set_son_info_ext(); private: types type_; @@ -7458,7 +7306,7 @@ struct enbcp_relocation_ind_ies_o { enum options { enb_ue_s1ap_id, s_tmsi, eutran_cgi, tai, ul_cp_security_info, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -7541,7 +7389,7 @@ struct listening_sf_pattern_s { enum options { ms1280, ms2560, ms5120, ms10240, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pattern_period_e_; @@ -7598,7 +7446,7 @@ struct son_cfg_transfer_ext_ies_o { enum options { x2_tnl_cfg_info, synchronisation_info, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -7706,7 +7554,7 @@ struct enb_cfg_transfer_ies_o { struct types_opts { enum options { son_cfg_transfer_ect, en_dcson_cfg_transfer_ect, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7775,7 +7623,7 @@ struct nb_io_t_default_paging_drx_opts { enum options { v128, v256, v512, v1024, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nb_io_t_default_paging_drx_e; @@ -7785,7 +7633,7 @@ struct paging_drx_opts { enum options { v32, v64, v128, v256, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated paging_drx_e; @@ -7806,7 +7654,7 @@ struct enb_cfg_upd_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7897,7 +7745,7 @@ struct enb_cfg_upd_ack_ies_o { struct types_opts { enum options { crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -7939,7 +7787,7 @@ struct time_to_wait_opts { enum options { v1s, v2s, v5s, v10s, v20s, v60s, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_to_wait_e; @@ -7951,7 +7799,7 @@ struct enb_cfg_upd_fail_ies_o { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8088,7 +7936,7 @@ struct rim_routing_address_c { struct types_opts { enum options { geran_cell_id, /*...*/ target_rnc_id, ehrpd_sector_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8105,49 +7953,37 @@ struct rim_routing_address_c { // getters geran_cell_id_s& geran_cell_id() { - assert_choice_type("gERAN-Cell-ID", type_.to_string(), "RIMRoutingAddress"); + assert_choice_type(types::geran_cell_id, type_, "RIMRoutingAddress"); return c.get(); } target_rnc_id_s& target_rnc_id() { - assert_choice_type("targetRNC-ID", type_.to_string(), "RIMRoutingAddress"); + assert_choice_type(types::target_rnc_id, type_, "RIMRoutingAddress"); return c.get(); } fixed_octstring<16, true>& ehrpd_sector_id() { - assert_choice_type("eHRPD-Sector-ID", type_.to_string(), "RIMRoutingAddress"); + assert_choice_type(types::ehrpd_sector_id, type_, "RIMRoutingAddress"); return c.get >(); } const geran_cell_id_s& geran_cell_id() const { - assert_choice_type("gERAN-Cell-ID", type_.to_string(), "RIMRoutingAddress"); + assert_choice_type(types::geran_cell_id, type_, "RIMRoutingAddress"); return c.get(); } const target_rnc_id_s& target_rnc_id() const { - assert_choice_type("targetRNC-ID", type_.to_string(), "RIMRoutingAddress"); + assert_choice_type(types::target_rnc_id, type_, "RIMRoutingAddress"); return c.get(); } const fixed_octstring<16, true>& ehrpd_sector_id() const { - assert_choice_type("eHRPD-Sector-ID", type_.to_string(), "RIMRoutingAddress"); - return c.get >(); - } - geran_cell_id_s& set_geran_cell_id() - { - set(types::geran_cell_id); - return c.get(); - } - target_rnc_id_s& set_target_rnc_id() - { - set(types::target_rnc_id); - return c.get(); - } - fixed_octstring<16, true>& set_ehrpd_sector_id() - { - set(types::ehrpd_sector_id); + assert_choice_type(types::ehrpd_sector_id, type_, "RIMRoutingAddress"); return c.get >(); } + geran_cell_id_s& set_geran_cell_id(); + target_rnc_id_s& set_target_rnc_id(); + fixed_octstring<16, true>& set_ehrpd_sector_id(); private: types type_; @@ -8182,7 +8018,7 @@ struct inter_sys_info_transfer_type_c { struct types_opts { enum options { rim_transfer, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8206,7 +8042,7 @@ struct enb_direct_info_transfer_ies_o { struct types_opts { enum options { inter_sys_info_transfer_type_edt, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8250,7 +8086,7 @@ struct enb_status_transfer_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, enb_status_transfer_transparent_container, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8341,7 +8177,7 @@ struct error_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, s_tmsi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8422,7 +8258,7 @@ struct nof_meas_report_levels_opts { enum options { rl2, rl3, rl4, rl5, rl10, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nof_meas_report_levels_e; @@ -8443,7 +8279,7 @@ struct event_triggered_cell_load_report_request_s { struct overload_flag_opts { enum options { overload, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated overload_flag_e; @@ -8468,7 +8304,7 @@ using expected_ue_activity_behaviour_ext_ies_o = s1ap_protocol_ext_empty_o; struct source_of_ue_activity_behaviour_info_opts { enum options { subscription_info, statistics, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated source_of_ue_activity_behaviour_info_e; @@ -8498,7 +8334,7 @@ struct expected_ho_interv_opts { enum options { sec15, sec30, sec60, sec90, sec120, sec180, long_time, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated expected_ho_interv_e; @@ -8544,7 +8380,7 @@ struct fail_event_report_c { struct types_opts { enum options { too_early_inter_ratho_report_from_eutran, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8571,7 +8407,7 @@ using gummei_list_l = dyn_array; struct ho_report_type_opts { enum options { unnecessaryhotoanotherrat, /*...*/ earlyiratho, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ho_report_type_e; @@ -8579,7 +8415,7 @@ typedef enumerated ho_report_type_e; struct ho_type_opts { enum options { ltetoutran, ltetogeran, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ho_type_e; @@ -8607,7 +8443,7 @@ struct ho_cancel_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8679,7 +8515,7 @@ struct ho_cancel_ack_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8759,7 +8595,7 @@ struct handov_type_opts { } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated handov_type_e; @@ -8782,7 +8618,7 @@ struct ho_cmd_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -8882,7 +8718,7 @@ struct ho_fail_ies_o { enum options { mme_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -8965,7 +8801,7 @@ struct ho_notify_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9052,7 +8888,7 @@ struct ho_prep_fail_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9146,7 +8982,7 @@ struct mbsfn_result_to_log_info_s { struct links_to_log_opts { enum options { ul, dl, both_ul_and_dl, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated links_to_log_e; @@ -9158,7 +8994,7 @@ struct logging_dur_opts { enum options { m10, m20, m40, m60, m90, m120, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated logging_dur_e; @@ -9168,7 +9004,7 @@ struct logging_interv_opts { enum options { ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144, nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated logging_interv_e; @@ -9193,7 +9029,7 @@ struct m3period_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated m3period_e; @@ -9206,7 +9042,7 @@ struct m4period_opts { enum options { ms1024, ms2048, ms5120, ms10240, min1, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated m4period_e; @@ -9219,7 +9055,7 @@ struct m5period_opts { enum options { ms1024, ms2048, ms5120, ms10240, min1, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated m5period_e; @@ -9232,7 +9068,7 @@ struct m6delay_thres_opts { enum options { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated m6delay_thres_e; @@ -9242,7 +9078,7 @@ struct m6report_interv_opts { enum options { ms1024, ms2048, ms5120, ms10240, /*...*/ nulltype } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated m6report_interv_e; @@ -9257,7 +9093,7 @@ using mbsfn_result_to_log_l = dyn_array; struct wlan_meas_cfg_opts { enum options { setup, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated wlan_meas_cfg_e; @@ -9383,7 +9219,7 @@ struct meas_thres_a2_c { struct types_opts { enum options { thres_rsrp, thres_rsrq, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9400,34 +9236,26 @@ struct meas_thres_a2_c { // getters uint8_t& thres_rsrp() { - assert_choice_type("threshold-RSRP", type_.to_string(), "MeasurementThresholdA2"); + assert_choice_type(types::thres_rsrp, type_, "MeasurementThresholdA2"); return c.get(); } uint8_t& thres_rsrq() { - assert_choice_type("threshold-RSRQ", type_.to_string(), "MeasurementThresholdA2"); + assert_choice_type(types::thres_rsrq, type_, "MeasurementThresholdA2"); return c.get(); } const uint8_t& thres_rsrp() const { - assert_choice_type("threshold-RSRP", type_.to_string(), "MeasurementThresholdA2"); + assert_choice_type(types::thres_rsrp, type_, "MeasurementThresholdA2"); return c.get(); } const uint8_t& thres_rsrq() const { - assert_choice_type("threshold-RSRQ", type_.to_string(), "MeasurementThresholdA2"); - return c.get(); - } - uint8_t& set_thres_rsrp() - { - set(types::thres_rsrp); - return c.get(); - } - uint8_t& set_thres_rsrq() - { - set(types::thres_rsrq); + assert_choice_type(types::thres_rsrq, type_, "MeasurementThresholdA2"); return c.get(); } + uint8_t& set_thres_rsrp(); + uint8_t& set_thres_rsrq(); private: types type_; @@ -9441,7 +9269,7 @@ struct report_amount_mdt_opts { enum options { r1, r2, r4, r8, r16, r32, r64, rinfinity, nulltype } value; typedef int8_t number_type; - std::string to_string() const; + const char* to_string() const; int8_t to_number() const; }; typedef enumerated report_amount_mdt_e; @@ -9466,7 +9294,7 @@ struct report_interv_mdt_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated report_interv_mdt_e; @@ -9478,13 +9306,13 @@ struct wlan_meas_cfg_s { struct wlan_rssi_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated wlan_rssi_e_; struct wlan_rtt_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated wlan_rtt_e_; @@ -9525,7 +9353,7 @@ struct immediate_mdt_ext_ies_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -9588,7 +9416,7 @@ struct logged_mdt_ext_ies_o { struct types_opts { enum options { bluetooth_meas_cfg, wlan_meas_cfg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9644,7 +9472,7 @@ struct m1_periodic_report_s { struct m1_report_trigger_opts { enum options { periodic, a2eventtriggered, /*...*/ a2eventtriggered_periodic, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated m1_report_trigger_e; @@ -9671,7 +9499,7 @@ struct mdt_mode_ext_ie_o { struct types_opts { enum options { logged_mbsfnmdt, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9783,7 +9611,7 @@ using mdtplmn_list_l = bounded_array, 16>; struct service_type_opts { enum options { qmc_for_streaming_service, qmc_for_mtsi_service, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated service_type_e; @@ -9797,7 +9625,7 @@ struct mdt_activation_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mdt_activation_e; @@ -9808,7 +9636,7 @@ struct mdt_cfg_ext_ies_o { struct types_opts { enum options { sig_based_mdtplmn_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9838,7 +9666,7 @@ struct mdt_mode_c { struct types_opts { enum options { immediate_mdt, logged_mdt, /*...*/ mdt_mode_ext, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9855,49 +9683,37 @@ struct mdt_mode_c { // getters immediate_mdt_s& immediate_mdt() { - assert_choice_type("immediateMDT", type_.to_string(), "MDTMode"); + assert_choice_type(types::immediate_mdt, type_, "MDTMode"); return c.get(); } logged_mdt_s& logged_mdt() { - assert_choice_type("loggedMDT", type_.to_string(), "MDTMode"); + assert_choice_type(types::logged_mdt, type_, "MDTMode"); return c.get(); } protocol_ie_single_container_s& mdt_mode_ext() { - assert_choice_type("mDTMode-Extension", type_.to_string(), "MDTMode"); + assert_choice_type(types::mdt_mode_ext, type_, "MDTMode"); return c.get >(); } const immediate_mdt_s& immediate_mdt() const { - assert_choice_type("immediateMDT", type_.to_string(), "MDTMode"); + assert_choice_type(types::immediate_mdt, type_, "MDTMode"); return c.get(); } const logged_mdt_s& logged_mdt() const { - assert_choice_type("loggedMDT", type_.to_string(), "MDTMode"); + assert_choice_type(types::logged_mdt, type_, "MDTMode"); return c.get(); } const protocol_ie_single_container_s& mdt_mode_ext() const { - assert_choice_type("mDTMode-Extension", type_.to_string(), "MDTMode"); - return c.get >(); - } - immediate_mdt_s& set_immediate_mdt() - { - set(types::immediate_mdt); - return c.get(); - } - logged_mdt_s& set_logged_mdt() - { - set(types::logged_mdt); - return c.get(); - } - protocol_ie_single_container_s& set_mdt_mode_ext() - { - set(types::mdt_mode_ext); + assert_choice_type(types::mdt_mode_ext, type_, "MDTMode"); return c.get >(); } + immediate_mdt_s& set_immediate_mdt(); + logged_mdt_s& set_logged_mdt(); + protocol_ie_single_container_s& set_mdt_mode_ext(); private: types type_; @@ -9913,7 +9729,7 @@ struct ue_app_layer_meas_cfg_ext_ies_o { struct types_opts { enum options { service_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -9958,7 +9774,7 @@ struct mdt_cfg_s { struct pro_se_ueto_network_relaying_opts { enum options { authorized, not_authorized, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pro_se_ueto_network_relaying_e; @@ -9966,7 +9782,7 @@ typedef enumerated pro_se_ueto_network_ struct request_type_add_info_opts { enum options { include_ps_cell, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated request_type_add_info_e; @@ -9989,7 +9805,7 @@ struct ue_app_layer_meas_cfg_s { struct event_type_opts { enum options { direct, change_of_serve_cell, stop_change_of_serve_cell, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated event_type_e; @@ -9997,7 +9813,7 @@ typedef enumerated event_type_e; struct pedestrian_ue_opts { enum options { authorized, not_authorized, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pedestrian_ue_e; @@ -10009,7 +9825,7 @@ struct pro_se_authorized_ext_ies_o { enum options { pro_se_ueto_network_relaying, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -10039,7 +9855,7 @@ struct pro_se_authorized_ext_ies_o { struct pro_se_direct_communication_opts { enum options { authorized, not_authorized, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pro_se_direct_communication_e; @@ -10047,7 +9863,7 @@ typedef enumerated pro_se_direct_communi struct pro_se_direct_discovery_opts { enum options { authorized, not_authorized, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated pro_se_direct_discovery_e; @@ -10055,7 +9871,7 @@ typedef enumerated pro_se_direct_discovery_e struct report_area_opts { enum options { ecgi, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated report_area_e; @@ -10066,7 +9882,7 @@ struct request_type_ext_ies_o { struct types_opts { enum options { request_type_add_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10101,7 +9917,7 @@ struct trace_activation_ext_ies_o { struct types_opts { enum options { mdt_cfg, ue_app_layer_meas_cfg, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10149,7 +9965,7 @@ struct trace_depth_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated trace_depth_e; @@ -10166,7 +9982,7 @@ using v2xservices_authorized_ext_ies_o = s1ap_protocol_ext_empty_o; struct vehicle_ue_opts { enum options { authorized, not_authorized, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated vehicle_ue_e; @@ -10174,7 +9990,7 @@ typedef enumerated vehicle_ue_e; struct aerial_uesubscription_info_opts { enum options { allowed, not_allowed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated aerial_uesubscription_info_e; @@ -10182,7 +9998,7 @@ typedef enumerated aerial_uesubscription_ struct management_based_mdt_allowed_opts { enum options { allowed, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated management_based_mdt_allowed_e; @@ -10306,7 +10122,7 @@ struct ue_sidelink_aggregate_maximum_bitrate_s { struct ueuser_plane_cio_tsupport_ind_opts { enum options { supported, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ueuser_plane_cio_tsupport_ind_e; @@ -10370,7 +10186,7 @@ struct ho_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10568,7 +10384,7 @@ struct ho_request_s { struct ce_mode_b_support_ind_opts { enum options { supported, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ce_mode_b_support_ind_e; @@ -10590,7 +10406,7 @@ struct ho_request_ack_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10708,7 +10524,7 @@ struct target_ng_ran_node_id_s { struct direct_forwarding_path_availability_opts { enum options { direct_path_available, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated direct_forwarding_path_availability_e; @@ -10716,7 +10532,7 @@ typedef enumerated direct_forwar struct ps_service_not_available_opts { enum options { ps_service_not_available, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ps_service_not_available_e; @@ -10724,7 +10540,7 @@ typedef enumerated ps_service_not_available struct srvccho_ind_opts { enum options { psand_cs, csonly, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated srvccho_ind_e; @@ -10733,7 +10549,7 @@ struct target_id_c { struct types_opts { enum options { targetenb_id, target_rnc_id, cgi, /*...*/ targetg_ng_ran_node_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10750,64 +10566,48 @@ struct target_id_c { // getters targetenb_id_s& targetenb_id() { - assert_choice_type("targeteNB-ID", type_.to_string(), "TargetID"); + assert_choice_type(types::targetenb_id, type_, "TargetID"); return c.get(); } target_rnc_id_s& target_rnc_id() { - assert_choice_type("targetRNC-ID", type_.to_string(), "TargetID"); + assert_choice_type(types::target_rnc_id, type_, "TargetID"); return c.get(); } cgi_s& cgi() { - assert_choice_type("cGI", type_.to_string(), "TargetID"); + assert_choice_type(types::cgi, type_, "TargetID"); return c.get(); } target_ng_ran_node_id_s& targetg_ng_ran_node_id() { - assert_choice_type("targetgNgRanNode-ID", type_.to_string(), "TargetID"); + assert_choice_type(types::targetg_ng_ran_node_id, type_, "TargetID"); return c.get(); } const targetenb_id_s& targetenb_id() const { - assert_choice_type("targeteNB-ID", type_.to_string(), "TargetID"); + assert_choice_type(types::targetenb_id, type_, "TargetID"); return c.get(); } const target_rnc_id_s& target_rnc_id() const { - assert_choice_type("targetRNC-ID", type_.to_string(), "TargetID"); + assert_choice_type(types::target_rnc_id, type_, "TargetID"); return c.get(); } const cgi_s& cgi() const { - assert_choice_type("cGI", type_.to_string(), "TargetID"); + assert_choice_type(types::cgi, type_, "TargetID"); return c.get(); } const target_ng_ran_node_id_s& targetg_ng_ran_node_id() const { - assert_choice_type("targetgNgRanNode-ID", type_.to_string(), "TargetID"); - return c.get(); - } - targetenb_id_s& set_targetenb_id() - { - set(types::targetenb_id); - return c.get(); - } - target_rnc_id_s& set_target_rnc_id() - { - set(types::target_rnc_id); - return c.get(); - } - cgi_s& set_cgi() - { - set(types::cgi); - return c.get(); - } - target_ng_ran_node_id_s& set_targetg_ng_ran_node_id() - { - set(types::targetg_ng_ran_node_id); + assert_choice_type(types::targetg_ng_ran_node_id, type_, "TargetID"); return c.get(); } + targetenb_id_s& set_targetenb_id(); + target_rnc_id_s& set_target_rnc_id(); + cgi_s& set_cgi(); + target_ng_ran_node_id_s& set_targetg_ng_ran_node_id(); private: types type_; @@ -10839,7 +10639,7 @@ struct ho_required_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10950,7 +10750,7 @@ struct mme_paging_target_c { struct types_opts { enum options { global_enb_id, tai, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -10967,34 +10767,26 @@ struct mme_paging_target_c { // getters global_enb_id_s& global_enb_id() { - assert_choice_type("global-ENB-ID", type_.to_string(), "MMEPagingTarget"); + assert_choice_type(types::global_enb_id, type_, "MMEPagingTarget"); return c.get(); } tai_s& tai() { - assert_choice_type("tAI", type_.to_string(), "MMEPagingTarget"); + assert_choice_type(types::tai, type_, "MMEPagingTarget"); return c.get(); } const global_enb_id_s& global_enb_id() const { - assert_choice_type("global-ENB-ID", type_.to_string(), "MMEPagingTarget"); + assert_choice_type(types::global_enb_id, type_, "MMEPagingTarget"); return c.get(); } const tai_s& tai() const { - assert_choice_type("tAI", type_.to_string(), "MMEPagingTarget"); - return c.get(); - } - global_enb_id_s& set_global_enb_id() - { - set(types::global_enb_id); - return c.get(); - } - tai_s& set_tai() - { - set(types::tai); + assert_choice_type(types::tai, type_, "MMEPagingTarget"); return c.get(); } + global_enb_id_s& set_global_enb_id(); + tai_s& set_tai(); private: types type_; @@ -11029,7 +10821,7 @@ struct recommended_enb_item_ies_o { struct types_opts { enum options { recommended_enb_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11103,7 +10895,7 @@ struct init_context_setup_fail_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11176,7 +10968,7 @@ struct init_context_setup_fail_s { struct add_cs_fallback_ind_opts { enum options { no_restrict, restrict, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated add_cs_fallback_ind_e; @@ -11184,7 +10976,7 @@ typedef enumerated add_cs_fallback_ind_e; struct cs_fallback_ind_opts { enum options { cs_fallback_required, /*...*/ cs_fallback_high_prio, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cs_fallback_ind_e; @@ -11229,7 +11021,7 @@ struct init_context_setup_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11438,7 +11230,7 @@ struct init_context_setup_resp_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11517,7 +11309,7 @@ struct init_context_setup_resp_s { struct coverage_level_opts { enum options { extendedcoverage, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated coverage_level_e; @@ -11525,7 +11317,7 @@ typedef enumerated coverage_level_e; struct edt_session_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated edt_session_e; @@ -11534,7 +11326,7 @@ struct gummei_type_opts { enum options { native, mapped, /*...*/ mapped_from5_g, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated gummei_type_e; @@ -11554,7 +11346,7 @@ struct rrc_establishment_cause_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated rrc_establishment_cause_e; @@ -11562,7 +11354,7 @@ typedef enumerated rrc_establishment_caus struct relay_node_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated relay_node_ind_e; @@ -11597,7 +11389,7 @@ struct init_ue_msg_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11781,7 +11573,7 @@ struct served_gummeis_item_ext_ies_o { struct types_opts { enum options { gummei_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -11842,7 +11634,7 @@ struct ue_associated_lc_s1_conn_item_res_o { enum options { ue_associated_lc_s1_conn_item, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -11889,7 +11681,7 @@ struct nb_io_t_paging_e_drx_cycle_opts { } value; typedef uint16_t number_type; - std::string to_string() const; + const char* to_string() const; uint16_t to_number() const; }; typedef enumerated nb_io_t_paging_e_drx_cycle_e; @@ -11902,7 +11694,7 @@ struct nb_io_t_paging_time_win_opts { enum options { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated nb_io_t_paging_time_win_e; @@ -11921,7 +11713,7 @@ struct overload_action_opts { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated overload_action_e; @@ -11946,9 +11738,9 @@ struct paging_e_drx_cycle_opts { } value; typedef float number_type; - std::string to_string() const; + const char* to_string() const; float to_number() const; - std::string to_number_string() const; + const char* to_number_string() const; }; typedef enumerated paging_e_drx_cycle_e; @@ -11960,7 +11752,7 @@ struct paging_time_win_opts { enum options { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, /*...*/ nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated paging_time_win_e; @@ -11969,7 +11761,7 @@ typedef enumerated paging_time_win_e; struct reset_all_opts { enum options { reset_all, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated reset_all_e; @@ -12013,7 +11805,7 @@ struct tai_item_ies_o { struct types_opts { enum options { tai_item, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12066,7 +11858,7 @@ struct ue_associated_lc_s1_conn_item_res_ack_o { enum options { ue_associated_lc_s1_conn_item, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -12101,7 +11893,7 @@ using ue_associated_lc_s1_conn_list_res_l = struct cn_domain_opts { enum options { ps, cs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cn_domain_e; @@ -12109,7 +11901,7 @@ typedef enumerated cn_domain_e; struct cdma2000_ho_required_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cdma2000_ho_required_ind_e; @@ -12117,7 +11909,7 @@ typedef enumerated cdma2000_ho_required_ind struct concurrent_warning_msg_ind_opts { enum options { true_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated concurrent_warning_msg_ind_e; @@ -12125,7 +11917,7 @@ typedef enumerated concurrent_warning_msg_ind_e struct gw_context_release_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated gw_context_release_ind_e; @@ -12133,7 +11925,7 @@ typedef enumerated gw_context_release_ind_e; struct ho_flag_opts { enum options { ho_prep, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ho_flag_e; @@ -12141,7 +11933,7 @@ typedef enumerated ho_flag_e; struct kill_all_warning_msgs_opts { enum options { true_value, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated kill_all_warning_msgs_e; @@ -12149,7 +11941,7 @@ typedef enumerated kill_all_warning_msgs_e; struct lte_m_ind_opts { enum options { lte_m, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated lte_m_ind_e; @@ -12157,7 +11949,7 @@ typedef enumerated lte_m_ind_e; struct mme_relay_support_ind_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated mme_relay_support_ind_e; @@ -12184,7 +11976,7 @@ struct overload_resp_c { struct types_opts { enum options { overload_action, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12238,7 +12030,7 @@ struct paging_prio_opts { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated paging_prio_e; @@ -12248,7 +12040,7 @@ struct reset_type_c { struct types_opts { enum options { s1_interface, part_of_s1_interface, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12265,34 +12057,26 @@ struct reset_type_c { // getters reset_all_e& s1_interface() { - assert_choice_type("s1-Interface", type_.to_string(), "ResetType"); + assert_choice_type(types::s1_interface, type_, "ResetType"); return c.get(); } ue_associated_lc_s1_conn_list_res_l& part_of_s1_interface() { - assert_choice_type("partOfS1-Interface", type_.to_string(), "ResetType"); + assert_choice_type(types::part_of_s1_interface, type_, "ResetType"); return c.get(); } const reset_all_e& s1_interface() const { - assert_choice_type("s1-Interface", type_.to_string(), "ResetType"); + assert_choice_type(types::s1_interface, type_, "ResetType"); return c.get(); } const ue_associated_lc_s1_conn_list_res_l& part_of_s1_interface() const { - assert_choice_type("partOfS1-Interface", type_.to_string(), "ResetType"); - return c.get(); - } - reset_all_e& set_s1_interface() - { - set(types::s1_interface); - return c.get(); - } - ue_associated_lc_s1_conn_list_res_l& set_part_of_s1_interface() - { - set(types::part_of_s1_interface); + assert_choice_type(types::part_of_s1_interface, type_, "ResetType"); return c.get(); } + reset_all_e& set_s1_interface(); + ue_associated_lc_s1_conn_list_res_l& set_part_of_s1_interface(); private: types type_; @@ -12305,7 +12089,7 @@ private: struct srvcc_operation_not_possible_opts { enum options { not_possible, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated srvcc_operation_not_possible_e; @@ -12325,7 +12109,7 @@ using tai_list_for_restart_l = dyn_array; struct ue_retention_info_opts { enum options { ues_retained, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ue_retention_info_e; @@ -12334,7 +12118,7 @@ struct ue_s1ap_ids_c { struct types_opts { enum options { ue_s1ap_id_pair, mme_ue_s1ap_id, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12351,34 +12135,26 @@ struct ue_s1ap_ids_c { // getters ue_s1ap_id_pair_s& ue_s1ap_id_pair() { - assert_choice_type("uE-S1AP-ID-pair", type_.to_string(), "UE-S1AP-IDs"); + assert_choice_type(types::ue_s1ap_id_pair, type_, "UE-S1AP-IDs"); return c.get(); } uint64_t& mme_ue_s1ap_id() { - assert_choice_type("mME-UE-S1AP-ID", type_.to_string(), "UE-S1AP-IDs"); + assert_choice_type(types::mme_ue_s1ap_id, type_, "UE-S1AP-IDs"); return c.get(); } const ue_s1ap_id_pair_s& ue_s1ap_id_pair() const { - assert_choice_type("uE-S1AP-ID-pair", type_.to_string(), "UE-S1AP-IDs"); + assert_choice_type(types::ue_s1ap_id_pair, type_, "UE-S1AP-IDs"); return c.get(); } const uint64_t& mme_ue_s1ap_id() const { - assert_choice_type("mME-UE-S1AP-ID", type_.to_string(), "UE-S1AP-IDs"); - return c.get(); - } - ue_s1ap_id_pair_s& set_ue_s1ap_id_pair() - { - set(types::ue_s1ap_id_pair); - return c.get(); - } - uint64_t& set_mme_ue_s1ap_id() - { - set(types::mme_ue_s1ap_id); + assert_choice_type(types::mme_ue_s1ap_id, type_, "UE-S1AP-IDs"); return c.get(); } + ue_s1ap_id_pair_s& set_ue_s1ap_id_pair(); + uint64_t& set_mme_ue_s1ap_id(); private: types type_; @@ -12397,7 +12173,7 @@ struct ue_paging_id_c { struct types_opts { enum options { s_tmsi, imsi, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12414,34 +12190,26 @@ struct ue_paging_id_c { // getters s_tmsi_s& s_tmsi() { - assert_choice_type("s-TMSI", type_.to_string(), "UEPagingID"); + assert_choice_type(types::s_tmsi, type_, "UEPagingID"); return c.get(); } bounded_octstring<3, 8, true>& imsi() { - assert_choice_type("iMSI", type_.to_string(), "UEPagingID"); + assert_choice_type(types::imsi, type_, "UEPagingID"); return c.get >(); } const s_tmsi_s& s_tmsi() const { - assert_choice_type("s-TMSI", type_.to_string(), "UEPagingID"); + assert_choice_type(types::s_tmsi, type_, "UEPagingID"); return c.get(); } const bounded_octstring<3, 8, true>& imsi() const { - assert_choice_type("iMSI", type_.to_string(), "UEPagingID"); - return c.get >(); - } - s_tmsi_s& set_s_tmsi() - { - set(types::s_tmsi); - return c.get(); - } - bounded_octstring<3, 8, true>& set_imsi() - { - set(types::imsi); + assert_choice_type(types::imsi, type_, "UEPagingID"); return c.get >(); } + s_tmsi_s& set_s_tmsi(); + bounded_octstring<3, 8, true>& set_imsi(); private: types type_; @@ -12454,7 +12222,7 @@ private: struct voice_support_match_ind_opts { enum options { supported, not_supported, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated voice_support_match_ind_e; @@ -12463,7 +12231,7 @@ struct warning_area_list_c { struct types_opts { enum options { cell_id_list, tracking_area_listfor_warning, emergency_area_id_list, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12480,49 +12248,37 @@ struct warning_area_list_c { // getters ecgi_list_l& cell_id_list() { - assert_choice_type("cellIDList", type_.to_string(), "WarningAreaList"); + assert_choice_type(types::cell_id_list, type_, "WarningAreaList"); return c.get(); } tai_listfor_warning_l& tracking_area_listfor_warning() { - assert_choice_type("trackingAreaListforWarning", type_.to_string(), "WarningAreaList"); + assert_choice_type(types::tracking_area_listfor_warning, type_, "WarningAreaList"); return c.get(); } emergency_area_id_list_l& emergency_area_id_list() { - assert_choice_type("emergencyAreaIDList", type_.to_string(), "WarningAreaList"); + assert_choice_type(types::emergency_area_id_list, type_, "WarningAreaList"); return c.get(); } const ecgi_list_l& cell_id_list() const { - assert_choice_type("cellIDList", type_.to_string(), "WarningAreaList"); + assert_choice_type(types::cell_id_list, type_, "WarningAreaList"); return c.get(); } const tai_listfor_warning_l& tracking_area_listfor_warning() const { - assert_choice_type("trackingAreaListforWarning", type_.to_string(), "WarningAreaList"); + assert_choice_type(types::tracking_area_listfor_warning, type_, "WarningAreaList"); return c.get(); } const emergency_area_id_list_l& emergency_area_id_list() const { - assert_choice_type("emergencyAreaIDList", type_.to_string(), "WarningAreaList"); - return c.get(); - } - ecgi_list_l& set_cell_id_list() - { - set(types::cell_id_list); - return c.get(); - } - tai_listfor_warning_l& set_tracking_area_listfor_warning() - { - set(types::tracking_area_listfor_warning); - return c.get(); - } - emergency_area_id_list_l& set_emergency_area_id_list() - { - set(types::emergency_area_id_list); + assert_choice_type(types::emergency_area_id_list, type_, "WarningAreaList"); return c.get(); } + ecgi_list_l& set_cell_id_list(); + tai_listfor_warning_l& set_tracking_area_listfor_warning(); + emergency_area_id_list_l& set_emergency_area_id_list(); private: types type_; @@ -12538,7 +12294,7 @@ struct kill_request_ies_o { struct types_opts { enum options { msg_id, serial_num, warning_area_list, kill_all_warning_msgs, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12584,7 +12340,7 @@ struct kill_resp_ies_o { struct types_opts { enum options { msg_id, serial_num, broadcast_cancelled_area_list, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12630,7 +12386,7 @@ struct location_report_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, eutran_cgi, tai, request_type, ps_cell_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12680,7 +12436,7 @@ struct location_report_ctrl_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, request_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12724,7 +12480,7 @@ struct location_report_fail_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12768,7 +12524,7 @@ struct mmecp_relocation_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12810,7 +12566,7 @@ struct mme_cfg_transfer_ies_o { struct types_opts { enum options { son_cfg_transfer_mct, en_dcson_cfg_transfer_mct, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12852,7 +12608,7 @@ struct mme_cfg_upd_ack_ies_o { struct types_opts { enum options { crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12884,7 +12640,7 @@ struct mme_cfg_upd_fail_ies_o { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -12929,7 +12685,7 @@ struct mme_cfg_upd_ies_o { enum options { mm_ename, served_gummeis, relative_mme_capacity, served_dcns, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -12976,7 +12732,7 @@ struct mme_direct_info_transfer_ies_o { struct types_opts { enum options { inter_sys_info_transfer_type_mdt, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13008,7 +12764,7 @@ struct mme_status_transfer_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, enb_status_transfer_transparent_container, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13052,7 +12808,7 @@ struct nas_delivery_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13094,7 +12850,7 @@ struct nas_non_delivery_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, nas_pdu, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13141,7 +12897,7 @@ struct overload_start_ies_o { enum options { overload_resp, gummei_list, traffic_load_reduction_ind, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -13186,7 +12942,7 @@ struct overload_stop_ies_o { struct types_opts { enum options { gummei_list, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13218,7 +12974,7 @@ struct pws_fail_ind_ies_o { struct types_opts { enum options { pw_sfailed_ecgi_list, global_enb_id, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13266,7 +13022,7 @@ struct pws_restart_ind_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13333,7 +13089,7 @@ struct paging_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13432,7 +13188,7 @@ struct path_switch_request_ack_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13524,7 +13280,7 @@ struct path_switch_request_fail_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13587,7 +13343,7 @@ struct path_switch_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13664,7 +13420,7 @@ struct s1ap_private_ies_empty_o { struct types_opts { enum options { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13685,7 +13441,7 @@ struct reroute_nas_request_ies_o { struct types_opts { enum options { enb_ue_s1ap_id, mme_ue_s1ap_id, s1_msg, mme_group_id, add_guti, ue_usage_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13736,7 +13492,7 @@ struct reset_ack_ies_o { enum options { ue_associated_lc_s1_conn_list_res_ack, crit_diagnostics, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -13779,7 +13535,7 @@ struct reset_ies_o { struct types_opts { enum options { cause, reset_type, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13821,7 +13577,7 @@ struct retrieve_ue_info_ies_o { struct types_opts { enum options { s_tmsi, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13853,7 +13609,7 @@ struct s1_setup_fail_ies_o { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13907,7 +13663,7 @@ struct s1_setup_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -13976,7 +13732,7 @@ struct s1_setup_resp_ies_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -14037,7 +13793,7 @@ struct secondary_rat_data_usage_report_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14087,7 +13843,7 @@ struct trace_fail_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, e_utran_trace_id, cause, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14133,7 +13889,7 @@ struct trace_start_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, trace_activation, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14185,7 +13941,7 @@ struct ue_cap_info_ind_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14235,7 +13991,7 @@ struct ue_context_mod_confirm_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, csg_membership_status, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14281,7 +14037,7 @@ struct ue_context_mod_fail_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14327,7 +14083,7 @@ struct ue_context_mod_ind_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, csg_membership_info, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14391,7 +14147,7 @@ struct ue_context_mod_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14473,7 +14229,7 @@ struct ue_context_mod_resp_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14518,7 +14274,7 @@ struct ue_context_release_cmd_ies_o { enum options { ue_s1ap_ids, cause, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -14571,7 +14327,7 @@ struct ue_context_release_complete_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14638,7 +14394,7 @@ struct ue_context_release_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14686,7 +14442,7 @@ struct ue_context_resume_fail_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, cause, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14738,7 +14494,7 @@ struct ue_context_resume_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14793,7 +14549,7 @@ struct ue_context_resume_resp_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14856,7 +14612,7 @@ struct ue_context_suspend_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14913,7 +14669,7 @@ struct ue_context_suspend_resp_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, crit_diagnostics, security_context, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -14966,7 +14722,7 @@ struct ue_info_transfer_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15018,7 +14774,7 @@ struct ue_radio_cap_match_request_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, ue_radio_cap, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15062,7 +14818,7 @@ struct ue_radio_cap_match_resp_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, voice_support_match_ind, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15119,7 +14875,7 @@ struct ul_nas_transport_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15182,7 +14938,7 @@ struct ul_non_ueassociated_lp_pa_transport_ies_o { enum options { routing_id, lp_pa_pdu, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -15236,7 +14992,7 @@ struct ul_s1cdma2000tunnelling_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15292,7 +15048,7 @@ struct ul_ueassociated_lp_pa_transport_ies_o { struct types_opts { enum options { mme_ue_s1ap_id, enb_ue_s1ap_id, routing_id, lp_pa_pdu, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15352,7 +15108,7 @@ struct write_replace_warning_request_ies_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -15420,7 +15176,7 @@ struct write_replace_warning_resp_ies_o { struct types_opts { enum options { msg_id, serial_num, broadcast_completed_area_list, crit_diagnostics, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17298,7 +17054,7 @@ struct s1ap_elem_procs_o { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17476,7 +17232,7 @@ struct s1ap_elem_procs_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -17563,7 +17319,7 @@ struct s1ap_elem_procs_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -17640,7 +17396,7 @@ struct last_visited_eutran_cell_info_ext_ies_o { enum options { time_ue_stayed_in_cell_enhanced_granularity, ho_cause, nulltype } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; @@ -17714,7 +17470,7 @@ struct last_visited_geran_cell_info_c { struct types_opts { enum options { undefined, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17730,7 +17486,7 @@ struct last_visited_cell_item_c { struct types_opts { enum options { e_utran_cell, utran_cell, geran_cell, /*...*/ ng_ran_cell, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17747,64 +17503,48 @@ struct last_visited_cell_item_c { // getters last_visited_eutran_cell_info_s& e_utran_cell() { - assert_choice_type("e-UTRAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::e_utran_cell, type_, "LastVisitedCell-Item"); return c.get(); } unbounded_octstring& utran_cell() { - assert_choice_type("uTRAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::utran_cell, type_, "LastVisitedCell-Item"); return c.get >(); } last_visited_geran_cell_info_c& geran_cell() { - assert_choice_type("gERAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::geran_cell, type_, "LastVisitedCell-Item"); return c.get(); } unbounded_octstring& ng_ran_cell() { - assert_choice_type("nG-RAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::ng_ran_cell, type_, "LastVisitedCell-Item"); return c.get >(); } const last_visited_eutran_cell_info_s& e_utran_cell() const { - assert_choice_type("e-UTRAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::e_utran_cell, type_, "LastVisitedCell-Item"); return c.get(); } const unbounded_octstring& utran_cell() const { - assert_choice_type("uTRAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::utran_cell, type_, "LastVisitedCell-Item"); return c.get >(); } const last_visited_geran_cell_info_c& geran_cell() const { - assert_choice_type("gERAN-Cell", type_.to_string(), "LastVisitedCell-Item"); + assert_choice_type(types::geran_cell, type_, "LastVisitedCell-Item"); return c.get(); } const unbounded_octstring& ng_ran_cell() const { - assert_choice_type("nG-RAN-Cell", type_.to_string(), "LastVisitedCell-Item"); - return c.get >(); - } - last_visited_eutran_cell_info_s& set_e_utran_cell() - { - set(types::e_utran_cell); - return c.get(); - } - unbounded_octstring& set_utran_cell() - { - set(types::utran_cell); - return c.get >(); - } - last_visited_geran_cell_info_c& set_geran_cell() - { - set(types::geran_cell); - return c.get(); - } - unbounded_octstring& set_ng_ran_cell() - { - set(types::ng_ran_cell); + assert_choice_type(types::ng_ran_cell, type_, "LastVisitedCell-Item"); return c.get >(); } + last_visited_eutran_cell_info_s& set_e_utran_cell(); + unbounded_octstring& set_utran_cell(); + last_visited_geran_cell_info_c& set_geran_cell(); + unbounded_octstring& set_ng_ran_cell(); private: types type_; @@ -17833,7 +17573,7 @@ struct multi_cell_load_report_resp_item_c { struct types_opts { enum options { eutran_resp, utran_resp, geran_resp, /*...*/ ehrpd, nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17850,64 +17590,48 @@ struct multi_cell_load_report_resp_item_c { // getters eutran_resp_s& eutran_resp() { - assert_choice_type("eUTRANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::eutran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get(); } unbounded_octstring& utran_resp() { - assert_choice_type("uTRANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::utran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get >(); } unbounded_octstring& geran_resp() { - assert_choice_type("gERANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::geran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get >(); } ehrpd_multi_sector_load_report_resp_item_s& ehrpd() { - assert_choice_type("eHRPD", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::ehrpd, type_, "MultiCellLoadReportingResponse-Item"); return c.get(); } const eutran_resp_s& eutran_resp() const { - assert_choice_type("eUTRANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::eutran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get(); } const unbounded_octstring& utran_resp() const { - assert_choice_type("uTRANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::utran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get >(); } const unbounded_octstring& geran_resp() const { - assert_choice_type("gERANResponse", type_.to_string(), "MultiCellLoadReportingResponse-Item"); + assert_choice_type(types::geran_resp, type_, "MultiCellLoadReportingResponse-Item"); return c.get >(); } const ehrpd_multi_sector_load_report_resp_item_s& ehrpd() const { - assert_choice_type("eHRPD", type_.to_string(), "MultiCellLoadReportingResponse-Item"); - return c.get(); - } - eutran_resp_s& set_eutran_resp() - { - set(types::eutran_resp); - return c.get(); - } - unbounded_octstring& set_utran_resp() - { - set(types::utran_resp); - return c.get >(); - } - unbounded_octstring& set_geran_resp() - { - set(types::geran_resp); - return c.get >(); - } - ehrpd_multi_sector_load_report_resp_item_s& set_ehrpd() - { - set(types::ehrpd); + assert_choice_type(types::ehrpd, type_, "MultiCellLoadReportingResponse-Item"); return c.get(); } + eutran_resp_s& set_eutran_resp(); + unbounded_octstring& set_utran_resp(); + unbounded_octstring& set_geran_resp(); + ehrpd_multi_sector_load_report_resp_item_s& set_ehrpd(); private: types type_; @@ -17969,7 +17693,7 @@ struct s1ap_pdu_c { struct types_opts { enum options { init_msg, successful_outcome, unsuccessful_outcome, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -17986,49 +17710,37 @@ struct s1ap_pdu_c { // getters init_msg_s& init_msg() { - assert_choice_type("initiatingMessage", type_.to_string(), "S1AP-PDU"); + assert_choice_type(types::init_msg, type_, "S1AP-PDU"); return c.get(); } successful_outcome_s& successful_outcome() { - assert_choice_type("successfulOutcome", type_.to_string(), "S1AP-PDU"); + assert_choice_type(types::successful_outcome, type_, "S1AP-PDU"); return c.get(); } unsuccessful_outcome_s& unsuccessful_outcome() { - assert_choice_type("unsuccessfulOutcome", type_.to_string(), "S1AP-PDU"); + assert_choice_type(types::unsuccessful_outcome, type_, "S1AP-PDU"); return c.get(); } const init_msg_s& init_msg() const { - assert_choice_type("initiatingMessage", type_.to_string(), "S1AP-PDU"); + assert_choice_type(types::init_msg, type_, "S1AP-PDU"); return c.get(); } const successful_outcome_s& successful_outcome() const { - assert_choice_type("successfulOutcome", type_.to_string(), "S1AP-PDU"); + assert_choice_type(types::successful_outcome, type_, "S1AP-PDU"); return c.get(); } const unsuccessful_outcome_s& unsuccessful_outcome() const { - assert_choice_type("unsuccessfulOutcome", type_.to_string(), "S1AP-PDU"); - return c.get(); - } - init_msg_s& set_init_msg() - { - set(types::init_msg); - return c.get(); - } - successful_outcome_s& set_successful_outcome() - { - set(types::successful_outcome); - return c.get(); - } - unsuccessful_outcome_s& set_unsuccessful_outcome() - { - set(types::unsuccessful_outcome); + assert_choice_type(types::unsuccessful_outcome, type_, "S1AP-PDU"); return c.get(); } + init_msg_s& set_init_msg(); + successful_outcome_s& set_successful_outcome(); + unsuccessful_outcome_s& set_unsuccessful_outcome(); private: types type_; @@ -18041,7 +17753,7 @@ private: struct cell_activation_cause_opts { enum options { application_container_syntax_error, inconsistent_report_cell_id, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_activation_cause_e; @@ -18049,7 +17761,7 @@ typedef enumerated cell_activation_cause_e; struct cell_load_report_cause_opts { enum options { application_container_syntax_error, inconsistent_report_cell_id, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_load_report_cause_e; @@ -18057,7 +17769,7 @@ typedef enumerated cell_load_report_cause_e; struct cell_state_ind_cause_opts { enum options { application_container_syntax_error, inconsistent_report_cell_id, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated cell_state_ind_cause_e; @@ -18065,7 +17777,7 @@ typedef enumerated cell_state_ind_cause_e; struct fail_event_report_cause_opts { enum options { application_container_syntax_error, inconsistent_report_cell_id, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated fail_event_report_cause_e; @@ -18073,7 +17785,7 @@ typedef enumerated fail_event_report_cause_e struct ho_report_cause_opts { enum options { application_container_syntax_error, inconsistent_report_cell_id, unspecified, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated ho_report_cause_e; @@ -18092,7 +17804,7 @@ struct so_ntransfer_cause_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18109,109 +17821,81 @@ struct so_ntransfer_cause_c { // getters cell_load_report_cause_e& cell_load_report() { - assert_choice_type("cellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::cell_load_report, type_, "SONtransferCause"); return c.get(); } cell_load_report_cause_e& multi_cell_load_report() { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferCause"); return c.get(); } cell_load_report_cause_e& event_triggered_cell_load_report() { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferCause"); return c.get(); } ho_report_cause_e& horeport() { - assert_choice_type("hOReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::horeport, type_, "SONtransferCause"); return c.get(); } cell_activation_cause_e& eutran_cell_activation() { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferCause"); return c.get(); } cell_state_ind_cause_e& energy_savings_ind() { - assert_choice_type("energySavingsIndication", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::energy_savings_ind, type_, "SONtransferCause"); return c.get(); } fail_event_report_cause_e& fail_event_report() { - assert_choice_type("failureEventReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::fail_event_report, type_, "SONtransferCause"); return c.get(); } const cell_load_report_cause_e& cell_load_report() const { - assert_choice_type("cellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::cell_load_report, type_, "SONtransferCause"); return c.get(); } const cell_load_report_cause_e& multi_cell_load_report() const { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferCause"); return c.get(); } const cell_load_report_cause_e& event_triggered_cell_load_report() const { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferCause"); return c.get(); } const ho_report_cause_e& horeport() const { - assert_choice_type("hOReporting", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::horeport, type_, "SONtransferCause"); return c.get(); } const cell_activation_cause_e& eutran_cell_activation() const { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferCause"); return c.get(); } const cell_state_ind_cause_e& energy_savings_ind() const { - assert_choice_type("energySavingsIndication", type_.to_string(), "SONtransferCause"); + assert_choice_type(types::energy_savings_ind, type_, "SONtransferCause"); return c.get(); } const fail_event_report_cause_e& fail_event_report() const { - assert_choice_type("failureEventReporting", type_.to_string(), "SONtransferCause"); - return c.get(); - } - cell_load_report_cause_e& set_cell_load_report() - { - set(types::cell_load_report); - return c.get(); - } - cell_load_report_cause_e& set_multi_cell_load_report() - { - set(types::multi_cell_load_report); - return c.get(); - } - cell_load_report_cause_e& set_event_triggered_cell_load_report() - { - set(types::event_triggered_cell_load_report); - return c.get(); - } - ho_report_cause_e& set_horeport() - { - set(types::horeport); - return c.get(); - } - cell_activation_cause_e& set_eutran_cell_activation() - { - set(types::eutran_cell_activation); - return c.get(); - } - cell_state_ind_cause_e& set_energy_savings_ind() - { - set(types::energy_savings_ind); - return c.get(); - } - fail_event_report_cause_e& set_fail_event_report() - { - set(types::fail_event_report); + assert_choice_type(types::fail_event_report, type_, "SONtransferCause"); return c.get(); } + cell_load_report_cause_e& set_cell_load_report(); + cell_load_report_cause_e& set_multi_cell_load_report(); + cell_load_report_cause_e& set_event_triggered_cell_load_report(); + ho_report_cause_e& set_horeport(); + cell_activation_cause_e& set_eutran_cell_activation(); + cell_state_ind_cause_e& set_energy_savings_ind(); + fail_event_report_cause_e& set_fail_event_report(); private: types type_; @@ -18235,7 +17919,7 @@ struct so_ntransfer_request_container_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18252,95 +17936,71 @@ struct so_ntransfer_request_container_c { // getters multi_cell_load_report_request_s& multi_cell_load_report() { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferRequestContainer"); return c.get(); } event_triggered_cell_load_report_request_s& event_triggered_cell_load_report() { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferRequestContainer"); return c.get(); } ho_report_s& horeport() { - assert_choice_type("hOReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::horeport, type_, "SONtransferRequestContainer"); return c.get(); } cell_activation_request_s& eutran_cell_activation() { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferRequestContainer"); return c.get(); } cell_state_ind_s& energy_savings_ind() { - assert_choice_type("energySavingsIndication", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::energy_savings_ind, type_, "SONtransferRequestContainer"); return c.get(); } fail_event_report_c& fail_event_report() { - assert_choice_type("failureEventReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::fail_event_report, type_, "SONtransferRequestContainer"); return c.get(); } const multi_cell_load_report_request_s& multi_cell_load_report() const { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferRequestContainer"); return c.get(); } const event_triggered_cell_load_report_request_s& event_triggered_cell_load_report() const { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferRequestContainer"); return c.get(); } const ho_report_s& horeport() const { - assert_choice_type("hOReporting", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::horeport, type_, "SONtransferRequestContainer"); return c.get(); } const cell_activation_request_s& eutran_cell_activation() const { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferRequestContainer"); return c.get(); } const cell_state_ind_s& energy_savings_ind() const { - assert_choice_type("energySavingsIndication", type_.to_string(), "SONtransferRequestContainer"); + assert_choice_type(types::energy_savings_ind, type_, "SONtransferRequestContainer"); return c.get(); } const fail_event_report_c& fail_event_report() const { - assert_choice_type("failureEventReporting", type_.to_string(), "SONtransferRequestContainer"); - return c.get(); - } - void set_cell_load_report() { set(types::cell_load_report); } - multi_cell_load_report_request_s& set_multi_cell_load_report() - { - set(types::multi_cell_load_report); - return c.get(); - } - event_triggered_cell_load_report_request_s& set_event_triggered_cell_load_report() - { - set(types::event_triggered_cell_load_report); - return c.get(); - } - ho_report_s& set_horeport() - { - set(types::horeport); - return c.get(); - } - cell_activation_request_s& set_eutran_cell_activation() - { - set(types::eutran_cell_activation); - return c.get(); - } - cell_state_ind_s& set_energy_savings_ind() - { - set(types::energy_savings_ind); - return c.get(); - } - fail_event_report_c& set_fail_event_report() - { - set(types::fail_event_report); + assert_choice_type(types::fail_event_report, type_, "SONtransferRequestContainer"); return c.get(); } + void set_cell_load_report(); + multi_cell_load_report_request_s& set_multi_cell_load_report(); + event_triggered_cell_load_report_request_s& set_event_triggered_cell_load_report(); + ho_report_s& set_horeport(); + cell_activation_request_s& set_eutran_cell_activation(); + cell_state_ind_s& set_energy_savings_ind(); + fail_event_report_c& set_fail_event_report(); private: types type_; @@ -18370,7 +18030,7 @@ struct so_ntransfer_resp_container_c { nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated types; @@ -18387,67 +18047,51 @@ struct so_ntransfer_resp_container_c { // getters cell_load_report_resp_c& cell_load_report() { - assert_choice_type("cellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } multi_cell_load_report_resp_l& multi_cell_load_report() { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } event_triggered_cell_load_report_resp_s& event_triggered_cell_load_report() { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } cell_activation_resp_s& eutran_cell_activation() { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferResponseContainer"); return c.get(); } const cell_load_report_resp_c& cell_load_report() const { - assert_choice_type("cellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } const multi_cell_load_report_resp_l& multi_cell_load_report() const { - assert_choice_type("multiCellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::multi_cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } const event_triggered_cell_load_report_resp_s& event_triggered_cell_load_report() const { - assert_choice_type("eventTriggeredCellLoadReporting", type_.to_string(), "SONtransferResponseContainer"); + assert_choice_type(types::event_triggered_cell_load_report, type_, "SONtransferResponseContainer"); return c.get(); } const cell_activation_resp_s& eutran_cell_activation() const { - assert_choice_type("eutranCellActivation", type_.to_string(), "SONtransferResponseContainer"); - return c.get(); - } - cell_load_report_resp_c& set_cell_load_report() - { - set(types::cell_load_report); - return c.get(); - } - multi_cell_load_report_resp_l& set_multi_cell_load_report() - { - set(types::multi_cell_load_report); - return c.get(); - } - event_triggered_cell_load_report_resp_s& set_event_triggered_cell_load_report() - { - set(types::event_triggered_cell_load_report); - return c.get(); - } - void set_horeport() { set(types::horeport); } - cell_activation_resp_s& set_eutran_cell_activation() - { - set(types::eutran_cell_activation); + assert_choice_type(types::eutran_cell_activation, type_, "SONtransferResponseContainer"); return c.get(); } - void set_energy_savings_ind() { set(types::energy_savings_ind); } - void set_fail_event_report() { set(types::fail_event_report); } + cell_load_report_resp_c& set_cell_load_report(); + multi_cell_load_report_resp_l& set_multi_cell_load_report(); + event_triggered_cell_load_report_resp_s& set_event_triggered_cell_load_report(); + void set_horeport(); + cell_activation_resp_s& set_eutran_cell_activation(); + void set_energy_savings_ind(); + void set_fail_event_report(); private: types type_; @@ -18464,7 +18108,7 @@ private: struct im_svoice_ep_sfallbackfrom5_g_opts { enum options { true_value, /*...*/ nulltype } value; - std::string to_string() const; + const char* to_string() const; }; typedef enumerated im_svoice_ep_sfallbackfrom5_g_e; @@ -18483,7 +18127,7 @@ struct sourceenb_to_targetenb_transparent_container_ext_ies_o { } value; typedef uint8_t number_type; - std::string to_string() const; + const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; diff --git a/lib/include/srsran/common/network_utils.h b/lib/include/srsran/common/network_utils.h index 4bfb56b9b..eaff437cf 100644 --- a/lib/include/srsran/common/network_utils.h +++ b/lib/include/srsran/common/network_utils.h @@ -153,9 +153,10 @@ private: // used to unlock select struct ctrl_cmd_t { enum class cmd_id_t { EXIT, NEW_FD, RM_FD }; - cmd_id_t cmd = cmd_id_t::EXIT; - int new_fd = -1; - bool signal_rm_complete = false; + cmd_id_t cmd; + int new_fd; + bool signal_rm_complete; + ctrl_cmd_t() { bzero(this, sizeof(ctrl_cmd_t)); } }; std::map::iterator remove_socket_unprotected(int fd, fd_set* total_fd_set, int* max_fd); diff --git a/lib/include/srsran/common/srsran_assert.h b/lib/include/srsran/common/srsran_assert.h index b460adc97..9139f87c4 100644 --- a/lib/include/srsran/common/srsran_assert.h +++ b/lib/include/srsran/common/srsran_assert.h @@ -29,6 +29,7 @@ #define srsran_terminate(fmt, ...) \ std::fprintf(stderr, "%s:%d: " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ + srslog::flush(); \ std::abort() #ifdef ASSERTS_ENABLED @@ -65,13 +66,11 @@ #else // ASSERTS_ENABLED -#define srslte_assert(condition, fmt, ...) \ +#define srsran_assert(condition, fmt, ...) \ do { \ } while (0) -#define srsran_expect(condition, fmt, ...) \ - do { \ - } while (0) +#define srsran_expect(condition, fmt, ...) srsran_assert(condition, fmt, ##__VA_ARGS__) #endif diff --git a/lib/include/srsran/common/timers.h b/lib/include/srsran/common/timers.h index 5e59313bb..600478164 100644 --- a/lib/include/srsran/common/timers.h +++ b/lib/include/srsran/common/timers.h @@ -274,6 +274,9 @@ public: timer.run(); } + // useful for testing + static size_t get_wheel_size() { return WHEEL_SIZE; } + private: timer_impl& alloc_timer() { @@ -315,7 +318,8 @@ private: uint32_t timeout = cur_time + timer.duration; size_t new_wheel_pos = timeout & WHEEL_MASK; if (timer.is_running() and (timer.timeout & WHEEL_MASK) == new_wheel_pos) { - // If no change in timer wheel position + // If no change in timer wheel position. Just update absolute timeout + timer.timeout = timeout; return; } diff --git a/lib/include/srsran/interfaces/rlc_interface_types.h b/lib/include/srsran/interfaces/rlc_interface_types.h index e34f88eb6..a8f317f62 100644 --- a/lib/include/srsran/interfaces/rlc_interface_types.h +++ b/lib/include/srsran/interfaces/rlc_interface_types.h @@ -31,7 +31,7 @@ namespace srsran { enum class rlc_mode_t { tm, um, am, nulltype }; -inline std::string to_string(const rlc_mode_t& mode, bool long_txt = true) +inline const char* to_string(const rlc_mode_t& mode, bool long_txt = true) { constexpr static const char* long_options[] = {"Transparent Mode", "Unacknowledged Mode", "Acknowledged Mode"}; constexpr static const char* short_options[] = {"TM", "UM", "AM"}; diff --git a/lib/include/srsran/interfaces/rrc_nr_interface_types.h b/lib/include/srsran/interfaces/rrc_nr_interface_types.h index 86c7b4d4e..bb402aee4 100644 --- a/lib/include/srsran/interfaces/rrc_nr_interface_types.h +++ b/lib/include/srsran/interfaces/rrc_nr_interface_types.h @@ -42,13 +42,13 @@ struct phy_cfg_nr_t { srsran_ue_dl_nr_harq_ack_cfg_t harq_ack = {}; srsran_csi_hl_cfg_t csi = {}; srsran_carrier_nr_t carrier = {}; - + phy_cfg_nr_t() {} /** * @param carrier */ - srsran_dci_cfg_nr_t get_dci_cfg(const srsran_carrier_nr_t& carrier) const + srsran_dci_cfg_nr_t get_dci_cfg() const { srsran_dci_cfg_nr_t dci_cfg = {}; diff --git a/lib/include/srsran/interfaces/ue_nr_interfaces.h b/lib/include/srsran/interfaces/ue_nr_interfaces.h index 01309da19..b1f56c7e8 100644 --- a/lib/include/srsran/interfaces/ue_nr_interfaces.h +++ b/lib/include/srsran/interfaces/ue_nr_interfaces.h @@ -54,12 +54,12 @@ public: } tb_action_dl_t; typedef struct { - uint16_t rnti; - uint32_t tti; - uint8_t pid; // HARQ process ID - uint8_t rv; // Redundancy Version - uint8_t ndi; // Raw new data indicator extracted from DCI - uint32_t tbs; // Transport block size in Bytes + uint16_t rnti; + uint32_t tti; + uint8_t pid; // HARQ process ID + uint8_t rv; // Redundancy Version + uint8_t ndi; // Raw new data indicator extracted from DCI + uint32_t tbs; // Transport block size in Bytes } mac_nr_grant_dl_t; typedef struct { @@ -176,7 +176,7 @@ public: struct phy_args_nr_t { uint32_t nof_carriers = 1; - uint32_t nof_prb = 52; + uint32_t max_nof_prb = 106; uint32_t nof_phy_threads = 3; uint32_t worker_cpu_mask = 0; srsran::phy_log_args_t log = {}; @@ -188,11 +188,16 @@ struct phy_args_nr_t { phy_args_nr_t() { dl.nof_rx_antennas = 1; - dl.nof_max_prb = 100; + dl.nof_max_prb = 106; + dl.pdsch.max_prb = 106; + dl.pdsch.max_layers = 1; dl.pdsch.measure_evm = true; dl.pdsch.measure_time = true; dl.pdsch.sch.disable_simd = false; - ul.nof_max_prb = 100; + dl.pdsch.sch.max_nof_iter = 10; + ul.nof_max_prb = 106; + ul.pusch.max_prb = 106; + ul.pusch.max_layers = 1; ul.pusch.measure_time = true; ul.pusch.sch.disable_simd = false; diff --git a/lib/include/srsran/interfaces/ue_phy_interfaces.h b/lib/include/srsran/interfaces/ue_phy_interfaces.h index 49f05556d..29f4bd58a 100644 --- a/lib/include/srsran/interfaces/ue_phy_interfaces.h +++ b/lib/include/srsran/interfaces/ue_phy_interfaces.h @@ -62,7 +62,7 @@ struct phy_args_t { uint32_t nof_lte_carriers = 1; uint32_t nof_nr_carriers = 0; - uint32_t nr_nof_prb = 50; + uint32_t nr_max_nof_prb = 106; double nr_freq_hz = 2630e6; uint32_t nof_rx_ant = 1; std::string equalizer_mode = "mmse"; diff --git a/lib/include/srsran/phy/common/phy_common_nr.h b/lib/include/srsran/phy/common/phy_common_nr.h index 00f2bd897..4edea6e3f 100644 --- a/lib/include/srsran/phy/common/phy_common_nr.h +++ b/lib/include/srsran/phy/common/phy_common_nr.h @@ -290,7 +290,7 @@ typedef struct SRSRAN_API { uint32_t absolute_frequency_ssb; uint32_t absolute_frequency_point_a; srsran_subcarrier_spacing_t scs; - uint32_t nof_prb; + uint32_t nof_prb; ///< @brief See TS 38.101-1 Table 5.3.2-1 for more details uint32_t start; uint32_t max_mimo_layers; ///< @brief DL: Indicates the maximum number of MIMO layers to be used for PDSCH in all BWPs ///< of this serving cell. (see TS 38.212 [17], clause 5.4.2.1). UL: Indicates the maximum @@ -475,6 +475,8 @@ SRSRAN_API bool srsran_tdd_nr_is_dl(const srsran_tdd_config_nr_t* cfg, uint32_t */ SRSRAN_API bool srsran_tdd_nr_is_ul(const srsran_tdd_config_nr_t* cfg, uint32_t numerology, uint32_t slot_idx); +SRSRAN_API int srsran_carrier_to_cell(const srsran_carrier_nr_t* carrier, srsran_cell_t* cell); + #ifdef __cplusplus } #endif diff --git a/lib/include/srsran/phy/phch/dci_nr.h b/lib/include/srsran/phy/phch/dci_nr.h index 095571049..5053993c5 100644 --- a/lib/include/srsran/phy/phch/dci_nr.h +++ b/lib/include/srsran/phy/phch/dci_nr.h @@ -54,7 +54,7 @@ typedef struct SRSRAN_API { /// Common Formats 0_1 and 1_1 uint32_t carrier_indicator_size; ///< Defined in TS 38.213 clause 10.1 srsran_harq_ack_codebook_t harq_ack_codebok; ///< PDSCH HARQ-ACK codebook mode - uint32_t nof_rb_groups; ///< Defined in TS 38.214 clause 6.1.2.2.1 + uint32_t nof_rb_groups; ///< For allocation type 0, defined in TS 38.214 clause 6.1.2.2.1 /// Format 0_1 specific configuration (for PUSCH only) uint32_t nof_ul_bwp; ///< Number of UL BWPs excluding the initial UL BWP, mentioned in the TS as N_BWP_RRC @@ -65,7 +65,7 @@ typedef struct SRSRAN_API { uint32_t report_trigger_size; ///< determined by reportTriggerSize bool enable_transform_precoding; ///< Set to true if PUSCH transform precoding is enabled bool dynamic_dual_harq_ack_codebook; ///< Set to true if HARQ-ACK codebook is set to dynamic with 2 sub-codebooks - bool pusch_tx_config_codebook; ///< Set to true if PUSCH txConfig is set to codebook + bool pusch_tx_config_non_codebook; ///< Set to true if PUSCH txConfig is set to non-codebook bool pusch_dmrs_type2; ///< Set to true if PUSCH DMRS are type 2 bool pusch_dmrs_double; ///< Set to true if PUSCH DMRS are 2 symbol long bool pusch_ptrs; ///< Set to true if PT-RS are enabled for PUSCH transmission @@ -73,22 +73,22 @@ typedef struct SRSRAN_API { srsran_resource_alloc_t pusch_alloc_type; ///< PUSCH resource allocation type /// Format 1_1 specific configuration (for PDSCH only) - uint32_t nof_dl_bwp; ///< Number of DL BWPs excluding the initial UL BWP, mentioned in the TS as N_BWP_RRC - srsran_resource_alloc_t pdsch_alloc_type; ///< PDSCH resource allocation type, set to 0 for default - uint32_t nof_dl_time_res; ///< Number of dedicated PDSCH time domain resource assigment - uint32_t nof_aperiodic_zp; ///< Number of aperiodic ZP CSI-RS resource sets configured - bool pdsch_inter_prb_to_prb; ///< Set to true if interleaved VRB to PRB mapping is enabled - bool pdsch_rm_pattern1; ///< Set to true if rateMatchPatternGroup1 is configured - bool pdsch_rm_pattern2; ///< Set to true if rateMatchPatternGroup2 is configured - bool pdsch_2cw; ///< Set to true if maxNrofCodeWordsScheduledByDCI is set to 2 in any BWP - uint32_t pdsch_nof_cbg; ///< determined by maxCodeBlockGroupsPerTransportBlock for PDSCH - bool multiple_scell; ///< Set to true if configured with multiple serving cell - bool nof_dl_to_ul_ack; ///< Number of entries in the dl-DataToUL-ACK - bool pdsch_dmrs_type2; ///< Set to true if PDSCH DMRS are type 2 - bool pdsch_dmrs_double; ///< Set to true if PDSCH DMRS are 2 symbol long - bool pdsch_tci; ///< Set to true if tci-PresentInDCI is enabled - bool pdsch_cbg_flush; ///< Set to true if codeBlockGroupFlushIndicator is true - bool pdsch_dynamic_bundling; ///< Set to true if prb-BundlingType is set to dynamicBundling + uint32_t nof_dl_bwp; ///< Number of DL BWPs excluding the initial UL BWP, mentioned in the TS as N_BWP_RRC + uint32_t nof_dl_time_res; ///< Number of dedicated PDSCH time domain resource assigment + uint32_t nof_aperiodic_zp; ///< Number of aperiodic ZP CSI-RS resource sets configured + uint32_t pdsch_nof_cbg; ///< determined by maxCodeBlockGroupsPerTransportBlock for PDSCH + uint32_t nof_dl_to_ul_ack; ///< Number of entries in the dl-DataToUL-ACK + bool pdsch_inter_prb_to_prb; ///< Set to true if interleaved VRB to PRB mapping is enabled + bool pdsch_rm_pattern1; ///< Set to true if rateMatchPatternGroup1 is configured + bool pdsch_rm_pattern2; ///< Set to true if rateMatchPatternGroup2 is configured + bool pdsch_2cw; ///< Set to true if maxNrofCodeWordsScheduledByDCI is set to 2 in any BWP + bool multiple_scell; ///< Set to true if configured with multiple serving cell + bool pdsch_dmrs_type2; ///< Set to true if PDSCH DMRS are type 2 + bool pdsch_dmrs_double; ///< Set to true if PDSCH DMRS are 2 symbol long + bool pdsch_tci; ///< Set to true if tci-PresentInDCI is enabled + bool pdsch_cbg_flush; ///< Set to true if codeBlockGroupFlushIndicator is true + bool pdsch_dynamic_bundling; ///< Set to true if prb-BundlingType is set to dynamicBundling + srsran_resource_alloc_t pdsch_alloc_type; ///< PDSCH resource allocation type, set to 0 for default } srsran_dci_cfg_nr_t; @@ -121,20 +121,12 @@ typedef struct SRSRAN_API { * @brief Describes the NR DCI search context */ typedef struct SRSRAN_API { - srsran_dci_location_t location; ///< DCI location - srsran_search_space_type_t ss_type; ///< Search space type - uint32_t coreset_id; ///< CORESET identifier - srsran_rnti_type_t rnti_type; ///< RNTI type - srsran_dci_format_nr_t format; ///< DCI format - uint16_t rnti; ///< UE temporal RNTI - uint32_t coreset0_bw; ///< CORESET0 DL bandwidth, set to 0 if not present - uint32_t bwp_dl_initial_bw; ///< Initial DL/UL BWP bandwidth - uint32_t bwp_dl_active_bw; ///< Active DL/UL BWP bandwidth in PRB - uint32_t bwp_ul_initial_bw; ///< Initial UL BWP bandwidth - uint32_t bwp_ul_active_bw; ///< Active UL BWP bandwidth in PRB - bool monitor_common_0_0; ///< Set to true if Format 0_0 is monitored in common SS - bool enable_sul; ///< Set to true if supplementary uplink is configured - bool enable_hopping; ///< Set to true if frequency hopping is enabled + srsran_dci_location_t location; ///< DCI location + srsran_search_space_type_t ss_type; ///< Search space type + uint32_t coreset_id; ///< CORESET identifier + srsran_rnti_type_t rnti_type; ///< RNTI type + srsran_dci_format_nr_t format; ///< DCI format + uint16_t rnti; ///< UE temporal RNTI } srsran_dci_ctx_t; /** @@ -176,6 +168,24 @@ typedef struct SRSRAN_API { // SI-RNTI specific fields uint32_t sii; ///< System information indicator + // Second TB (Optional) + uint32_t mcs2; ///< Modulation and coding scheme for the second transport block + uint32_t ndi2; ///< New data indicator for the second transport block + uint32_t rv2; ///< Redundancy version for the second transport block + + // Optional fields + uint32_t cc_id; ///< Carrier indicator + uint32_t bwp_id; ///< BWP indicator + uint32_t rm_pattern1; ///< Rate matching pattern 1 indicator + uint32_t rm_pattern2; ///< Rate matching pattern 2 indicator + uint32_t zp_csi_rs_id; ///< ZP-CSI-RS trigger + uint32_t ports; ///< Antenna ports + uint32_t tci; ///< Transmission configuration indication + uint32_t srs_request; ///< SRS request + uint32_t cbg_info; ///< CBG transmission information (CBGTI) + uint32_t cbg_flush; ///< CBG flushing out information (CBGFI) + uint32_t dmrs_id; ///< DMRS sequence initialization + } srsran_dci_dl_nr_t; /** @@ -195,20 +205,30 @@ typedef struct SRSRAN_API { uint32_t reserved; ///< Reserved bits // C-RNTI or CS-RNTI or MCS-C-RNTI - uint32_t ndi; ///< New data indicator - uint32_t pid; ///< HARQ process number - uint32_t tpc; ///< TPC command for scheduled PUCCH - uint32_t pucch_resource; ///< PUCCH resource indicator - uint32_t harq_feedback; ///< PDSCH-to-HARQ_feedback timing indicator + uint32_t ndi; ///< New data indicator + uint32_t pid; ///< HARQ process number + uint32_t tpc; ///< TPC command for scheduled PUCCH // Frequency hopping uint32_t frequency_offset; ///< frequency offset // Random Access Response Grant - uint32_t csi_request; - - // Other fields - uint32_t sul; ///< Supplementary Uplink flag + uint32_t csi_request; ///< CSI request + + // Optional fields + uint32_t sul; ///< Supplementary Uplink flag + uint32_t cc_id; ///< Carrier indicator + uint32_t bwp_id; ///< BWP indicator + uint32_t dai1; ///< First DAI + uint32_t dai2; ///< Second DAI + uint32_t srs_id; ///< SRS resource indicator + uint32_t ports; ///< Antenna ports + uint32_t srs_request; ///< SRS request + uint32_t cbg_info; ///< CBG transmission information (CBGTI) + uint32_t ptrs_id; ///< PTRS-DMRS association + uint32_t beta_id; ///< beta_offset indicator + uint32_t dmrs_id; ///< DMRS sequence initialization + uint32_t ulsch; ///< UL-SCH indicator } srsran_dci_ul_nr_t; /** @@ -278,21 +298,34 @@ SRSRAN_API int srsran_dci_nr_ul_pack(const srsran_dci_nr_t* q, const srsran_dci_ SRSRAN_API int srsran_dci_nr_ul_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_ul_nr_t* dci); /** - * @brief Stringifies an DL NR DCI structure + * @brief Stringifies an NR DCI conxtext + * @param ctx Provides NR DCI context + * @param[out] str Destination string + * @param str_len Destination string length + * @return The number of written characters + */ +SRSRAN_API int srsran_dci_ctx_to_str(const srsran_dci_ctx_t* ctx, char* str, uint32_t str_len); + +/** + * @brief Stringifies a DL NR DCI structure + * @param q NR DCI object with precomputed DCI parameters * @param dci DL NR SCI structure to stringify * @param[out] str Destination string * @param str_len Destination string length * @return The number of written characters */ -SRSRAN_API int srsran_dci_dl_nr_to_str(const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len); +SRSRAN_API int +srsran_dci_dl_nr_to_str(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len); /** * @brief Stringifies an UL NR DCI structure + * @param q NR DCI object with precomputed DCI parameters * @param dci UL NR SCI structure to stringify * @param[out] str Destination string * @param str_len Destination string length * @return The number of written characters */ -SRSRAN_API int srsran_dci_ul_nr_to_str(const srsran_dci_ul_nr_t* dci, char* str, uint32_t str_len); +SRSRAN_API int +srsran_dci_ul_nr_to_str(const srsran_dci_nr_t* q, const srsran_dci_ul_nr_t* dci, char* str, uint32_t str_len); #endif // SRSRAN_DCI_NR_H diff --git a/lib/include/srsran/phy/phch/pdsch_nr.h b/lib/include/srsran/phy/phch/pdsch_nr.h index e4053e2ad..7e443a4ba 100644 --- a/lib/include/srsran/phy/phch/pdsch_nr.h +++ b/lib/include/srsran/phy/phch/pdsch_nr.h @@ -46,6 +46,8 @@ typedef struct SRSRAN_API { srsran_sch_nr_args_t sch; bool measure_evm; bool measure_time; + uint32_t max_prb; + uint32_t max_layers; } srsran_pdsch_nr_args_t; /** diff --git a/lib/include/srsran/phy/phch/pusch_nr.h b/lib/include/srsran/phy/phch/pusch_nr.h index b230d4025..1cda3fb23 100644 --- a/lib/include/srsran/phy/phch/pusch_nr.h +++ b/lib/include/srsran/phy/phch/pusch_nr.h @@ -40,6 +40,8 @@ typedef struct SRSRAN_API { srsran_uci_nr_args_t uci; bool measure_evm; bool measure_time; + uint32_t max_layers; + uint32_t max_prb; } srsran_pusch_nr_args_t; /** diff --git a/lib/include/srsran/srslog/context.h b/lib/include/srsran/srslog/context.h index e7e23b81b..d9ed6aa2e 100644 --- a/lib/include/srsran/srslog/context.h +++ b/lib/include/srsran/srslog/context.h @@ -44,13 +44,13 @@ struct metrics_container { template void write(Arg&& arg) { - constexpr std::size_t index = detail::get_type_index_in_tuple(); + constexpr std::size_t index = detail::get_type_index_in_tuple(); std::get(metrics).value = std::forward(arg); } /// Returns the value of metric T. template - auto read() const -> const decltype(T::value)& + auto read() const -> const decltype(T::value) & { constexpr std::size_t index = detail::get_type_index_in_tuple(); return std::get(metrics).value; @@ -78,7 +78,7 @@ struct metrics_container { auto at(std::size_t i) -> typename T::value_type& { constexpr std::size_t index = detail::get_type_index_in_tuple(); - auto& elem = std::get(metrics); + auto& elem = std::get(metrics); assert(i < elem.size() && "Invalid index"); return elem[i]; } @@ -89,7 +89,7 @@ struct metrics_container { auto at(std::size_t i) const -> const typename T::value_type& { constexpr std::size_t index = detail::get_type_index_in_tuple(); - const auto& elem = std::get(metrics); + const auto& elem = std::get(metrics); assert(i < elem.size() && "Invalid index"); return elem[i]; } @@ -133,18 +133,13 @@ struct metric { static const char* units() { return Units::units(); } /// Returns the formatting kind of the metric. - static metric_kind kind() - { - return metric_kind_selector>::kind; - } + static metric_kind kind() { return metric_kind_selector >::kind; } }; /// Template specialization that tags metrics with arithmetic values (integers /// and floating point) as numeric. template -struct metric_kind_selector< - metric, - typename std::enable_if::value>::type> { +struct metric_kind_selector, typename std::enable_if::value>::type> { static const metric_kind kind = metric_kind::numeric; }; @@ -177,8 +172,7 @@ namespace detail { /// eg: using my_metric_t = srslog::build_metric_set_type; /// NOTE: Adding duplicated types into the list is not allowed. template -using build_metric_set_type = - metric_set::type...>; +using build_metric_set_type = metric_set::type...>; } // namespace detail @@ -200,18 +194,17 @@ using build_context_type = context::type...>; /// c) units: MB/s /// d) name: Throughput /// DECLARE_METRIC("Throughput", my_metric_t, float, "MB/s"); -#define DECLARE_METRIC(_name_rep, _type, _value_type, _units) \ - namespace metric_info { \ - struct _type##__units { \ - static const char* units() { return _units; } \ - }; \ - struct _type##__name_rep { \ - static const char* name() { return _name_rep; } \ - }; \ - } \ - using _type = srslog::metric::type, \ - metric_info::_type##__name_rep, \ - metric_info::_type##__units> +#define DECLARE_METRIC(_name_rep, _type, _value_type, _units) \ + namespace metric_info { \ + struct _type##__units { \ + static const char* units() { return _units; } \ + }; \ + struct _type##__name_rep { \ + static const char* name() { return _name_rep; } \ + }; \ + } \ + using _type = srslog:: \ + metric::type, metric_info::_type##__name_rep, metric_info::_type##__units> /// This macro defines a new metric set type using the following attributes: /// a) name: encoded as a string. @@ -225,14 +218,13 @@ using build_context_type = context::type...>; /// b) name: my_set /// b) type list: metric1_t, metric2_t, set2_t /// DECLARE_METRIC_SET("my_set", my_set_t, metric1_t, metric2_t, set2_t); -#define DECLARE_METRIC_SET(_name_rep, _type, ...) \ - namespace metric_set_info { \ - struct _type##__name_rep { \ - static const char* name() { return _name_rep; } \ - }; \ - } \ - using _type = srslog::detail:: \ - build_metric_set_type +#define DECLARE_METRIC_SET(_name_rep, _type, ...) \ + namespace metric_set_info { \ + struct _type##__name_rep { \ + static const char* name() { return _name_rep; } \ + }; \ + } \ + using _type = srslog::detail::build_metric_set_type /// This macro defines a list of metric sets of the same type: /// a) name: encoded as a string. @@ -245,14 +237,13 @@ using build_context_type = context::type...>; /// b) name: my_list /// b) underlying type: std::vector /// DECLARE_METRIC_LIST("my_list", my_list_t, std::vector); -#define DECLARE_METRIC_LIST(_name_rep, _type, _list_type) \ - namespace list_info { \ - struct _type##__name_rep { \ - static const char* name() { return _name_rep; } \ - }; \ - } \ - using _type = srslog::metric_list::type> +#define DECLARE_METRIC_LIST(_name_rep, _type, _list_type) \ + namespace list_info { \ + struct _type##__name_rep { \ + static const char* name() { return _name_rep; } \ + }; \ + } \ + using _type = srslog::metric_list::type> } // namespace srslog diff --git a/lib/include/srsran/srslog/detail/log_entry.h b/lib/include/srsran/srslog/detail/log_entry.h index 58577bfcd..f3a90a1d0 100644 --- a/lib/include/srsran/srslog/detail/log_entry.h +++ b/lib/include/srsran/srslog/detail/log_entry.h @@ -34,19 +34,18 @@ namespace detail { /// This command flushes all the messages pending in the backend. struct flush_backend_cmd { shared_variable& completion_flag; - std::vector sinks; + std::vector sinks; }; /// This structure packs all the required data required to create a log entry in /// the backend. -//:TODO: replace this object using a real command pattern when we have a raw +//: TODO: replace this object using a real command pattern when we have a raw // memory queue for passing entries. struct log_entry { - sink* s; - std::function - format_func; - log_entry_metadata metadata; - std::unique_ptr flush_cmd; + sink* s; + std::function format_func; + log_entry_metadata metadata; + std::unique_ptr flush_cmd; }; } // namespace detail diff --git a/lib/include/srsran/srslog/detail/log_entry_metadata.h b/lib/include/srsran/srslog/detail/log_entry_metadata.h index 01c27c615..ad830a7bc 100644 --- a/lib/include/srsran/srslog/detail/log_entry_metadata.h +++ b/lib/include/srsran/srslog/detail/log_entry_metadata.h @@ -33,7 +33,7 @@ using small_str_buffer = fmt::basic_memory_buffer; namespace detail { /// This structure gives the user a way to log generic information as a context. -//:TODO: legacy struct, will get replaced by the new context framework. +//: TODO: legacy struct, will get replaced by the new context framework. struct log_context { /// Generic context value. uint32_t value; diff --git a/lib/include/srsran/srslog/detail/support/any.h b/lib/include/srsran/srslog/detail/support/any.h index 8e3587e06..db8ae9504 100644 --- a/lib/include/srsran/srslog/detail/support/any.h +++ b/lib/include/srsran/srslog/detail/support/any.h @@ -39,7 +39,7 @@ struct in_place_type_t { template struct is_in_place_type_t : std::false_type {}; template -struct is_in_place_type_t> : std::true_type {}; +struct is_in_place_type_t > : std::true_type {}; /// This is a very minimalist and non compliant implementation of std::any which /// is included in C++17. @@ -48,7 +48,7 @@ struct is_in_place_type_t> : std::true_type {}; class any { public: - //:TODO: Clang 3.8 does not compile when default constructing a const object + //: TODO: Clang 3.8 does not compile when default constructing a const object // due to DR253. Declare the defaulted constructor out of the class. any(); @@ -63,15 +63,12 @@ public: /// b) is move constructible. /// c) is not an specialization of in_place_type_t. /// Otherwise the rest of special member functions are considered. - template < - typename T, - typename std::enable_if< - !std::is_same::type, any>{} && - std::is_move_constructible::type>{} && - !is_in_place_type_t::type>{}, - int>::type = 0> - explicit any(T&& t) : - storage(new storage_impl::type>(std::forward(t))) + template ::type, any>{} && + std::is_move_constructible::type>{} && + !is_in_place_type_t::type>{}, + int>::type = 0> + explicit any(T&& t) : storage(new storage_impl::type>(std::forward(t))) {} /// Constructs an object of type decayed T directly into the internal storage @@ -82,12 +79,9 @@ public: /// Otherwise the rest of special member functions are considered. template ::type, Args...>{}, - int>::type = 0> + typename std::enable_if::type, Args...>{}, int>::type = 0> explicit any(in_place_type_t, Args&&... args) : - storage(new storage_impl::type>( - std::forward(args)...)) + storage(new storage_impl::type>(std::forward(args)...)) {} any(any&& other) : storage(std::move(other.storage)) {} @@ -149,7 +143,7 @@ private: std::unique_ptr storage; }; -//:TODO: declared out of line, see TODO above. +//: TODO: declared out of line, see TODO above. inline any::any() = default; /// Constructs an any object containing an object of type T, passing the @@ -169,8 +163,7 @@ inline T* any_cast(any* operand) if (!operand || !operand->storage) return nullptr; - using U = - typename std::remove_cv::type>::type; + using U = typename std::remove_cv::type>::type; if (operand->storage->type() != &any::type_tag::tag) return nullptr; @@ -186,8 +179,7 @@ inline const T* any_cast(const any* operand) if (!operand || !operand->storage) return nullptr; - using U = - typename std::remove_cv::type>::type; + using U = typename std::remove_cv::type>::type; if (operand->storage->type() != &any::type_tag::tag) return nullptr; diff --git a/lib/include/srsran/srslog/detail/support/memory_buffer.h b/lib/include/srsran/srslog/detail/support/memory_buffer.h index 1bd225188..6d28e098b 100644 --- a/lib/include/srsran/srslog/detail/support/memory_buffer.h +++ b/lib/include/srsran/srslog/detail/support/memory_buffer.h @@ -33,16 +33,12 @@ namespace detail { class memory_buffer { const char* const buffer; - const size_t length; + const size_t length; public: - memory_buffer(const char* buffer, size_t length) : - buffer(buffer), length(length) - {} + memory_buffer(const char* buffer, size_t length) : buffer(buffer), length(length) {} - explicit memory_buffer(const std::string& s) : - buffer(s.data()), length(s.size()) - {} + explicit memory_buffer(const std::string& s) : buffer(s.data()), length(s.size()) {} /// Returns a pointer to the start of the memory block. const char* data() const { return buffer; } diff --git a/lib/include/srsran/srslog/detail/support/thread_utils.h b/lib/include/srsran/srslog/detail/support/thread_utils.h index a57764099..03d133a90 100644 --- a/lib/include/srsran/srslog/detail/support/thread_utils.h +++ b/lib/include/srsran/srslog/detail/support/thread_utils.h @@ -28,7 +28,7 @@ namespace srslog { namespace detail { -//:TODO: these are temp helpers that will be replaced by std utils. +//: TODO: these are temp helpers that will be replaced by std utils. /// Abstraction of a pthread mutex. class mutex @@ -50,7 +50,7 @@ public: bool try_lock() { return (::pthread_mutex_trylock(&m) == 0); } /// Accessor to the raw mutex structure. - pthread_mutex_t* raw() { return &m; } + pthread_mutex_t* raw() { return &m; } const pthread_mutex_t* raw() const { return &m; } private: @@ -75,7 +75,7 @@ public: template class shared_variable { - T value; + T value; mutable mutex m; public: @@ -127,10 +127,7 @@ public: /// Blocks the calling thread on this condition variable up to the specified /// timeout. Returns true on timeout expiration, otherwise false. - bool wait(timespec ts) - { - return (::pthread_cond_timedwait(&cond_var, m.raw(), &ts) == ETIMEDOUT); - } + bool wait(timespec ts) { return (::pthread_cond_timedwait(&cond_var, m.raw(), &ts) == ETIMEDOUT); } /// Builds an absolute time timespec structure adding the specified time out /// in ms. @@ -150,7 +147,7 @@ public: } private: - mutable mutex m; + mutable mutex m; pthread_cond_t cond_var; }; @@ -161,11 +158,7 @@ class cond_var_scoped_lock condition_variable& cond_var; public: - explicit cond_var_scoped_lock(condition_variable& cond_var) : - cond_var(cond_var) - { - cond_var.lock(); - } + explicit cond_var_scoped_lock(condition_variable& cond_var) : cond_var(cond_var) { cond_var.lock(); } cond_var_scoped_lock(const cond_var_scoped_lock&) = delete; cond_var_scoped_lock& operator=(const cond_var_scoped_lock&) = delete; diff --git a/lib/include/srsran/srslog/detail/support/tmp_utils.h b/lib/include/srsran/srslog/detail/support/tmp_utils.h index b14d2e44b..24a9f2fd4 100644 --- a/lib/include/srsran/srslog/detail/support/tmp_utils.h +++ b/lib/include/srsran/srslog/detail/support/tmp_utils.h @@ -37,8 +37,7 @@ template struct index_sequence {}; template -struct index_sequence_helper - : public index_sequence_helper {}; +struct index_sequence_helper : public index_sequence_helper {}; template struct index_sequence_helper<0U, Next...> { @@ -56,20 +55,19 @@ template struct tuple_index; template -struct tuple_index> { +struct tuple_index > { static constexpr std::size_t value = 0; }; template -struct tuple_index> { - static constexpr std::size_t value = - 1 + tuple_index>::value; +struct tuple_index > { + static constexpr std::size_t value = 1 + tuple_index >::value; }; template constexpr std::size_t get_type_index_in_tuple() { - return tuple_index>::value; + return tuple_index >::value; } } // namespace detail diff --git a/lib/include/srsran/srslog/detail/support/work_queue.h b/lib/include/srsran/srslog/detail/support/work_queue.h index 8e3f5a977..1da2cefcb 100644 --- a/lib/include/srsran/srslog/detail/support/work_queue.h +++ b/lib/include/srsran/srslog/detail/support/work_queue.h @@ -30,7 +30,7 @@ namespace srslog { namespace detail { -//:TODO: this is a temp work queue. +//: TODO: this is a temp work queue. /// Thread safe generic data type work queue. template diff --git a/lib/include/srsran/srslog/sink.h b/lib/include/srsran/srslog/sink.h index 29c5abc88..342d8d001 100644 --- a/lib/include/srsran/srslog/sink.h +++ b/lib/include/srsran/srslog/sink.h @@ -42,7 +42,7 @@ public: virtual ~sink() = default; /// Returns the formatter used by this sink. - log_formatter& get_formatter() { return *formatter; } + log_formatter& get_formatter() { return *formatter; } const log_formatter& get_formatter() const { return *formatter; } /// Writes the provided memory buffer into the sink. diff --git a/lib/include/srsran/srslog/srslog.h b/lib/include/srsran/srslog/srslog.h index d068e811e..323a7c019 100644 --- a/lib/include/srsran/srslog/srslog.h +++ b/lib/include/srsran/srslog/srslog.h @@ -48,8 +48,7 @@ log_channel& fetch_log_channel(const std::string& id); /// Returns an instance of a log_channel with the specified id that writes to /// the specified sink. /// NOTE: Any '#' characters in the id will get removed. -log_channel& -fetch_log_channel(const std::string& id, sink& s, log_channel_config config); +log_channel& fetch_log_channel(const std::string& id, sink& s, log_channel_config config); /// Creates a new log channel instance with the specified id string and sink, /// then registers it in the log channel repository so that it can be later @@ -89,16 +88,13 @@ inline T* find_logger(const std::string& id) /// specified id string. All logger channels will write into the default sink. /// The context value of the logger can be printed on each log entry by setting /// to true the should_print_context argument. -basic_logger& fetch_basic_logger(const std::string& id, - bool should_print_context = true); +basic_logger& fetch_basic_logger(const std::string& id, bool should_print_context = true); /// Returns an instance of a basic logger (see basic_logger type) with the /// specified id string. All logger channels will write into the specified sink. /// The context value of the logger can be printed on each log entry by setting /// to true the should_print_context argument. -basic_logger& fetch_basic_logger(const std::string& id, - sink& s, - bool should_print_context = true); +basic_logger& fetch_basic_logger(const std::string& id, sink& s, bool should_print_context = true); /// Returns a logger instance with the specified id string, type and channel /// references. @@ -107,11 +103,11 @@ template inline T& fetch_logger(const std::string& id, Args&&... args) { static_assert(detail::is_logger::value, "T should be a logger type"); - if (auto *logger = find_logger(id)) { + if (auto* logger = find_logger(id)) { return *logger; } - auto logger = detail::make_any(id, std::forward(args)...); - detail::any* p = detail::fetch_logger(id, std::move(logger)); + auto logger = detail::make_any(id, std::forward(args)...); + detail::any* p = detail::fetch_logger(id, std::move(logger)); return *detail::any_cast(p); } @@ -124,9 +120,7 @@ inline T& fetch_logger(const std::string& id, Args&&... args) /// the specified sink. Returns a pointer to the newly created logger, otherwise /// when a logger is already registered with the same id it returns nullptr. /// NOTE: Deprecated, use fetch_basic_logger instead. -basic_logger* create_basic_logger(const std::string& id, - sink& s, - bool should_print_context = true); +basic_logger* create_basic_logger(const std::string& id, sink& s, bool should_print_context = true); /// Creates a new logger instance with the specified id string, type and channel /// references, registering it into the logger repository so that it can be @@ -139,8 +133,8 @@ template inline T* create_logger(const std::string& id, Args&&... args) { static_assert(detail::is_logger::value, "T should be a logger type"); - auto logger = detail::make_any(id, std::forward(args)...); - detail::any* p = detail::fetch_logger(id, std::move(logger)); + auto logger = detail::make_any(id, std::forward(args)...); + detail::any* p = detail::fetch_logger(id, std::move(logger)); return detail::any_cast(p); } @@ -181,26 +175,23 @@ sink* find_sink(const std::string& id); /// Returns an instance of a sink that writes to the stdout stream. You may use /// different ids if you need to create multiple stdout sinks with different /// formatters. -sink& fetch_stdout_sink( - const std::string& id = "stdout", - std::unique_ptr f = get_default_log_formatter()); +sink& fetch_stdout_sink(const std::string& id = "stdout", + std::unique_ptr f = get_default_log_formatter()); /// Returns an instance of a sink that writes to the stderr stream. You may use /// different ids if you need to create multiple stderr sinks with different /// formatters. -sink& fetch_stderr_sink( - const std::string& id = "stderr", - std::unique_ptr f = get_default_log_formatter()); +sink& fetch_stderr_sink(const std::string& id = "stderr", + std::unique_ptr f = get_default_log_formatter()); /// Returns an instance of a sink that writes into a file in the specified path. /// Specifying a max_size value different to zero will make the sink create a /// new file each time the current file exceeds this value. The units of /// max_size are bytes. /// NOTE: Any '#' characters in the path will get removed. -sink& fetch_file_sink( - const std::string& path, - size_t max_size = 0, - std::unique_ptr f = get_default_log_formatter()); +sink& fetch_file_sink(const std::string& path, + size_t max_size = 0, + std::unique_ptr f = get_default_log_formatter()); /// Installs a custom user defined sink in the framework getting associated to /// the specified id. Returns true on success, otherwise false. diff --git a/lib/include/srsran/srslog/srslog_c.h b/lib/include/srsran/srslog/srslog_c.h index 99a99f37b..7e9985e47 100644 --- a/lib/include/srsran/srslog/srslog_c.h +++ b/lib/include/srsran/srslog/srslog_c.h @@ -35,9 +35,9 @@ extern "C" { /** * Common types. */ -typedef int srslog_bool; -typedef struct srslog_opaque_sink srslog_sink; -typedef struct srslog_opaque_log_channel srslog_log_channel; +typedef int srslog_bool; +typedef struct srslog_opaque_sink srslog_sink; +typedef struct srslog_opaque_log_channel srslog_log_channel; typedef struct srslog_opaque_basic_logger srslog_logger; /** @@ -75,8 +75,7 @@ srslog_log_channel* srslog_find_log_channel(const char* id); /** * Controls whether the specified channel accepts incoming log entries. */ -void srslog_set_log_channel_enabled(srslog_log_channel* channel, - srslog_bool enabled); +void srslog_set_log_channel_enabled(srslog_log_channel* channel, srslog_bool enabled); /** * Returns 1 if the specified channel is accepting incoming log entries, diff --git a/lib/src/asn1/asn1_utils.cc b/lib/src/asn1/asn1_utils.cc index 586bf6e86..85427f2a1 100644 --- a/lib/src/asn1/asn1_utils.cc +++ b/lib/src/asn1/asn1_utils.cc @@ -41,21 +41,11 @@ void invalid_enum_number(int value, const char* name) void assert_choice_type(uint32_t val, uint32_t choice_id) { - if (val != choice_id) { + if (srsran_unlikely(val != choice_id)) { log_invalid_access_choice_id(val, choice_id); } } -void assert_choice_type(const std::string& access_type, const std::string& current_type, const std::string& choice_type) -{ - if (access_type != current_type) { - log_error("Invalid field access for choice type \"%s\" (\"%s\"!=\"%s\")", - choice_type.c_str(), - access_type.c_str(), - current_type.c_str()); - } -} - /************************ error handling ************************/ diff --git a/lib/src/asn1/ngap.cc b/lib/src/asn1/ngap.cc index f197a0afd..fe55a2580 100644 --- a/lib/src/asn1/ngap.cc +++ b/lib/src/asn1/ngap.cc @@ -30,14 +30,14 @@ using namespace asn1::ngap_nr; ******************************************************************************/ // Criticality ::= ENUMERATED -std::string crit_opts::to_string() const +const char* crit_opts::to_string() const { static const char* options[] = {"reject", "ignore", "notify"}; return convert_enum_idx(options, 3, value, "crit_e"); } // Presence ::= ENUMERATED -std::string presence_opts::to_string() const +const char* presence_opts::to_string() const { static const char* options[] = {"optional", "conditional", "mandatory"}; return convert_enum_idx(options, 3, value, "presence_e"); @@ -124,7 +124,7 @@ SRSASN_CODE ngap_protocol_ies_empty_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ngap_protocol_ies_empty_o::value_c::types_opts::to_string() const +const char* ngap_protocol_ies_empty_o::value_c::types_opts::to_string() const { static const char* options[] = {}; return convert_enum_idx(options, 0, value, "ngap_protocol_ies_empty_o::value_c::types"); @@ -252,7 +252,7 @@ SRSASN_CODE ngap_protocol_ext_empty_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ngap_protocol_ext_empty_o::ext_c::types_opts::to_string() const +const char* ngap_protocol_ext_empty_o::ext_c::types_opts::to_string() const { static const char* options[] = {}; return convert_enum_idx(options, 0, value, "ngap_protocol_ext_empty_o::ext_c::types"); @@ -326,6 +326,16 @@ cp_transport_layer_info_c& cp_transport_layer_info_c::operator=(const cp_transpo return *this; } +bounded_bitstring<1, 160, true, true>& cp_transport_layer_info_c::set_endpoint_ip_address() +{ + set(types::endpoint_ip_address); + return c.get >(); +} +protocol_ie_single_container_s& cp_transport_layer_info_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void cp_transport_layer_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -377,7 +387,7 @@ SRSASN_CODE cp_transport_layer_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cp_transport_layer_info_c::types_opts::to_string() const +const char* cp_transport_layer_info_c::types_opts::to_string() const { static const char* options[] = {"endpointIPAddress", "choice-Extensions"}; return convert_enum_idx(options, 2, value, "cp_transport_layer_info_c::types"); @@ -478,7 +488,7 @@ void amf_tnlassoc_setup_item_s::to_json(json_writer& j) const } // TNLAssociationUsage ::= ENUMERATED -std::string tnlassoc_usage_opts::to_string() const +const char* tnlassoc_usage_opts::to_string() const { static const char* options[] = {"ue", "non-ue", "both"}; return convert_enum_idx(options, 3, value, "tnlassoc_usage_e"); @@ -943,76 +953,6 @@ presence_e amf_cfg_upd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -printable_string<1, 150, true, true>& amf_cfg_upd_ies_o::value_c::amf_name() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -served_guami_list_l& amf_cfg_upd_ies_o::value_c::served_guami_list() -{ - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& amf_cfg_upd_ies_o::value_c::relative_amf_capacity() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -plmn_support_list_l& amf_cfg_upd_ies_o::value_c::plmn_support_list() -{ - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); -} -amf_tnlassoc_to_add_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_add_list() -{ - assert_choice_type("AMF-TNLAssociationToAddList", type_.to_string(), "Value"); - return c.get(); -} -amf_tnlassoc_to_rem_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_rem_list() -{ - assert_choice_type("AMF-TNLAssociationToRemoveList", type_.to_string(), "Value"); - return c.get(); -} -amf_tnlassoc_to_upd_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_upd_list() -{ - assert_choice_type("AMF-TNLAssociationToUpdateList", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& amf_cfg_upd_ies_o::value_c::amf_name() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const served_guami_list_l& amf_cfg_upd_ies_o::value_c::served_guami_list() const -{ - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& amf_cfg_upd_ies_o::value_c::relative_amf_capacity() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const plmn_support_list_l& amf_cfg_upd_ies_o::value_c::plmn_support_list() const -{ - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); -} -const amf_tnlassoc_to_add_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_add_list() const -{ - assert_choice_type("AMF-TNLAssociationToAddList", type_.to_string(), "Value"); - return c.get(); -} -const amf_tnlassoc_to_rem_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_rem_list() const -{ - assert_choice_type("AMF-TNLAssociationToRemoveList", type_.to_string(), "Value"); - return c.get(); -} -const amf_tnlassoc_to_upd_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_upd_list() const -{ - assert_choice_type("AMF-TNLAssociationToUpdateList", type_.to_string(), "Value"); - return c.get(); -} void amf_cfg_upd_ies_o::value_c::destroy_() { switch (type_) { @@ -1136,6 +1076,76 @@ amf_cfg_upd_ies_o::value_c& amf_cfg_upd_ies_o::value_c::operator=(const amf_cfg_ return *this; } +printable_string<1, 150, true, true>& amf_cfg_upd_ies_o::value_c::amf_name() +{ + assert_choice_type(types::amf_name, type_, "Value"); + return c.get >(); +} +served_guami_list_l& amf_cfg_upd_ies_o::value_c::served_guami_list() +{ + assert_choice_type(types::served_guami_list, type_, "Value"); + return c.get(); +} +uint16_t& amf_cfg_upd_ies_o::value_c::relative_amf_capacity() +{ + assert_choice_type(types::relative_amf_capacity, type_, "Value"); + return c.get(); +} +plmn_support_list_l& amf_cfg_upd_ies_o::value_c::plmn_support_list() +{ + assert_choice_type(types::plmn_support_list, type_, "Value"); + return c.get(); +} +amf_tnlassoc_to_add_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_add_list() +{ + assert_choice_type(types::amf_tnlassoc_to_add_list, type_, "Value"); + return c.get(); +} +amf_tnlassoc_to_rem_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_rem_list() +{ + assert_choice_type(types::amf_tnlassoc_to_rem_list, type_, "Value"); + return c.get(); +} +amf_tnlassoc_to_upd_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_upd_list() +{ + assert_choice_type(types::amf_tnlassoc_to_upd_list, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& amf_cfg_upd_ies_o::value_c::amf_name() const +{ + assert_choice_type(types::amf_name, type_, "Value"); + return c.get >(); +} +const served_guami_list_l& amf_cfg_upd_ies_o::value_c::served_guami_list() const +{ + assert_choice_type(types::served_guami_list, type_, "Value"); + return c.get(); +} +const uint16_t& amf_cfg_upd_ies_o::value_c::relative_amf_capacity() const +{ + assert_choice_type(types::relative_amf_capacity, type_, "Value"); + return c.get(); +} +const plmn_support_list_l& amf_cfg_upd_ies_o::value_c::plmn_support_list() const +{ + assert_choice_type(types::plmn_support_list, type_, "Value"); + return c.get(); +} +const amf_tnlassoc_to_add_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_add_list() const +{ + assert_choice_type(types::amf_tnlassoc_to_add_list, type_, "Value"); + return c.get(); +} +const amf_tnlassoc_to_rem_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_rem_list() const +{ + assert_choice_type(types::amf_tnlassoc_to_rem_list, type_, "Value"); + return c.get(); +} +const amf_tnlassoc_to_upd_list_l& amf_cfg_upd_ies_o::value_c::amf_tnlassoc_to_upd_list() const +{ + assert_choice_type(types::amf_tnlassoc_to_upd_list, type_, "Value"); + return c.get(); +} void amf_cfg_upd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -1249,7 +1259,7 @@ SRSASN_CODE amf_cfg_upd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string amf_cfg_upd_ies_o::value_c::types_opts::to_string() const +const char* amf_cfg_upd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"PrintableString", "ServedGUAMIList", @@ -1468,7 +1478,7 @@ void amf_cfg_upd_s::to_json(json_writer& j) const } // CauseMisc ::= ENUMERATED -std::string cause_misc_opts::to_string() const +const char* cause_misc_opts::to_string() const { static const char* options[] = {"control-processing-overload", "not-enough-user-plane-processing-resources", @@ -1480,14 +1490,14 @@ std::string cause_misc_opts::to_string() const } // CauseNas ::= ENUMERATED -std::string cause_nas_opts::to_string() const +const char* cause_nas_opts::to_string() const { static const char* options[] = {"normal-release", "authentication-failure", "deregister", "unspecified"}; return convert_enum_idx(options, 4, value, "cause_nas_e"); } // CauseProtocol ::= ENUMERATED -std::string cause_protocol_opts::to_string() const +const char* cause_protocol_opts::to_string() const { static const char* options[] = {"transfer-syntax-error", "abstract-syntax-error-reject", @@ -1500,7 +1510,7 @@ std::string cause_protocol_opts::to_string() const } // CauseRadioNetwork ::= ENUMERATED -std::string cause_radio_network_opts::to_string() const +const char* cause_radio_network_opts::to_string() const { static const char* options[] = {"unspecified", "txnrelocoverall-expiry", @@ -1553,14 +1563,14 @@ std::string cause_radio_network_opts::to_string() const } // CauseTransport ::= ENUMERATED -std::string cause_transport_opts::to_string() const +const char* cause_transport_opts::to_string() const { static const char* options[] = {"transport-resource-unavailable", "unspecified"}; return convert_enum_idx(options, 2, value, "cause_transport_e"); } // TypeOfError ::= ENUMERATED -std::string type_of_error_opts::to_string() const +const char* type_of_error_opts::to_string() const { static const char* options[] = {"not-understood", "missing"}; return convert_enum_idx(options, 2, value, "type_of_error_e"); @@ -1662,6 +1672,36 @@ cause_c& cause_c::operator=(const cause_c& other) return *this; } +cause_radio_network_e& cause_c::set_radio_network() +{ + set(types::radio_network); + return c.get(); +} +cause_transport_e& cause_c::set_transport() +{ + set(types::transport); + return c.get(); +} +cause_nas_e& cause_c::set_nas() +{ + set(types::nas); + return c.get(); +} +cause_protocol_e& cause_c::set_protocol() +{ + set(types::protocol); + return c.get(); +} +cause_misc_e& cause_c::set_misc() +{ + set(types::misc); + return c.get(); +} +protocol_ie_single_container_s& cause_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void cause_c::to_json(json_writer& j) const { j.start_obj(); @@ -1749,7 +1789,7 @@ SRSASN_CODE cause_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cause_c::types_opts::to_string() const +const char* cause_c::types_opts::to_string() const { static const char* options[] = {"radioNetwork", "transport", "nas", "protocol", "misc", "choice-Extensions"}; return convert_enum_idx(options, 6, value, "cause_c::types"); @@ -1844,7 +1884,7 @@ void tnlassoc_item_s::to_json(json_writer& j) const } // TriggeringMessage ::= ENUMERATED -std::string trigger_msg_opts::to_string() const +const char* trigger_msg_opts::to_string() const { static const char* options[] = {"initiating-message", "successful-outcome", "unsuccessfull-outcome"}; return convert_enum_idx(options, 3, value, "trigger_msg_e"); @@ -1995,36 +2035,6 @@ presence_e amf_cfg_upd_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -amf_tnlassoc_setup_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_setup_list() -{ - assert_choice_type("AMF-TNLAssociationSetupList", type_.to_string(), "Value"); - return c.get(); -} -tnlassoc_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_failed_to_setup_list() -{ - assert_choice_type("TNLAssociationList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& amf_cfg_upd_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const amf_tnlassoc_setup_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_setup_list() const -{ - assert_choice_type("AMF-TNLAssociationSetupList", type_.to_string(), "Value"); - return c.get(); -} -const tnlassoc_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_failed_to_setup_list() const -{ - assert_choice_type("TNLAssociationList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& amf_cfg_upd_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void amf_cfg_upd_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -2104,6 +2114,36 @@ amf_cfg_upd_ack_ies_o::value_c& amf_cfg_upd_ack_ies_o::value_c::operator=(const return *this; } +amf_tnlassoc_setup_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_setup_list() +{ + assert_choice_type(types::amf_tnlassoc_setup_list, type_, "Value"); + return c.get(); +} +tnlassoc_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_failed_to_setup_list() +{ + assert_choice_type(types::amf_tnlassoc_failed_to_setup_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& amf_cfg_upd_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const amf_tnlassoc_setup_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_setup_list() const +{ + assert_choice_type(types::amf_tnlassoc_setup_list, type_, "Value"); + return c.get(); +} +const tnlassoc_list_l& amf_cfg_upd_ack_ies_o::value_c::amf_tnlassoc_failed_to_setup_list() const +{ + assert_choice_type(types::amf_tnlassoc_failed_to_setup_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& amf_cfg_upd_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void amf_cfg_upd_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -2170,7 +2210,7 @@ SRSASN_CODE amf_cfg_upd_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string amf_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const +const char* amf_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"AMF-TNLAssociationSetupList", "TNLAssociationList", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "amf_cfg_upd_ack_ies_o::value_c::types"); @@ -2280,7 +2320,7 @@ void amf_cfg_upd_ack_s::to_json(json_writer& j) const } // TimeToWait ::= ENUMERATED -std::string time_to_wait_opts::to_string() const +const char* time_to_wait_opts::to_string() const { static const char* options[] = {"v1s", "v2s", "v5s", "v10s", "v20s", "v60s"}; return convert_enum_idx(options, 6, value, "time_to_wait_e"); @@ -2355,36 +2395,6 @@ presence_e amf_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& amf_cfg_upd_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& amf_cfg_upd_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& amf_cfg_upd_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& amf_cfg_upd_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& amf_cfg_upd_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& amf_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void amf_cfg_upd_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -2436,8 +2446,8 @@ amf_cfg_upd_fail_ies_o::value_c::value_c(const amf_cfg_upd_fail_ies_o::value_c& log_invalid_choice_id(type_, "amf_cfg_upd_fail_ies_o::value_c"); } } -amf_cfg_upd_fail_ies_o::value_c& amf_cfg_upd_fail_ies_o::value_c:: - operator=(const amf_cfg_upd_fail_ies_o::value_c& other) +amf_cfg_upd_fail_ies_o::value_c& +amf_cfg_upd_fail_ies_o::value_c::operator=(const amf_cfg_upd_fail_ies_o::value_c& other) { if (this == &other) { return *this; @@ -2461,6 +2471,36 @@ amf_cfg_upd_fail_ies_o::value_c& amf_cfg_upd_fail_ies_o::value_c:: return *this; } +cause_c& amf_cfg_upd_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +time_to_wait_e& amf_cfg_upd_fail_ies_o::value_c::time_to_wait() +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& amf_cfg_upd_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cause_c& amf_cfg_upd_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const time_to_wait_e& amf_cfg_upd_fail_ies_o::value_c::time_to_wait() const +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& amf_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void amf_cfg_upd_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -2520,7 +2560,7 @@ SRSASN_CODE amf_cfg_upd_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string amf_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const +const char* amf_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "amf_cfg_upd_fail_ies_o::value_c::types"); @@ -2529,9 +2569,7 @@ std::string amf_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; amf_cfg_upd_fail_ies_container::amf_cfg_upd_fail_ies_container() : - cause(15, crit_e::ignore), - time_to_wait(107, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) + cause(15, crit_e::ignore), time_to_wait(107, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} SRSASN_CODE amf_cfg_upd_fail_ies_container::pack(bit_ref& bref) const { @@ -2698,6 +2736,16 @@ gnb_id_c& gnb_id_c::operator=(const gnb_id_c& other) return *this; } +bounded_bitstring<22, 32, false, true>& gnb_id_c::set_gnb_id() +{ + set(types::gnb_id); + return c.get >(); +} +protocol_ie_single_container_s& gnb_id_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void gnb_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -2749,7 +2797,7 @@ SRSASN_CODE gnb_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string gnb_id_c::types_opts::to_string() const +const char* gnb_id_c::types_opts::to_string() const { static const char* options[] = {"gNB-ID", "choice-Extensions"}; return convert_enum_idx(options, 2, value, "gnb_id_c::types"); @@ -2823,6 +2871,16 @@ n3_iwf_id_c& n3_iwf_id_c::operator=(const n3_iwf_id_c& other) return *this; } +fixed_bitstring<16, false, true>& n3_iwf_id_c::set_n3_iwf_id() +{ + set(types::n3_iwf_id); + return c.get >(); +} +protocol_ie_single_container_s& n3_iwf_id_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void n3_iwf_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -2874,7 +2932,7 @@ SRSASN_CODE n3_iwf_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string n3_iwf_id_c::types_opts::to_string() const +const char* n3_iwf_id_c::types_opts::to_string() const { static const char* options[] = {"n3IWF-ID", "choice-Extensions"}; return convert_enum_idx(options, 2, value, "n3_iwf_id_c::types"); @@ -2977,6 +3035,26 @@ ng_enb_id_c& ng_enb_id_c::operator=(const ng_enb_id_c& other) return *this; } +fixed_bitstring<20, false, true>& ng_enb_id_c::set_macro_ng_enb_id() +{ + set(types::macro_ng_enb_id); + return c.get >(); +} +fixed_bitstring<18, false, true>& ng_enb_id_c::set_short_macro_ng_enb_id() +{ + set(types::short_macro_ng_enb_id); + return c.get >(); +} +fixed_bitstring<21, false, true>& ng_enb_id_c::set_long_macro_ng_enb_id() +{ + set(types::long_macro_ng_enb_id); + return c.get >(); +} +protocol_ie_single_container_s& ng_enb_id_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void ng_enb_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -3046,7 +3124,7 @@ SRSASN_CODE ng_enb_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ng_enb_id_c::types_opts::to_string() const +const char* ng_enb_id_c::types_opts::to_string() const { static const char* options[] = {"macroNgENB-ID", "shortMacroNgENB-ID", "longMacroNgENB-ID", "choice-Extensions"}; return convert_enum_idx(options, 4, value, "ng_enb_id_c::types"); @@ -3264,6 +3342,26 @@ global_ran_node_id_c& global_ran_node_id_c::operator=(const global_ran_node_id_c return *this; } +global_gnb_id_s& global_ran_node_id_c::set_global_gnb_id() +{ + set(types::global_gnb_id); + return c.get(); +} +global_ng_enb_id_s& global_ran_node_id_c::set_global_ng_enb_id() +{ + set(types::global_ng_enb_id); + return c.get(); +} +global_n3_iwf_id_s& global_ran_node_id_c::set_global_n3_iwf_id() +{ + set(types::global_n3_iwf_id); + return c.get(); +} +protocol_ie_single_container_s& global_ran_node_id_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void global_ran_node_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -3336,7 +3434,7 @@ SRSASN_CODE global_ran_node_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string global_ran_node_id_c::types_opts::to_string() const +const char* global_ran_node_id_c::types_opts::to_string() const { static const char* options[] = {"globalGNB-ID", "globalNgENB-ID", "globalN3IWF-ID", "choice-Extensions"}; return convert_enum_idx(options, 4, value, "global_ran_node_id_c::types"); @@ -3469,6 +3567,21 @@ amf_paging_target_c& amf_paging_target_c::operator=(const amf_paging_target_c& o return *this; } +global_ran_node_id_c& amf_paging_target_c::set_global_ran_node_id() +{ + set(types::global_ran_node_id); + return c.get(); +} +tai_s& amf_paging_target_c::set_tai() +{ + set(types::tai); + return c.get(); +} +protocol_ie_single_container_s& amf_paging_target_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void amf_paging_target_c::to_json(json_writer& j) const { j.start_obj(); @@ -3531,14 +3644,14 @@ SRSASN_CODE amf_paging_target_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string amf_paging_target_c::types_opts::to_string() const +const char* amf_paging_target_c::types_opts::to_string() const { static const char* options[] = {"globalRANNodeID", "tAI", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "amf_paging_target_c::types"); } // TimerApproachForGUAMIRemoval ::= ENUMERATED -std::string timer_approach_for_guami_removal_opts::to_string() const +const char* timer_approach_for_guami_removal_opts::to_string() const { static const char* options[] = {"apply-timer"}; return convert_enum_idx(options, 1, value, "timer_approach_for_guami_removal_e"); @@ -3662,7 +3775,7 @@ SRSASN_CODE amf_status_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string amf_status_ind_ies_o::value_c::types_opts::to_string() const +const char* amf_status_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"UnavailableGUAMIList"}; return convert_enum_idx(options, 1, value, "amf_status_ind_ies_o::value_c::types"); @@ -3691,7 +3804,7 @@ void amf_status_ind_s::to_json(json_writer& j) const } // DataForwardingAccepted ::= ENUMERATED -std::string data_forwarding_accepted_opts::to_string() const +const char* data_forwarding_accepted_opts::to_string() const { static const char* options[] = {"data-forwarding-accepted"}; return convert_enum_idx(options, 1, value, "data_forwarding_accepted_e"); @@ -3851,6 +3964,16 @@ up_transport_layer_info_c& up_transport_layer_info_c::operator=(const up_transpo return *this; } +gtp_tunnel_s& up_transport_layer_info_c::set_gtp_tunnel() +{ + set(types::gtp_tunnel); + return c.get(); +} +protocol_ie_single_container_s& up_transport_layer_info_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void up_transport_layer_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -3903,7 +4026,7 @@ SRSASN_CODE up_transport_layer_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string up_transport_layer_info_c::types_opts::to_string() const +const char* up_transport_layer_info_c::types_opts::to_string() const { static const char* options[] = {"gTPTunnel", "choice-Extensions"}; return convert_enum_idx(options, 2, value, "up_transport_layer_info_c::types"); @@ -3966,14 +4089,14 @@ void add_dluptnl_info_for_ho_item_s::to_json(json_writer& j) const } // Pre-emptionCapability ::= ENUMERATED -std::string pre_emption_cap_opts::to_string() const +const char* pre_emption_cap_opts::to_string() const { static const char* options[] = {"shall-not-trigger-pre-emption", "may-trigger-pre-emption"}; return convert_enum_idx(options, 2, value, "pre_emption_cap_e"); } // Pre-emptionVulnerability ::= ENUMERATED -std::string pre_emption_vulnerability_opts::to_string() const +const char* pre_emption_vulnerability_opts::to_string() const { static const char* options[] = {"not-pre-emptable", "pre-emptable"}; return convert_enum_idx(options, 2, value, "pre_emption_vulnerability_e"); @@ -4216,6 +4339,21 @@ ngran_cgi_c& ngran_cgi_c::operator=(const ngran_cgi_c& other) return *this; } +nr_cgi_s& ngran_cgi_c::set_nr_cgi() +{ + set(types::nr_cgi); + return c.get(); +} +eutra_cgi_s& ngran_cgi_c::set_eutra_cgi() +{ + set(types::eutra_cgi); + return c.get(); +} +protocol_ie_single_container_s& ngran_cgi_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void ngran_cgi_c::to_json(json_writer& j) const { j.start_obj(); @@ -4278,7 +4416,7 @@ SRSASN_CODE ngran_cgi_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ngran_cgi_c::types_opts::to_string() const +const char* ngran_cgi_c::types_opts::to_string() const { static const char* options[] = {"nR-CGI", "eUTRA-CGI", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "ngran_cgi_c::types"); @@ -4562,7 +4700,7 @@ void recommended_cell_item_s::to_json(json_writer& j) const } // NextPagingAreaScope ::= ENUMERATED -std::string next_paging_area_scope_opts::to_string() const +const char* next_paging_area_scope_opts::to_string() const { static const char* options[] = {"same", "changed"}; return convert_enum_idx(options, 2, value, "next_paging_area_scope_e"); @@ -4799,7 +4937,7 @@ void associated_qos_flow_item_s::to_json(json_writer& j) const j.end_obj(); } -std::string associated_qos_flow_item_s::qos_flow_map_ind_opts::to_string() const +const char* associated_qos_flow_item_s::qos_flow_map_ind_opts::to_string() const { static const char* options[] = {"ul", "dl"}; return convert_enum_idx(options, 2, value, "associated_qos_flow_item_s::qos_flow_map_ind_e_"); @@ -5311,8 +5449,8 @@ broadcast_cancelled_area_list_c::broadcast_cancelled_area_list_c(const broadcast log_invalid_choice_id(type_, "broadcast_cancelled_area_list_c"); } } -broadcast_cancelled_area_list_c& broadcast_cancelled_area_list_c:: - operator=(const broadcast_cancelled_area_list_c& other) +broadcast_cancelled_area_list_c& +broadcast_cancelled_area_list_c::operator=(const broadcast_cancelled_area_list_c& other) { if (this == &other) { return *this; @@ -5348,6 +5486,42 @@ broadcast_cancelled_area_list_c& broadcast_cancelled_area_list_c:: return *this; } +cell_id_cancelled_eutra_l& broadcast_cancelled_area_list_c::set_cell_id_cancelled_eutra() +{ + set(types::cell_id_cancelled_eutra); + return c.get(); +} +tai_cancelled_eutra_l& broadcast_cancelled_area_list_c::set_tai_cancelled_eutra() +{ + set(types::tai_cancelled_eutra); + return c.get(); +} +emergency_area_id_cancelled_eutra_l& broadcast_cancelled_area_list_c::set_emergency_area_id_cancelled_eutra() +{ + set(types::emergency_area_id_cancelled_eutra); + return c.get(); +} +cell_id_cancelled_nr_l& broadcast_cancelled_area_list_c::set_cell_id_cancelled_nr() +{ + set(types::cell_id_cancelled_nr); + return c.get(); +} +tai_cancelled_nr_l& broadcast_cancelled_area_list_c::set_tai_cancelled_nr() +{ + set(types::tai_cancelled_nr); + return c.get(); +} +emergency_area_id_cancelled_nr_l& broadcast_cancelled_area_list_c::set_emergency_area_id_cancelled_nr() +{ + set(types::emergency_area_id_cancelled_nr); + return c.get(); +} +protocol_ie_single_container_s& +broadcast_cancelled_area_list_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void broadcast_cancelled_area_list_c::to_json(json_writer& j) const { j.start_obj(); @@ -5468,7 +5642,7 @@ SRSASN_CODE broadcast_cancelled_area_list_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string broadcast_cancelled_area_list_c::types_opts::to_string() const +const char* broadcast_cancelled_area_list_c::types_opts::to_string() const { static const char* options[] = {"cellIDCancelledEUTRA", "tAICancelledEUTRA", @@ -5968,8 +6142,8 @@ broadcast_completed_area_list_c::broadcast_completed_area_list_c(const broadcast log_invalid_choice_id(type_, "broadcast_completed_area_list_c"); } } -broadcast_completed_area_list_c& broadcast_completed_area_list_c:: - operator=(const broadcast_completed_area_list_c& other) +broadcast_completed_area_list_c& +broadcast_completed_area_list_c::operator=(const broadcast_completed_area_list_c& other) { if (this == &other) { return *this; @@ -6005,6 +6179,42 @@ broadcast_completed_area_list_c& broadcast_completed_area_list_c:: return *this; } +cell_id_broadcast_eutra_l& broadcast_completed_area_list_c::set_cell_id_broadcast_eutra() +{ + set(types::cell_id_broadcast_eutra); + return c.get(); +} +tai_broadcast_eutra_l& broadcast_completed_area_list_c::set_tai_broadcast_eutra() +{ + set(types::tai_broadcast_eutra); + return c.get(); +} +emergency_area_id_broadcast_eutra_l& broadcast_completed_area_list_c::set_emergency_area_id_broadcast_eutra() +{ + set(types::emergency_area_id_broadcast_eutra); + return c.get(); +} +cell_id_broadcast_nr_l& broadcast_completed_area_list_c::set_cell_id_broadcast_nr() +{ + set(types::cell_id_broadcast_nr); + return c.get(); +} +tai_broadcast_nr_l& broadcast_completed_area_list_c::set_tai_broadcast_nr() +{ + set(types::tai_broadcast_nr); + return c.get(); +} +emergency_area_id_broadcast_nr_l& broadcast_completed_area_list_c::set_emergency_area_id_broadcast_nr() +{ + set(types::emergency_area_id_broadcast_nr); + return c.get(); +} +protocol_ie_single_container_s& +broadcast_completed_area_list_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void broadcast_completed_area_list_c::to_json(json_writer& j) const { j.start_obj(); @@ -6125,7 +6335,7 @@ SRSASN_CODE broadcast_completed_area_list_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string broadcast_completed_area_list_c::types_opts::to_string() const +const char* broadcast_completed_area_list_c::types_opts::to_string() const { static const char* options[] = {"cellIDBroadcastEUTRA", "tAIBroadcastEUTRA", @@ -6338,6 +6548,21 @@ cell_id_list_for_restart_c& cell_id_list_for_restart_c::operator=(const cell_id_ return *this; } +eutra_cgi_list_l& cell_id_list_for_restart_c::set_eutra_cgi_listfor_restart() +{ + set(types::eutra_cgi_listfor_restart); + return c.get(); +} +nr_cgi_list_l& cell_id_list_for_restart_c::set_nr_cgi_listfor_restart() +{ + set(types::nr_cgi_listfor_restart); + return c.get(); +} +protocol_ie_single_container_s& cell_id_list_for_restart_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void cell_id_list_for_restart_c::to_json(json_writer& j) const { j.start_obj(); @@ -6406,7 +6631,7 @@ SRSASN_CODE cell_id_list_for_restart_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cell_id_list_for_restart_c::types_opts::to_string() const +const char* cell_id_list_for_restart_c::types_opts::to_string() const { static const char* options[] = {"eUTRA-CGIListforRestart", "nR-CGIListforRestart", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "cell_id_list_for_restart_c::types"); @@ -6490,57 +6715,6 @@ presence_e cell_traffic_trace_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& cell_traffic_trace_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& cell_traffic_trace_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::ngran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -ngran_cgi_c& cell_traffic_trace_ies_o::value_c::ngran_cgi() -{ - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -bounded_bitstring<1, 160, true, true>& cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& cell_traffic_trace_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& cell_traffic_trace_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::ngran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const ngran_cgi_c& cell_traffic_trace_ies_o::value_c::ngran_cgi() const -{ - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const bounded_bitstring<1, 160, true, true>& -cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} void cell_traffic_trace_ies_o::value_c::destroy_() { switch (type_) { @@ -6606,8 +6780,8 @@ cell_traffic_trace_ies_o::value_c::value_c(const cell_traffic_trace_ies_o::value log_invalid_choice_id(type_, "cell_traffic_trace_ies_o::value_c"); } } -cell_traffic_trace_ies_o::value_c& cell_traffic_trace_ies_o::value_c:: - operator=(const cell_traffic_trace_ies_o::value_c& other) +cell_traffic_trace_ies_o::value_c& +cell_traffic_trace_ies_o::value_c::operator=(const cell_traffic_trace_ies_o::value_c& other) { if (this == &other) { return *this; @@ -6637,6 +6811,57 @@ cell_traffic_trace_ies_o::value_c& cell_traffic_trace_ies_o::value_c:: return *this; } +uint64_t& cell_traffic_trace_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& cell_traffic_trace_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::ngran_trace_id() +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} +ngran_cgi_c& cell_traffic_trace_ies_o::value_c::ngran_cgi() +{ + assert_choice_type(types::ngran_cgi, type_, "Value"); + return c.get(); +} +bounded_bitstring<1, 160, true, true>& cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() +{ + assert_choice_type(types::trace_collection_entity_ip_address, type_, "Value"); + return c.get >(); +} +const uint64_t& cell_traffic_trace_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& cell_traffic_trace_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::ngran_trace_id() const +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} +const ngran_cgi_c& cell_traffic_trace_ies_o::value_c::ngran_cgi() const +{ + assert_choice_type(types::ngran_cgi, type_, "Value"); + return c.get(); +} +const bounded_bitstring<1, 160, true, true>& +cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() const +{ + assert_choice_type(types::trace_collection_entity_ip_address, type_, "Value"); + return c.get >(); +} void cell_traffic_trace_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -6713,7 +6938,7 @@ SRSASN_CODE cell_traffic_trace_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cell_traffic_trace_ies_o::value_c::types_opts::to_string() const +const char* cell_traffic_trace_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "NGRAN-CGI", "BIT STRING"}; @@ -6835,7 +7060,7 @@ void cell_traffic_trace_s::to_json(json_writer& j) const } // CellSize ::= ENUMERATED -std::string cell_size_opts::to_string() const +const char* cell_size_opts::to_string() const { static const char* options[] = {"verysmall", "small", "medium", "large"}; return convert_enum_idx(options, 4, value, "cell_size_e"); @@ -6926,14 +7151,14 @@ void expected_ue_moving_trajectory_item_s::to_json(json_writer& j) const } // SourceOfUEActivityBehaviourInformation ::= ENUMERATED -std::string source_of_ue_activity_behaviour_info_opts::to_string() const +const char* source_of_ue_activity_behaviour_info_opts::to_string() const { static const char* options[] = {"subscription-information", "statistics"}; return convert_enum_idx(options, 2, value, "source_of_ue_activity_behaviour_info_e"); } // ExpectedHOInterval ::= ENUMERATED -std::string expected_ho_interv_opts::to_string() const +const char* expected_ho_interv_opts::to_string() const { static const char* options[] = {"sec15", "sec30", "sec60", "sec90", "sec120", "sec180", "long-time"}; return convert_enum_idx(options, 7, value, "expected_ho_interv_e"); @@ -7011,7 +7236,7 @@ void expected_ue_activity_behaviour_s::to_json(json_writer& j) const } // ExpectedUEMobility ::= ENUMERATED -std::string expected_ue_mob_opts::to_string() const +const char* expected_ue_mob_opts::to_string() const { static const char* options[] = {"stationary", "mobile"}; return convert_enum_idx(options, 2, value, "expected_ue_mob_e"); @@ -7137,14 +7362,14 @@ void expected_ue_behaviour_s::to_json(json_writer& j) const } // MICOModeIndication ::= ENUMERATED -std::string mico_mode_ind_opts::to_string() const +const char* mico_mode_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "mico_mode_ind_e"); } // PagingDRX ::= ENUMERATED -std::string paging_drx_opts::to_string() const +const char* paging_drx_opts::to_string() const { static const char* options[] = {"v32", "v64", "v128", "v256"}; return convert_enum_idx(options, 4, value, "paging_drx_e"); @@ -7223,6 +7448,16 @@ ue_id_idx_value_c& ue_id_idx_value_c::operator=(const ue_id_idx_value_c& other) return *this; } +fixed_bitstring<10, false, true>& ue_id_idx_value_c::set_idx_len10() +{ + set(types::idx_len10); + return c.get >(); +} +protocol_ie_single_container_s& ue_id_idx_value_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void ue_id_idx_value_c::to_json(json_writer& j) const { j.start_obj(); @@ -7274,7 +7509,7 @@ SRSASN_CODE ue_id_idx_value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_id_idx_value_c::types_opts::to_string() const +const char* ue_id_idx_value_c::types_opts::to_string() const { static const char* options[] = {"indexLength10", "choice-Extensions"}; return convert_enum_idx(options, 2, value, "ue_id_idx_value_c::types"); @@ -7520,6 +7755,21 @@ drb_status_dl_c& drb_status_dl_c::operator=(const drb_status_dl_c& other) return *this; } +drb_status_dl12_s& drb_status_dl_c::set_drb_status_dl12() +{ + set(types::drb_status_dl12); + return c.get(); +} +drb_status_dl18_s& drb_status_dl_c::set_drb_status_dl18() +{ + set(types::drb_status_dl18); + return c.get(); +} +protocol_ie_single_container_s& drb_status_dl_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void drb_status_dl_c::to_json(json_writer& j) const { j.start_obj(); @@ -7582,7 +7832,7 @@ SRSASN_CODE drb_status_dl_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drb_status_dl_c::types_opts::to_string() const +const char* drb_status_dl_c::types_opts::to_string() const { static const char* options[] = {"dRBStatusDL12", "dRBStatusDL18", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "drb_status_dl_c::types"); @@ -7769,6 +8019,21 @@ drb_status_ul_c& drb_status_ul_c::operator=(const drb_status_ul_c& other) return *this; } +drb_status_ul12_s& drb_status_ul_c::set_drb_status_ul12() +{ + set(types::drb_status_ul12); + return c.get(); +} +drb_status_ul18_s& drb_status_ul_c::set_drb_status_ul18() +{ + set(types::drb_status_ul18); + return c.get(); +} +protocol_ie_single_container_s& drb_status_ul_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void drb_status_ul_c::to_json(json_writer& j) const { j.start_obj(); @@ -7831,7 +8096,7 @@ SRSASN_CODE drb_status_ul_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drb_status_ul_c::types_opts::to_string() const +const char* drb_status_ul_c::types_opts::to_string() const { static const char* options[] = {"dRBStatusUL12", "dRBStatusUL18", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "drb_status_ul_c::types"); @@ -8053,36 +8318,6 @@ presence_e deactiv_trace_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& deactiv_trace_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& deactiv_trace_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::ngran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& deactiv_trace_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& deactiv_trace_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::ngran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void deactiv_trace_ies_o::value_c::destroy_() { switch (type_) { @@ -8154,6 +8389,36 @@ deactiv_trace_ies_o::value_c& deactiv_trace_ies_o::value_c::operator=(const deac return *this; } +uint64_t& deactiv_trace_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& deactiv_trace_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::ngran_trace_id() +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} +const uint64_t& deactiv_trace_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& deactiv_trace_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::ngran_trace_id() const +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} void deactiv_trace_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -8211,7 +8476,7 @@ SRSASN_CODE deactiv_trace_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string deactiv_trace_ies_o::value_c::types_opts::to_string() const +const char* deactiv_trace_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING"}; return convert_enum_idx(options, 3, value, "deactiv_trace_ies_o::value_c::types"); @@ -8220,9 +8485,7 @@ std::string deactiv_trace_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; deactiv_trace_ies_container::deactiv_trace_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ngran_trace_id(44, crit_e::ignore) + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), ngran_trace_id(44, crit_e::ignore) {} SRSASN_CODE deactiv_trace_ies_container::pack(bit_ref& bref) const { @@ -8514,7 +8777,7 @@ SRSASN_CODE mob_restrict_list_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mob_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const +const char* mob_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"OCTET STRING"}; return convert_enum_idx(options, 1, value, "mob_restrict_list_ext_ies_o::ext_c::types"); @@ -8762,96 +9025,6 @@ presence_e dl_nas_transport_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& dl_nas_transport_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& dl_nas_transport_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -printable_string<1, 150, true, true>& dl_nas_transport_ies_o::value_c::old_amf() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -uint16_t& dl_nas_transport_ies_o::value_c::ran_paging_prio() -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -mob_restrict_list_s& dl_nas_transport_ies_o::value_c::mob_restrict_list() -{ - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& dl_nas_transport_ies_o::value_c::idx_to_rfsp() -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bit_rate_s& dl_nas_transport_ies_o::value_c::ue_aggregate_maximum_bit_rate() -{ - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -allowed_nssai_l& dl_nas_transport_ies_o::value_c::allowed_nssai() -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& dl_nas_transport_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& dl_nas_transport_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& dl_nas_transport_ies_o::value_c::old_amf() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& dl_nas_transport_ies_o::value_c::ran_paging_prio() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const mob_restrict_list_s& dl_nas_transport_ies_o::value_c::mob_restrict_list() const -{ - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& dl_nas_transport_ies_o::value_c::idx_to_rfsp() const -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bit_rate_s& dl_nas_transport_ies_o::value_c::ue_aggregate_maximum_bit_rate() const -{ - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -const allowed_nssai_l& dl_nas_transport_ies_o::value_c::allowed_nssai() const -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} void dl_nas_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -8945,8 +9118,8 @@ dl_nas_transport_ies_o::value_c::value_c(const dl_nas_transport_ies_o::value_c& log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); } } -dl_nas_transport_ies_o::value_c& dl_nas_transport_ies_o::value_c:: - operator=(const dl_nas_transport_ies_o::value_c& other) +dl_nas_transport_ies_o::value_c& +dl_nas_transport_ies_o::value_c::operator=(const dl_nas_transport_ies_o::value_c& other) { if (this == &other) { return *this; @@ -8988,6 +9161,96 @@ dl_nas_transport_ies_o::value_c& dl_nas_transport_ies_o::value_c:: return *this; } +uint64_t& dl_nas_transport_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& dl_nas_transport_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +printable_string<1, 150, true, true>& dl_nas_transport_ies_o::value_c::old_amf() +{ + assert_choice_type(types::old_amf, type_, "Value"); + return c.get >(); +} +uint16_t& dl_nas_transport_ies_o::value_c::ran_paging_prio() +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +mob_restrict_list_s& dl_nas_transport_ies_o::value_c::mob_restrict_list() +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +uint16_t& dl_nas_transport_ies_o::value_c::idx_to_rfsp() +{ + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bit_rate_s& dl_nas_transport_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +allowed_nssai_l& dl_nas_transport_ies_o::value_c::allowed_nssai() +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +const uint64_t& dl_nas_transport_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& dl_nas_transport_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& dl_nas_transport_ies_o::value_c::old_amf() const +{ + assert_choice_type(types::old_amf, type_, "Value"); + return c.get >(); +} +const uint16_t& dl_nas_transport_ies_o::value_c::ran_paging_prio() const +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const mob_restrict_list_s& dl_nas_transport_ies_o::value_c::mob_restrict_list() const +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +const uint16_t& dl_nas_transport_ies_o::value_c::idx_to_rfsp() const +{ + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bit_rate_s& dl_nas_transport_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const allowed_nssai_l& dl_nas_transport_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} void dl_nas_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -9105,7 +9368,7 @@ SRSASN_CODE dl_nas_transport_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_nas_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_nas_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", @@ -9361,26 +9624,6 @@ presence_e dl_non_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32 } // Value ::= OPEN TYPE -unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -9428,8 +9671,8 @@ dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::value_c( log_invalid_choice_id(type_, "dl_non_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -dl_non_ueassociated_nrp_pa_transport_ies_o::value_c& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c:: - operator=(const dl_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) +dl_non_ueassociated_nrp_pa_transport_ies_o::value_c& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::operator=( + const dl_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) { if (this == &other) { return *this; @@ -9450,6 +9693,26 @@ dl_non_ueassociated_nrp_pa_transport_ies_o::value_c& dl_non_ueassociated_nrp_pa_ return *this; } +unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} void dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -9498,7 +9761,7 @@ SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref return SRSASN_SUCCESS; } -std::string dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"OCTET STRING", "OCTET STRING"}; return convert_enum_idx(options, 2, value, "dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types"); @@ -9507,8 +9770,7 @@ std::string dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_ template struct asn1::ngap_nr::protocol_ie_field_s; dl_non_ueassociated_nrp_pa_transport_ies_container::dl_non_ueassociated_nrp_pa_transport_ies_container() : - routing_id(89, crit_e::reject), - nrp_pa_pdu(46, crit_e::reject) + routing_id(89, crit_e::reject), nrp_pa_pdu(46, crit_e::reject) {} SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { @@ -9748,7 +10010,7 @@ void son_info_reply_s::to_json(json_writer& j) const } // SONInformationRequest ::= ENUMERATED -std::string son_info_request_opts::to_string() const +const char* son_info_request_opts::to_string() const { static const char* options[] = {"xn-TNL-configuration-info"}; return convert_enum_idx(options, 1, value, "son_info_request_e"); @@ -9830,6 +10092,21 @@ son_info_c& son_info_c::operator=(const son_info_c& other) return *this; } +son_info_request_e& son_info_c::set_son_info_request() +{ + set(types::son_info_request); + return c.get(); +} +son_info_reply_s& son_info_c::set_son_info_reply() +{ + set(types::son_info_reply); + return c.get(); +} +protocol_ie_single_container_s& son_info_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void son_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -9891,7 +10168,7 @@ SRSASN_CODE son_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_info_c::types_opts::to_string() const +const char* son_info_c::types_opts::to_string() const { static const char* options[] = {"sONInformationRequest", "sONInformationReply", "choice-Extensions"}; return convert_enum_idx(options, 3, value, "son_info_c::types"); @@ -10093,26 +10370,6 @@ presence_e dl_ran_cfg_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -son_cfg_transfer_s& dl_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_dl() -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_dl() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const son_cfg_transfer_s& dl_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_dl() const -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_dl() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_ran_cfg_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -10159,8 +10416,8 @@ dl_ran_cfg_transfer_ies_o::value_c::value_c(const dl_ran_cfg_transfer_ies_o::val log_invalid_choice_id(type_, "dl_ran_cfg_transfer_ies_o::value_c"); } } -dl_ran_cfg_transfer_ies_o::value_c& dl_ran_cfg_transfer_ies_o::value_c:: - operator=(const dl_ran_cfg_transfer_ies_o::value_c& other) +dl_ran_cfg_transfer_ies_o::value_c& +dl_ran_cfg_transfer_ies_o::value_c::operator=(const dl_ran_cfg_transfer_ies_o::value_c& other) { if (this == &other) { return *this; @@ -10181,6 +10438,26 @@ dl_ran_cfg_transfer_ies_o::value_c& dl_ran_cfg_transfer_ies_o::value_c:: return *this; } +son_cfg_transfer_s& dl_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_dl() +{ + assert_choice_type(types::son_cfg_transfer_dl, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_dl() +{ + assert_choice_type(types::endc_son_cfg_transfer_dl, type_, "Value"); + return c.get >(); +} +const son_cfg_transfer_s& dl_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_dl() const +{ + assert_choice_type(types::son_cfg_transfer_dl, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_dl() const +{ + assert_choice_type(types::endc_son_cfg_transfer_dl, type_, "Value"); + return c.get >(); +} void dl_ran_cfg_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -10230,7 +10507,7 @@ SRSASN_CODE dl_ran_cfg_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const +const char* dl_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"SONConfigurationTransfer", "OCTET STRING"}; return convert_enum_idx(options, 2, value, "dl_ran_cfg_transfer_ies_o::value_c::types"); @@ -10239,8 +10516,7 @@ std::string dl_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; dl_ran_cfg_transfer_ies_container::dl_ran_cfg_transfer_ies_container() : - son_cfg_transfer_dl(98, crit_e::ignore), - endc_son_cfg_transfer_dl(157, crit_e::ignore) + son_cfg_transfer_dl(98, crit_e::ignore), endc_son_cfg_transfer_dl(157, crit_e::ignore) {} SRSASN_CODE dl_ran_cfg_transfer_ies_container::pack(bit_ref& bref) const { @@ -10428,38 +10704,6 @@ presence_e dl_ran_status_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& dl_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& dl_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -ran_status_transfer_transparent_container_s& -dl_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() -{ - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& dl_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& dl_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const ran_status_transfer_transparent_container_s& -dl_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() const -{ - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} void dl_ran_status_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -10507,8 +10751,8 @@ dl_ran_status_transfer_ies_o::value_c::value_c(const dl_ran_status_transfer_ies_ log_invalid_choice_id(type_, "dl_ran_status_transfer_ies_o::value_c"); } } -dl_ran_status_transfer_ies_o::value_c& dl_ran_status_transfer_ies_o::value_c:: - operator=(const dl_ran_status_transfer_ies_o::value_c& other) +dl_ran_status_transfer_ies_o::value_c& +dl_ran_status_transfer_ies_o::value_c::operator=(const dl_ran_status_transfer_ies_o::value_c& other) { if (this == &other) { return *this; @@ -10532,6 +10776,38 @@ dl_ran_status_transfer_ies_o::value_c& dl_ran_status_transfer_ies_o::value_c:: return *this; } +uint64_t& dl_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& dl_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +ran_status_transfer_transparent_container_s& +dl_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() +{ + assert_choice_type(types::ran_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} +const uint64_t& dl_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& dl_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const ran_status_transfer_transparent_container_s& +dl_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() const +{ + assert_choice_type(types::ran_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} void dl_ran_status_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -10590,7 +10866,7 @@ SRSASN_CODE dl_ran_status_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_ran_status_transfer_ies_o::value_c::types_opts::to_string() const +const char* dl_ran_status_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "RANStatusTransfer-TransparentContainer"}; @@ -10762,46 +11038,6 @@ presence_e dl_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& } // Value ::= OPEN TYPE -uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -10858,8 +11094,8 @@ dl_ueassociated_nrp_pa_transport_ies_o::value_c::value_c(const dl_ueassociated_n log_invalid_choice_id(type_, "dl_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -dl_ueassociated_nrp_pa_transport_ies_o::value_c& dl_ueassociated_nrp_pa_transport_ies_o::value_c:: - operator=(const dl_ueassociated_nrp_pa_transport_ies_o::value_c& other) +dl_ueassociated_nrp_pa_transport_ies_o::value_c& +dl_ueassociated_nrp_pa_transport_ies_o::value_c::operator=(const dl_ueassociated_nrp_pa_transport_ies_o::value_c& other) { if (this == &other) { return *this; @@ -10886,6 +11122,46 @@ dl_ueassociated_nrp_pa_transport_ies_o::value_c& dl_ueassociated_nrp_pa_transpor return *this; } +uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& dl_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& dl_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} void dl_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -10952,7 +11228,7 @@ SRSASN_CODE dl_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string dl_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "OCTET STRING"}; @@ -11064,7 +11340,7 @@ void dl_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const } // DelayCritical ::= ENUMERATED -std::string delay_crit_opts::to_string() const +const char* delay_crit_opts::to_string() const { static const char* options[] = {"delay-critical", "non-delay-critical"}; return convert_enum_idx(options, 2, value, "delay_crit_e"); @@ -11197,7 +11473,7 @@ void dynamic5_qi_descriptor_s::to_json(json_writer& j) const } // DLForwarding ::= ENUMERATED -std::string dl_forwarding_opts::to_string() const +const char* dl_forwarding_opts::to_string() const { static const char* options[] = {"dl-forwarding-proposed"}; return convert_enum_idx(options, 1, value, "dl_forwarding_e"); @@ -11290,14 +11566,14 @@ void eps_tai_s::to_json(json_writer& j) const } // EmergencyFallbackRequestIndicator ::= ENUMERATED -std::string emergency_fallback_request_ind_opts::to_string() const +const char* emergency_fallback_request_ind_opts::to_string() const { static const char* options[] = {"emergency-fallback-requested"}; return convert_enum_idx(options, 1, value, "emergency_fallback_request_ind_e"); } // EmergencyServiceTargetCN ::= ENUMERATED -std::string emergency_service_target_cn_opts::to_string() const +const char* emergency_service_target_cn_opts::to_string() const { static const char* options[] = {"fiveGC", "epc"}; return convert_enum_idx(options, 2, value, "emergency_service_target_cn_e"); @@ -11426,46 +11702,6 @@ presence_e error_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& error_ind_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& error_ind_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& error_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& error_ind_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& error_ind_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& error_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void error_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -11549,6 +11785,46 @@ error_ind_ies_o::value_c& error_ind_ies_o::value_c::operator=(const error_ind_ie return *this; } +uint64_t& error_ind_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& error_ind_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +cause_c& error_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& error_ind_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& error_ind_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const cause_c& error_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void error_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -11617,7 +11893,7 @@ SRSASN_CODE error_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string error_ind_ies_o::value_c::types_opts::to_string() const +const char* error_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause", "CriticalityDiagnostics"}; @@ -11785,7 +12061,7 @@ void five_g_s_tmsi_s::to_json(json_writer& j) const } // NotificationControl ::= ENUMERATED -std::string notif_ctrl_opts::to_string() const +const char* notif_ctrl_opts::to_string() const { static const char* options[] = {"notification-requested"}; return convert_enum_idx(options, 1, value, "notif_ctrl_e"); @@ -11933,36 +12209,6 @@ presence_e ho_cancel_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cancel_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_cancel_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_cancel_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_cancel_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void ho_cancel_ies_o::value_c::destroy_() { switch (type_) { @@ -12034,6 +12280,36 @@ ho_cancel_ies_o::value_c& ho_cancel_ies_o::value_c::operator=(const ho_cancel_ie return *this; } +uint64_t& ho_cancel_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_cancel_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_cancel_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_cancel_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void ho_cancel_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -12092,7 +12368,7 @@ SRSASN_CODE ho_cancel_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cancel_ies_o::value_c::types_opts::to_string() const +const char* ho_cancel_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause"}; return convert_enum_idx(options, 3, value, "ho_cancel_ies_o::value_c::types"); @@ -12101,9 +12377,7 @@ std::string ho_cancel_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; ho_cancel_ies_container::ho_cancel_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - cause(15, crit_e::ignore) + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), cause(15, crit_e::ignore) {} SRSASN_CODE ho_cancel_ies_container::pack(bit_ref& bref) const { @@ -12256,36 +12530,6 @@ presence_e ho_cancel_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cancel_ack_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_cancel_ack_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ack_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ack_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_cancel_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -12357,6 +12601,36 @@ ho_cancel_ack_ies_o::value_c& ho_cancel_ack_ies_o::value_c::operator=(const ho_c return *this; } +uint64_t& ho_cancel_ack_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_cancel_ack_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ack_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ack_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_cancel_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -12415,7 +12689,7 @@ SRSASN_CODE ho_cancel_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cancel_ack_ies_o::value_c::types_opts::to_string() const +const char* ho_cancel_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "ho_cancel_ack_ies_o::value_c::types"); @@ -12424,9 +12698,7 @@ std::string ho_cancel_ack_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; ho_cancel_ack_ies_container::ho_cancel_ack_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) + amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} SRSASN_CODE ho_cancel_ack_ies_container::pack(bit_ref& bref) const { @@ -12520,299 +12792,6 @@ void ho_cancel_ack_s::to_json(json_writer& j) const j.end_obj(); } -// QosFlowPerTNLInformation ::= SEQUENCE -SRSASN_CODE qos_flow_per_tnl_info_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(uptransport_layer_info.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, associated_qos_flow_list, 1, 64, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE qos_flow_per_tnl_info_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(uptransport_layer_info.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(associated_qos_flow_list, bref, 1, 64, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void qos_flow_per_tnl_info_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("uPTransportLayerInformation"); - uptransport_layer_info.to_json(j); - j.start_array("associatedQosFlowList"); - for (const auto& e1 : associated_qos_flow_list) { - e1.to_json(j); - } - j.end_array(); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// QosFlowPerTNLInformationItem ::= SEQUENCE -SRSASN_CODE qos_flow_per_tnl_info_item_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(qos_flow_per_tnl_info.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE qos_flow_per_tnl_info_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(qos_flow_per_tnl_info.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void qos_flow_per_tnl_info_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("qosFlowPerTNLInformation"); - qos_flow_per_tnl_info.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// QosFlowToBeForwardedItem ::= SEQUENCE -SRSASN_CODE qos_flow_to_be_forwarded_item_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE qos_flow_to_be_forwarded_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void qos_flow_to_be_forwarded_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// HandoverCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t ho_cmd_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {152}; - return map_enum_number(options, 1, idx, "id"); -} -bool ho_cmd_transfer_ext_ies_o::is_id_valid(const uint32_t& id) -{ - return 152 == id; -} -crit_e ho_cmd_transfer_ext_ies_o::get_crit(const uint32_t& id) -{ - if (id == 152) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -ho_cmd_transfer_ext_ies_o::ext_c ho_cmd_transfer_ext_ies_o::get_ext(const uint32_t& id) -{ - ext_c ret{}; - if (id != 152) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e ho_cmd_transfer_ext_ies_o::get_presence(const uint32_t& id) -{ - if (id == 152) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} - -// Extension ::= OPEN TYPE -void ho_cmd_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("QosFlowPerTNLInformationList"); - for (const auto& e1 : c) { - e1.to_json(j); - } - j.end_array(); - j.end_obj(); -} -SRSASN_CODE ho_cmd_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cmd_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); - return SRSASN_SUCCESS; -} - -std::string ho_cmd_transfer_ext_ies_o::ext_c::types_opts::to_string() const -{ - static const char* options[] = {"QosFlowPerTNLInformationList"}; - return convert_enum_idx(options, 1, value, "ho_cmd_transfer_ext_ies_o::ext_c::types"); -} - -// HandoverCommandTransfer ::= SEQUENCE -SRSASN_CODE ho_cmd_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_to_be_forwarded_list_present, 1)); - HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (dlforwarding_up_tnl_info_present) { - HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); - } - if (qos_flow_to_be_forwarded_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_to_be_forwarded_list, 1, 64, true)); - } - if (data_forwarding_resp_drb_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); - } - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cmd_transfer_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_to_be_forwarded_list_present, 1)); - HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (dlforwarding_up_tnl_info_present) { - HANDLE_CODE(dlforwarding_up_tnl_info.unpack(bref)); - } - if (qos_flow_to_be_forwarded_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_to_be_forwarded_list, bref, 1, 64, true)); - } - if (data_forwarding_resp_drb_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(data_forwarding_resp_drb_list, bref, 1, 32, true)); - } - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); - } - - return SRSASN_SUCCESS; -} -void ho_cmd_transfer_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (dlforwarding_up_tnl_info_present) { - j.write_fieldname("dLForwardingUP-TNLInformation"); - dlforwarding_up_tnl_info.to_json(j); - } - if (qos_flow_to_be_forwarded_list_present) { - j.start_array("qosFlowToBeForwardedList"); - for (const auto& e1 : qos_flow_to_be_forwarded_list) { - e1.to_json(j); - } - j.end_array(); - } - if (data_forwarding_resp_drb_list_present) { - j.start_array("dataForwardingResponseDRBList"); - for (const auto& e1 : data_forwarding_resp_drb_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - } - j.end_obj(); -} - -// HandoverPreparationUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE ho_prep_unsuccessful_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_unsuccessful_transfer_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ho_prep_unsuccessful_transfer_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - // PDUSessionResourceHandoverItem ::= SEQUENCE SRSASN_CODE pdu_session_res_ho_item_s::pack(bit_ref& bref) const { @@ -12892,7 +12871,7 @@ void pdu_session_res_to_release_item_ho_cmd_s::to_json(json_writer& j) const } // HandoverType ::= ENUMERATED -std::string handov_type_opts::to_string() const +const char* handov_type_opts::to_string() const { static const char* options[] = {"intra5gs", "fivegs-to-eps", "eps-to-5gs"}; return convert_enum_idx(options, 3, value, "handov_type_e"); @@ -12997,86 +12976,6 @@ presence_e ho_cmd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cmd_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_cmd_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -handov_type_e& ho_cmd_ies_o::value_c::handov_type() -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_params_from_ngran() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -pdu_session_res_ho_list_l& ho_cmd_ies_o::value_c::pdu_session_res_ho_list() -{ - assert_choice_type("PDUSessionResourceHandoverList", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_to_release_list_ho_cmd_l& ho_cmd_ies_o::value_c::pdu_session_res_to_release_list_ho_cmd() -{ - assert_choice_type("PDUSessionResourceToReleaseListHOCmd", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cmd_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cmd_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const handov_type_e& ho_cmd_ies_o::value_c::handov_type() const -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_params_from_ngran() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const pdu_session_res_ho_list_l& ho_cmd_ies_o::value_c::pdu_session_res_ho_list() const -{ - assert_choice_type("PDUSessionResourceHandoverList", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_to_release_list_ho_cmd_l& ho_cmd_ies_o::value_c::pdu_session_res_to_release_list_ho_cmd() const -{ - assert_choice_type("PDUSessionResourceToReleaseListHOCmd", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_cmd_ies_o::value_c::destroy_() { switch (type_) { @@ -13204,6 +13103,86 @@ ho_cmd_ies_o::value_c& ho_cmd_ies_o::value_c::operator=(const ho_cmd_ies_o::valu return *this; } +uint64_t& ho_cmd_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_cmd_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_cmd_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_params_from_ngran() +{ + assert_choice_type(types::nas_security_params_from_ngran, type_, "Value"); + return c.get >(); +} +pdu_session_res_ho_list_l& ho_cmd_ies_o::value_c::pdu_session_res_ho_list() +{ + assert_choice_type(types::pdu_session_res_ho_list, type_, "Value"); + return c.get(); +} +pdu_session_res_to_release_list_ho_cmd_l& ho_cmd_ies_o::value_c::pdu_session_res_to_release_list_ho_cmd() +{ + assert_choice_type(types::pdu_session_res_to_release_list_ho_cmd, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cmd_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cmd_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_cmd_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_params_from_ngran() const +{ + assert_choice_type(types::nas_security_params_from_ngran, type_, "Value"); + return c.get >(); +} +const pdu_session_res_ho_list_l& ho_cmd_ies_o::value_c::pdu_session_res_ho_list() const +{ + assert_choice_type(types::pdu_session_res_ho_list, type_, "Value"); + return c.get(); +} +const pdu_session_res_to_release_list_ho_cmd_l& ho_cmd_ies_o::value_c::pdu_session_res_to_release_list_ho_cmd() const +{ + assert_choice_type(types::pdu_session_res_to_release_list_ho_cmd, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() const +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +const crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -13315,7 +13294,7 @@ SRSASN_CODE ho_cmd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cmd_ies_o::value_c::types_opts::to_string() const +const char* ho_cmd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", @@ -13487,6 +13466,262 @@ void ho_cmd_s::to_json(json_writer& j) const j.end_obj(); } +// QosFlowPerTNLInformation ::= SEQUENCE +SRSASN_CODE qos_flow_per_tnl_info_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(uptransport_layer_info.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, associated_qos_flow_list, 1, 64, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_per_tnl_info_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(uptransport_layer_info.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(associated_qos_flow_list, bref, 1, 64, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_per_tnl_info_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("uPTransportLayerInformation"); + uptransport_layer_info.to_json(j); + j.start_array("associatedQosFlowList"); + for (const auto& e1 : associated_qos_flow_list) { + e1.to_json(j); + } + j.end_array(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// QosFlowPerTNLInformationItem ::= SEQUENCE +SRSASN_CODE qos_flow_per_tnl_info_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(qos_flow_per_tnl_info.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_per_tnl_info_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(qos_flow_per_tnl_info.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_per_tnl_info_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("qosFlowPerTNLInformation"); + qos_flow_per_tnl_info.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// QosFlowToBeForwardedItem ::= SEQUENCE +SRSASN_CODE qos_flow_to_be_forwarded_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_to_be_forwarded_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_to_be_forwarded_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// HandoverCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t ho_cmd_transfer_ext_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {152}; + return map_enum_number(options, 1, idx, "id"); +} +bool ho_cmd_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +{ + return 152 == id; +} +crit_e ho_cmd_transfer_ext_ies_o::get_crit(const uint32_t& id) +{ + if (id == 152) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; +} +ho_cmd_transfer_ext_ies_o::ext_c ho_cmd_transfer_ext_ies_o::get_ext(const uint32_t& id) +{ + ext_c ret{}; + if (id != 152) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; +} +presence_e ho_cmd_transfer_ext_ies_o::get_presence(const uint32_t& id) +{ + if (id == 152) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; +} + +// Extension ::= OPEN TYPE +void ho_cmd_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +{ + j.start_obj(); + j.start_array("QosFlowPerTNLInformationList"); + for (const auto& e1 : c) { + e1.to_json(j); + } + j.end_array(); + j.end_obj(); +} +SRSASN_CODE ho_cmd_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cmd_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); + return SRSASN_SUCCESS; +} + +const char* ho_cmd_transfer_ext_ies_o::ext_c::types_opts::to_string() const +{ + static const char* options[] = {"QosFlowPerTNLInformationList"}; + return convert_enum_idx(options, 1, value, "ho_cmd_transfer_ext_ies_o::ext_c::types"); +} + +// HandoverCommandTransfer ::= SEQUENCE +SRSASN_CODE ho_cmd_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_to_be_forwarded_list_present, 1)); + HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (dlforwarding_up_tnl_info_present) { + HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); + } + if (qos_flow_to_be_forwarded_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_to_be_forwarded_list, 1, 64, true)); + } + if (data_forwarding_resp_drb_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cmd_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_to_be_forwarded_list_present, 1)); + HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (dlforwarding_up_tnl_info_present) { + HANDLE_CODE(dlforwarding_up_tnl_info.unpack(bref)); + } + if (qos_flow_to_be_forwarded_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_to_be_forwarded_list, bref, 1, 64, true)); + } + if (data_forwarding_resp_drb_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(data_forwarding_resp_drb_list, bref, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } + + return SRSASN_SUCCESS; +} +void ho_cmd_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (dlforwarding_up_tnl_info_present) { + j.write_fieldname("dLForwardingUP-TNLInformation"); + dlforwarding_up_tnl_info.to_json(j); + } + if (qos_flow_to_be_forwarded_list_present) { + j.start_array("qosFlowToBeForwardedList"); + for (const auto& e1 : qos_flow_to_be_forwarded_list) { + e1.to_json(j); + } + j.end_array(); + } + if (data_forwarding_resp_drb_list_present) { + j.start_array("dataForwardingResponseDRBList"); + for (const auto& e1 : data_forwarding_resp_drb_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); +} + // HandoverFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t ho_fail_ies_o::idx_to_id(uint32_t idx) { @@ -13551,36 +13786,6 @@ presence_e ho_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_fail_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_fail_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -13656,6 +13861,36 @@ ho_fail_ies_o::value_c& ho_fail_ies_o::value_c::operator=(const ho_fail_ies_o::v return *this; } +uint64_t& ho_fail_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_fail_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -13715,7 +13950,7 @@ SRSASN_CODE ho_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_fail_ies_o::value_c::types_opts::to_string() const +const char* ho_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "Cause", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "ho_fail_ies_o::value_c::types"); @@ -13729,9 +13964,7 @@ uint8_t ho_fail_ies_o::value_c::types_opts::to_number() const template struct asn1::ngap_nr::protocol_ie_field_s; ho_fail_ies_container::ho_fail_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - cause(15, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) + amf_ue_ngap_id(10, crit_e::ignore), cause(15, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} SRSASN_CODE ho_fail_ies_container::pack(bit_ref& bref) const { @@ -14060,6 +14293,26 @@ user_location_info_c& user_location_info_c::operator=(const user_location_info_c return *this; } +user_location_info_eutra_s& user_location_info_c::set_user_location_info_eutra() +{ + set(types::user_location_info_eutra); + return c.get(); +} +user_location_info_nr_s& user_location_info_c::set_user_location_info_nr() +{ + set(types::user_location_info_nr); + return c.get(); +} +user_location_info_n3_iwf_s& user_location_info_c::set_user_location_info_n3_iwf() +{ + set(types::user_location_info_n3_iwf); + return c.get(); +} +protocol_ie_single_container_s& user_location_info_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} void user_location_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -14132,7 +14385,7 @@ SRSASN_CODE user_location_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string user_location_info_c::types_opts::to_string() const +const char* user_location_info_c::types_opts::to_string() const { static const char* options[] = { "userLocationInformationEUTRA", "userLocationInformationNR", "userLocationInformationN3IWF", "choice-Extensions"}; @@ -14211,36 +14464,6 @@ presence_e ho_notify_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_notify_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_notify_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& ho_notify_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_notify_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_notify_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& ho_notify_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} void ho_notify_ies_o::value_c::destroy_() { switch (type_) { @@ -14312,6 +14535,36 @@ ho_notify_ies_o::value_c& ho_notify_ies_o::value_c::operator=(const ho_notify_ie return *this; } +uint64_t& ho_notify_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_notify_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +user_location_info_c& ho_notify_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const uint64_t& ho_notify_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_notify_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const user_location_info_c& ho_notify_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} void ho_notify_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -14370,7 +14623,7 @@ SRSASN_CODE ho_notify_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_notify_ies_o::value_c::types_opts::to_string() const +const char* ho_notify_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "UserLocationInformation"}; return convert_enum_idx(options, 3, value, "ho_notify_ies_o::value_c::types"); @@ -14379,9 +14632,7 @@ std::string ho_notify_ies_o::value_c::types_opts::to_string() const template struct asn1::ngap_nr::protocol_ie_field_s; ho_notify_ies_container::ho_notify_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - user_location_info(121, crit_e::ignore) + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), user_location_info(121, crit_e::ignore) {} SRSASN_CODE ho_notify_ies_container::pack(bit_ref& bref) const { @@ -14541,46 +14792,6 @@ presence_e ho_prep_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_prep_fail_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_prep_fail_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_prep_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_prep_fail_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_prep_fail_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_prep_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_prep_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -14664,6 +14875,46 @@ ho_prep_fail_ies_o::value_c& ho_prep_fail_ies_o::value_c::operator=(const ho_pre return *this; } +uint64_t& ho_prep_fail_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_prep_fail_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_prep_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_prep_fail_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_prep_fail_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_prep_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_prep_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -14732,7 +14983,7 @@ SRSASN_CODE ho_prep_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_prep_fail_ies_o::value_c::types_opts::to_string() const +const char* ho_prep_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause", "CriticalityDiagnostics"}; @@ -14848,68 +15099,36 @@ void ho_prep_fail_s::to_json(json_writer& j) const j.end_obj(); } -// NonDynamic5QIDescriptor ::= SEQUENCE -SRSASN_CODE non_dynamic5_qi_descriptor_s::pack(bit_ref& bref) const +// HandoverPreparationUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE ho_prep_unsuccessful_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(prio_level_qos_present, 1)); - HANDLE_CODE(bref.pack(averaging_win_present, 1)); - HANDLE_CODE(bref.pack(maximum_data_burst_volume_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, five_qi, (uint16_t)0u, (uint16_t)255u, true, true)); - if (prio_level_qos_present) { - HANDLE_CODE(pack_integer(bref, prio_level_qos, (uint8_t)1u, (uint8_t)127u, true, true)); - } - if (averaging_win_present) { - HANDLE_CODE(pack_integer(bref, averaging_win, (uint16_t)0u, (uint16_t)4095u, true, true)); - } - if (maximum_data_burst_volume_present) { - HANDLE_CODE(pack_integer(bref, maximum_data_burst_volume, (uint16_t)0u, (uint16_t)4095u, true, true)); - } + HANDLE_CODE(cause.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE non_dynamic5_qi_descriptor_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_prep_unsuccessful_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(prio_level_qos_present, 1)); - HANDLE_CODE(bref.unpack(averaging_win_present, 1)); - HANDLE_CODE(bref.unpack(maximum_data_burst_volume_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(five_qi, bref, (uint16_t)0u, (uint16_t)255u, true, true)); - if (prio_level_qos_present) { - HANDLE_CODE(unpack_integer(prio_level_qos, bref, (uint8_t)1u, (uint8_t)127u, true, true)); - } - if (averaging_win_present) { - HANDLE_CODE(unpack_integer(averaging_win, bref, (uint16_t)0u, (uint16_t)4095u, true, true)); - } - if (maximum_data_burst_volume_present) { - HANDLE_CODE(unpack_integer(maximum_data_burst_volume, bref, (uint16_t)0u, (uint16_t)4095u, true, true)); - } + HANDLE_CODE(cause.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void non_dynamic5_qi_descriptor_s::to_json(json_writer& j) const +void ho_prep_unsuccessful_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("fiveQI", five_qi); - if (prio_level_qos_present) { - j.write_int("priorityLevelQos", prio_level_qos); - } - if (averaging_win_present) { - j.write_int("averagingWindow", averaging_win); - } - if (maximum_data_burst_volume_present) { - j.write_int("maximumDataBurstVolume", maximum_data_burst_volume); - } + j.write_fieldname("cause"); + cause.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -14917,199 +15136,95 @@ void non_dynamic5_qi_descriptor_s::to_json(json_writer& j) const j.end_obj(); } -// AdditionalQosFlowInformation ::= ENUMERATED -std::string add_qos_flow_info_opts::to_string() const +// EventType ::= ENUMERATED +const char* event_type_opts::to_string() const { - static const char* options[] = {"more-likely"}; - return convert_enum_idx(options, 1, value, "add_qos_flow_info_e"); + static const char* options[] = {"direct", + "change-of-serve-cell", + "ue-presence-in-area-of-interest", + "stop-change-of-serve-cell", + "stop-ue-presence-in-area-of-interest", + "cancel-location-reporting-for-the-ue"}; + return convert_enum_idx(options, 6, value, "event_type_e"); } -// QosCharacteristics ::= CHOICE -void qos_characteristics_c::destroy_() -{ - switch (type_) { - case types::non_dynamic5_qi: - c.destroy(); - break; - case types::dynamic5_qi: - c.destroy(); - break; - case types::choice_exts: - c.destroy >(); - break; - default: - break; - } -} -void qos_characteristics_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::non_dynamic5_qi: - c.init(); - break; - case types::dynamic5_qi: - c.init(); - break; - case types::choice_exts: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); - } -} -qos_characteristics_c::qos_characteristics_c(const qos_characteristics_c& other) +// PDUSessionResourceSetupItemHOReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_item_ho_req_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::non_dynamic5_qi: - c.init(other.c.get()); - break; - case types::dynamic5_qi: - c.init(other.c.get()); - break; - case types::choice_exts: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(s_nssai.pack(bref)); + HANDLE_CODE(ho_request_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } + + return SRSASN_SUCCESS; } -qos_characteristics_c& qos_characteristics_c::operator=(const qos_characteristics_c& other) +SRSASN_CODE pdu_session_res_setup_item_ho_req_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::non_dynamic5_qi: - c.set(other.c.get()); - break; - case types::dynamic5_qi: - c.set(other.c.get()); - break; - case types::choice_exts: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(s_nssai.unpack(bref)); + HANDLE_CODE(ho_request_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void qos_characteristics_c::to_json(json_writer& j) const +void pdu_session_res_setup_item_ho_req_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::non_dynamic5_qi: - j.write_fieldname("nonDynamic5QI"); - c.get().to_json(j); - break; - case types::dynamic5_qi: - j.write_fieldname("dynamic5QI"); - c.get().to_json(j); - break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); + j.write_int("pDUSessionID", pdu_session_id); + j.write_fieldname("s-NSSAI"); + s_nssai.to_json(j); + j.write_str("handoverRequestTransfer", ho_request_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } j.end_obj(); } -SRSASN_CODE qos_characteristics_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::non_dynamic5_qi: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dynamic5_qi: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE qos_characteristics_c::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::non_dynamic5_qi: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::dynamic5_qi: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "qos_characteristics_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string qos_characteristics_c::types_opts::to_string() const -{ - static const char* options[] = {"nonDynamic5QI", "dynamic5QI", "choice-Extensions"}; - return convert_enum_idx(options, 3, value, "qos_characteristics_c::types"); -} -// ReflectiveQosAttribute ::= ENUMERATED -std::string reflective_qos_attribute_opts::to_string() const +// ReportArea ::= ENUMERATED +const char* report_area_opts::to_string() const { - static const char* options[] = {"subject-to"}; - return convert_enum_idx(options, 1, value, "reflective_qos_attribute_e"); + static const char* options[] = {"cell"}; + return convert_enum_idx(options, 1, value, "report_area_e"); } -// MaximumIntegrityProtectedDataRate ::= ENUMERATED -std::string maximum_integrity_protected_data_rate_opts::to_string() const -{ - static const char* options[] = {"bitrate64kbs", "maximum-UE-rate"}; - return convert_enum_idx(options, 2, value, "maximum_integrity_protected_data_rate_e"); -} -uint8_t maximum_integrity_protected_data_rate_opts::to_number() const +// TraceDepth ::= ENUMERATED +const char* trace_depth_opts::to_string() const { - static const uint8_t options[] = {64}; - return map_enum_number(options, 1, value, "maximum_integrity_protected_data_rate_e"); + static const char* options[] = {"minimum", + "medium", + "maximum", + "minimumWithoutVendorSpecificExtension", + "mediumWithoutVendorSpecificExtension", + "maximumWithoutVendorSpecificExtension"}; + return convert_enum_idx(options, 6, value, "trace_depth_e"); } -// QosFlowLevelQosParameters ::= SEQUENCE -SRSASN_CODE qos_flow_level_qos_params_s::pack(bit_ref& bref) const +// LocationReportingRequestType ::= SEQUENCE +SRSASN_CODE location_report_request_type_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(gbr_qos_info_present, 1)); - HANDLE_CODE(bref.pack(reflective_qos_attribute_present, 1)); - HANDLE_CODE(bref.pack(add_qos_flow_info_present, 1)); + HANDLE_CODE(bref.pack(area_of_interest_list_present, 1)); + HANDLE_CODE(bref.pack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(qos_characteristics.pack(bref)); - HANDLE_CODE(alloc_and_retention_prio.pack(bref)); - if (gbr_qos_info_present) { - HANDLE_CODE(gbr_qos_info.pack(bref)); - } - if (reflective_qos_attribute_present) { - HANDLE_CODE(reflective_qos_attribute.pack(bref)); + HANDLE_CODE(event_type.pack(bref)); + HANDLE_CODE(report_area.pack(bref)); + if (area_of_interest_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_list, 1, 64, true)); } - if (add_qos_flow_info_present) { - HANDLE_CODE(add_qos_flow_info.pack(bref)); + if (location_report_ref_id_to_be_cancelled_present) { + HANDLE_CODE(pack_integer(bref, location_report_ref_id_to_be_cancelled, (uint8_t)1u, (uint8_t)64u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -15117,24 +15232,20 @@ SRSASN_CODE qos_flow_level_qos_params_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_level_qos_params_s::unpack(cbit_ref& bref) +SRSASN_CODE location_report_request_type_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(gbr_qos_info_present, 1)); - HANDLE_CODE(bref.unpack(reflective_qos_attribute_present, 1)); - HANDLE_CODE(bref.unpack(add_qos_flow_info_present, 1)); + HANDLE_CODE(bref.unpack(area_of_interest_list_present, 1)); + HANDLE_CODE(bref.unpack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(qos_characteristics.unpack(bref)); - HANDLE_CODE(alloc_and_retention_prio.unpack(bref)); - if (gbr_qos_info_present) { - HANDLE_CODE(gbr_qos_info.unpack(bref)); - } - if (reflective_qos_attribute_present) { - HANDLE_CODE(reflective_qos_attribute.unpack(bref)); + HANDLE_CODE(event_type.unpack(bref)); + HANDLE_CODE(report_area.unpack(bref)); + if (area_of_interest_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(area_of_interest_list, bref, 1, 64, true)); } - if (add_qos_flow_info_present) { - HANDLE_CODE(add_qos_flow_info.unpack(bref)); + if (location_report_ref_id_to_be_cancelled_present) { + HANDLE_CODE(unpack_integer(location_report_ref_id_to_be_cancelled, bref, (uint8_t)1u, (uint8_t)64u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -15142,22 +15253,20 @@ SRSASN_CODE qos_flow_level_qos_params_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void qos_flow_level_qos_params_s::to_json(json_writer& j) const +void location_report_request_type_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("qosCharacteristics"); - qos_characteristics.to_json(j); - j.write_fieldname("allocationAndRetentionPriority"); - alloc_and_retention_prio.to_json(j); - if (gbr_qos_info_present) { - j.write_fieldname("gBR-QosInformation"); - gbr_qos_info.to_json(j); - } - if (reflective_qos_attribute_present) { - j.write_str("reflectiveQosAttribute", "subject-to"); + j.write_str("eventType", event_type.to_string()); + j.write_str("reportArea", "cell"); + if (area_of_interest_list_present) { + j.start_array("areaOfInterestList"); + for (const auto& e1 : area_of_interest_list) { + e1.to_json(j); + } + j.end_array(); } - if (add_qos_flow_info_present) { - j.write_str("additionalQosFlowInformation", "more-likely"); + if (location_report_ref_id_to_be_cancelled_present) { + j.write_int("locationReportingReferenceIDToBeCancelled", location_report_ref_id_to_be_cancelled); } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); @@ -15166,64 +15275,60 @@ void qos_flow_level_qos_params_s::to_json(json_writer& j) const j.end_obj(); } -// ConfidentialityProtectionIndication ::= ENUMERATED -std::string confidentiality_protection_ind_opts::to_string() const +// NewSecurityContextInd ::= ENUMERATED +const char* new_security_context_ind_opts::to_string() const { - static const char* options[] = {"required", "preferred", "not-needed"}; - return convert_enum_idx(options, 3, value, "confidentiality_protection_ind_e"); + static const char* options[] = {"true"}; + return convert_enum_idx(options, 1, value, "new_security_context_ind_e"); } -// IntegrityProtectionIndication ::= ENUMERATED -std::string integrity_protection_ind_opts::to_string() const +// RRCInactiveTransitionReportRequest ::= ENUMERATED +const char* rrc_inactive_transition_report_request_opts::to_string() const { - static const char* options[] = {"required", "preferred", "not-needed"}; - return convert_enum_idx(options, 3, value, "integrity_protection_ind_e"); + static const char* options[] = { + "subsequent-state-transition-report", "single-rrc-connected-state-report", "cancel-report"}; + return convert_enum_idx(options, 3, value, "rrc_inactive_transition_report_request_e"); } -// QosFlowSetupRequestItem ::= SEQUENCE -SRSASN_CODE qos_flow_setup_request_item_s::pack(bit_ref& bref) const +// RedirectionVoiceFallback ::= ENUMERATED +const char* redirection_voice_fallback_opts::to_string() const +{ + static const char* options[] = {"possible", "not-possible"}; + return convert_enum_idx(options, 2, value, "redirection_voice_fallback_e"); +} + +// SecurityContext ::= SEQUENCE +SRSASN_CODE security_context_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(erab_id_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(qos_flow_level_qos_params.pack(bref)); - if (erab_id_present) { - HANDLE_CODE(pack_integer(bref, erab_id, (uint8_t)0u, (uint8_t)15u, true, true)); - } + HANDLE_CODE(pack_integer(bref, next_hop_chaining_count, (uint8_t)0u, (uint8_t)7u, false, true)); + HANDLE_CODE(next_hop_nh.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_setup_request_item_s::unpack(cbit_ref& bref) +SRSASN_CODE security_context_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(erab_id_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(qos_flow_level_qos_params.unpack(bref)); - if (erab_id_present) { - HANDLE_CODE(unpack_integer(erab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); - } + HANDLE_CODE(unpack_integer(next_hop_chaining_count, bref, (uint8_t)0u, (uint8_t)7u, false, true)); + HANDLE_CODE(next_hop_nh.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_setup_request_item_s::to_json(json_writer& j) const +void security_context_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - j.write_fieldname("qosFlowLevelQosParameters"); - qos_flow_level_qos_params.to_json(j); - if (erab_id_present) { - j.write_int("e-RAB-ID", erab_id); - } + j.write_int("nextHopChainingCount", next_hop_chaining_count); + j.write_str("nextHopNH", next_hop_nh.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -15231,97 +15336,44 @@ void qos_flow_setup_request_item_s::to_json(json_writer& j) const j.end_obj(); } -// SecurityIndication-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t security_ind_ext_ies_o::idx_to_id(uint32_t idx) +// TraceActivation ::= SEQUENCE +SRSASN_CODE trace_activation_s::pack(bit_ref& bref) const { - static const uint32_t options[] = {151}; - return map_enum_number(options, 1, idx, "id"); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(ngran_trace_id.pack(bref)); + HANDLE_CODE(interfaces_to_trace.pack(bref)); + HANDLE_CODE(trace_depth.pack(bref)); + HANDLE_CODE(trace_collection_entity_ip_address.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool security_ind_ext_ies_o::is_id_valid(const uint32_t& id) -{ - return 151 == id; -} -crit_e security_ind_ext_ies_o::get_crit(const uint32_t& id) -{ - if (id == 151) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -security_ind_ext_ies_o::ext_c security_ind_ext_ies_o::get_ext(const uint32_t& id) -{ - ext_c ret{}; - if (id != 151) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e security_ind_ext_ies_o::get_presence(const uint32_t& id) -{ - if (id == 151) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} - -// Extension ::= OPEN TYPE -void security_ind_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("MaximumIntegrityProtectedDataRate", c.to_string()); - j.end_obj(); -} -SRSASN_CODE security_ind_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; -} -SRSASN_CODE security_ind_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; -} - -std::string security_ind_ext_ies_o::ext_c::types_opts::to_string() const -{ - static const char* options[] = {"MaximumIntegrityProtectedDataRate"}; - return convert_enum_idx(options, 1, value, "security_ind_ext_ies_o::ext_c::types"); -} - -// UPTransportLayerInformationItem ::= SEQUENCE -SRSASN_CODE up_transport_layer_info_item_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(ngu_up_tnl_info.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE up_transport_layer_info_item_s::unpack(cbit_ref& bref) +SRSASN_CODE trace_activation_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(ngu_up_tnl_info.unpack(bref)); + HANDLE_CODE(ngran_trace_id.unpack(bref)); + HANDLE_CODE(interfaces_to_trace.unpack(bref)); + HANDLE_CODE(trace_depth.unpack(bref)); + HANDLE_CODE(trace_collection_entity_ip_address.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void up_transport_layer_info_item_s::to_json(json_writer& j) const +void trace_activation_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("nGU-UP-TNLInformation"); - ngu_up_tnl_info.to_json(j); + j.write_str("nGRANTraceID", ngran_trace_id.to_string()); + j.write_str("interfacesToTrace", interfaces_to_trace.to_string()); + j.write_str("traceDepth", trace_depth.to_string()); + j.write_str("traceCollectionEntityIPAddress", trace_collection_entity_ip_address.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -15329,49 +15381,44 @@ void up_transport_layer_info_item_s::to_json(json_writer& j) const j.end_obj(); } -// DataForwardingNotPossible ::= ENUMERATED -std::string data_forwarding_not_possible_opts::to_string() const -{ - static const char* options[] = {"data-forwarding-not-possible"}; - return convert_enum_idx(options, 1, value, "data_forwarding_not_possible_e"); -} - -// PDUSessionAggregateMaximumBitRate ::= SEQUENCE -SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::pack(bit_ref& bref) const +// UESecurityCapabilities ::= SEQUENCE +SRSASN_CODE ue_security_cap_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer( - bref, pdu_session_aggregate_maximum_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); - HANDLE_CODE(pack_integer( - bref, pdu_session_aggregate_maximum_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(nrencryption_algorithms.pack(bref)); + HANDLE_CODE(nrintegrity_protection_algorithms.pack(bref)); + HANDLE_CODE(eutr_aencryption_algorithms.pack(bref)); + HANDLE_CODE(eutr_aintegrity_protection_algorithms.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_security_cap_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer( - pdu_session_aggregate_maximum_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); - HANDLE_CODE(unpack_integer( - pdu_session_aggregate_maximum_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(nrencryption_algorithms.unpack(bref)); + HANDLE_CODE(nrintegrity_protection_algorithms.unpack(bref)); + HANDLE_CODE(eutr_aencryption_algorithms.unpack(bref)); + HANDLE_CODE(eutr_aintegrity_protection_algorithms.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_aggregate_maximum_bit_rate_s::to_json(json_writer& j) const +void ue_security_cap_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionAggregateMaximumBitRateDL", pdu_session_aggregate_maximum_bit_rate_dl); - j.write_int("pDUSessionAggregateMaximumBitRateUL", pdu_session_aggregate_maximum_bit_rate_ul); + j.write_str("nRencryptionAlgorithms", nrencryption_algorithms.to_string()); + j.write_str("nRintegrityProtectionAlgorithms", nrintegrity_protection_algorithms.to_string()); + j.write_str("eUTRAencryptionAlgorithms", eutr_aencryption_algorithms.to_string()); + j.write_str("eUTRAintegrityProtectionAlgorithms", eutr_aintegrity_protection_algorithms.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -15379,71 +15426,15 @@ void pdu_session_aggregate_maximum_bit_rate_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionType ::= ENUMERATED -std::string pdu_session_type_opts::to_string() const -{ - static const char* options[] = {"ipv4", "ipv6", "ipv4v6", "ethernet", "unstructured"}; - return convert_enum_idx(options, 5, value, "pdu_session_type_e"); -} - -// SecurityIndication ::= SEQUENCE -SRSASN_CODE security_ind_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(maximum_integrity_protected_data_rate_ul_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(integrity_protection_ind.pack(bref)); - HANDLE_CODE(confidentiality_protection_ind.pack(bref)); - if (maximum_integrity_protected_data_rate_ul_present) { - HANDLE_CODE(maximum_integrity_protected_data_rate_ul.pack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE security_ind_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(maximum_integrity_protected_data_rate_ul_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(integrity_protection_ind.unpack(bref)); - HANDLE_CODE(confidentiality_protection_ind.unpack(bref)); - if (maximum_integrity_protected_data_rate_ul_present) { - HANDLE_CODE(maximum_integrity_protected_data_rate_ul.unpack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); - } - - return SRSASN_SUCCESS; -} -void security_ind_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("integrityProtectionIndication", integrity_protection_ind.to_string()); - j.write_str("confidentialityProtectionIndication", confidentiality_protection_ind.to_string()); - if (maximum_integrity_protected_data_rate_ul_present) { - j.write_str("maximumIntegrityProtectedDataRate-UL", maximum_integrity_protected_data_rate_ul.to_string()); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - } - j.end_obj(); -} - -// PDUSessionResourceSetupRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_setup_request_transfer_ies_o::idx_to_id(uint32_t idx) +// HandoverRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ho_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {130, 139, 126, 127, 134, 138, 129, 136}; - return map_enum_number(options, 8, idx, "id"); + static const uint32_t options[] = {10, 29, 15, 110, 18, 119, 93, 41, 37, 73, 0, 108, 34, 101, 36, 33, 91, 28, 146}; + return map_enum_number(options, 19, idx, "id"); } -bool pdu_session_res_setup_request_transfer_ies_o::is_id_valid(const uint32_t& id) +bool ho_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {130, 139, 126, 127, 134, 138, 129, 136}; + static const uint32_t options[] = {10, 29, 15, 110, 18, 119, 93, 41, 37, 73, 0, 108, 34, 101, 36, 33, 91, 28, 146}; for (const auto& o : options) { if (o == id) { return true; @@ -15451,83 +15442,159 @@ bool pdu_session_res_setup_request_transfer_ies_o::is_id_valid(const uint32_t& i } return false; } -crit_e pdu_session_res_setup_request_transfer_ies_o::get_crit(const uint32_t& id) +crit_e ho_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 130: + case 10: return crit_e::reject; - case 139: + case 29: return crit_e::reject; - case 126: + case 15: + return crit_e::ignore; + case 110: return crit_e::reject; - case 127: + case 18: + return crit_e::ignore; + case 119: return crit_e::reject; - case 134: + case 93: return crit_e::reject; - case 138: + case 41: return crit_e::reject; - case 129: + case 37: return crit_e::reject; - case 136: + case 73: + return crit_e::reject; + case 0: + return crit_e::reject; + case 108: + return crit_e::ignore; + case 34: + return crit_e::ignore; + case 101: + return crit_e::reject; + case 36: + return crit_e::ignore; + case 33: + return crit_e::ignore; + case 91: + return crit_e::ignore; + case 28: return crit_e::reject; + case 146: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_setup_request_transfer_ies_o::value_c -pdu_session_res_setup_request_transfer_ies_o::get_value(const uint32_t& id) +ho_request_ies_o::value_c ho_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 130: - ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 139: - ret.set(value_c::types::ul_ngu_up_tnl_info); + case 29: + ret.set(value_c::types::handov_type); break; - case 126: - ret.set(value_c::types::add_ul_ngu_up_tnl_info); + case 15: + ret.set(value_c::types::cause); break; - case 127: - ret.set(value_c::types::data_forwarding_not_possible); + case 110: + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; - case 134: - ret.set(value_c::types::pdu_session_type); + case 18: + ret.set(value_c::types::core_network_assist_info); break; - case 138: - ret.set(value_c::types::security_ind); + case 119: + ret.set(value_c::types::ue_security_cap); break; - case 129: - ret.set(value_c::types::network_instance); + case 93: + ret.set(value_c::types::security_context); break; - case 136: - ret.set(value_c::types::qos_flow_setup_request_list); + case 41: + ret.set(value_c::types::new_security_context_ind); + break; + case 37: + ret.set(value_c::types::nasc); + break; + case 73: + ret.set(value_c::types::pdu_session_res_setup_list_ho_req); + break; + case 0: + ret.set(value_c::types::allowed_nssai); + break; + case 108: + ret.set(value_c::types::trace_activation); + break; + case 34: + ret.set(value_c::types::masked_imeisv); + break; + case 101: + ret.set(value_c::types::source_to_target_transparent_container); + break; + case 36: + ret.set(value_c::types::mob_restrict_list); + break; + case 33: + ret.set(value_c::types::location_report_request_type); + break; + case 91: + ret.set(value_c::types::rrc_inactive_transition_report_request); + break; + case 28: + ret.set(value_c::types::guami); + break; + case 146: + ret.set(value_c::types::redirection_voice_fallback); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_setup_request_transfer_ies_o::get_presence(const uint32_t& id) +presence_e ho_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 130: + case 10: + return presence_e::mandatory; + case 29: + return presence_e::mandatory; + case 15: + return presence_e::mandatory; + case 110: + return presence_e::mandatory; + case 18: return presence_e::optional; - case 139: + case 119: return presence_e::mandatory; - case 126: + case 93: + return presence_e::mandatory; + case 41: return presence_e::optional; - case 127: + case 37: return presence_e::optional; - case 134: + case 73: return presence_e::mandatory; - case 138: + case 0: + return presence_e::mandatory; + case 108: return presence_e::optional; - case 129: + case 34: return presence_e::optional; - case 136: + case 101: + return presence_e::mandatory; + case 36: + return presence_e::optional; + case 33: + return presence_e::optional; + case 91: + return presence_e::optional; + case 28: return presence_e::mandatory; + case 146: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -15535,455 +15602,903 @@ presence_e pdu_session_res_setup_request_transfer_ies_o::get_presence(const uint } // Value ::= OPEN TYPE -pdu_session_aggregate_maximum_bit_rate_s& -pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() -{ - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -up_transport_layer_info_c& pdu_session_res_setup_request_transfer_ies_o::value_c::ul_ngu_up_tnl_info() -{ - assert_choice_type("UPTransportLayerInformation", type_.to_string(), "Value"); - return c.get(); -} -up_transport_layer_info_list_l& pdu_session_res_setup_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() -{ - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); -} -data_forwarding_not_possible_e& pdu_session_res_setup_request_transfer_ies_o::value_c::data_forwarding_not_possible() -{ - assert_choice_type("DataForwardingNotPossible", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_type_e& pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_type() -{ - assert_choice_type("PDUSessionType", type_.to_string(), "Value"); - return c.get(); -} -security_ind_s& pdu_session_res_setup_request_transfer_ies_o::value_c::security_ind() -{ - assert_choice_type("SecurityIndication", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& pdu_session_res_setup_request_transfer_ies_o::value_c::network_instance() -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -qos_flow_setup_request_list_l& pdu_session_res_setup_request_transfer_ies_o::value_c::qos_flow_setup_request_list() -{ - assert_choice_type("QosFlowSetupRequestList", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_aggregate_maximum_bit_rate_s& -pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() const -{ - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -const up_transport_layer_info_c& pdu_session_res_setup_request_transfer_ies_o::value_c::ul_ngu_up_tnl_info() const -{ - assert_choice_type("UPTransportLayerInformation", type_.to_string(), "Value"); - return c.get(); -} -const up_transport_layer_info_list_l& -pdu_session_res_setup_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() const -{ - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); -} -const data_forwarding_not_possible_e& -pdu_session_res_setup_request_transfer_ies_o::value_c::data_forwarding_not_possible() const -{ - assert_choice_type("DataForwardingNotPossible", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_type_e& pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_type() const -{ - assert_choice_type("PDUSessionType", type_.to_string(), "Value"); - return c.get(); -} -const security_ind_s& pdu_session_res_setup_request_transfer_ies_o::value_c::security_ind() const -{ - assert_choice_type("SecurityIndication", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& pdu_session_res_setup_request_transfer_ies_o::value_c::network_instance() const -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -const qos_flow_setup_request_list_l& -pdu_session_res_setup_request_transfer_ies_o::value_c::qos_flow_setup_request_list() const -{ - assert_choice_type("QosFlowSetupRequestList", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_setup_request_transfer_ies_o::value_c::destroy_() +void ho_request_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.destroy(); + case types::cause: + c.destroy(); break; - case types::ul_ngu_up_tnl_info: - c.destroy(); + case types::ue_aggregate_maximum_bit_rate: + c.destroy(); break; - case types::add_ul_ngu_up_tnl_info: - c.destroy(); + case types::core_network_assist_info: + c.destroy(); break; - case types::security_ind: - c.destroy(); + case types::ue_security_cap: + c.destroy(); break; - case types::qos_flow_setup_request_list: - c.destroy(); + case types::security_context: + c.destroy(); + break; + case types::nasc: + c.destroy >(); + break; + case types::pdu_session_res_setup_list_ho_req: + c.destroy(); + break; + case types::allowed_nssai: + c.destroy(); + break; + case types::trace_activation: + c.destroy(); + break; + case types::masked_imeisv: + c.destroy >(); + break; + case types::source_to_target_transparent_container: + c.destroy >(); + break; + case types::mob_restrict_list: + c.destroy(); + break; + case types::location_report_request_type: + c.destroy(); + break; + case types::guami: + c.destroy(); break; default: break; } } -void pdu_session_res_setup_request_transfer_ies_o::value_c::set(types::options e) +void ho_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.init(); + case types::amf_ue_ngap_id: break; - case types::ul_ngu_up_tnl_info: - c.init(); + case types::handov_type: break; - case types::add_ul_ngu_up_tnl_info: - c.init(); + case types::cause: + c.init(); break; - case types::data_forwarding_not_possible: + case types::ue_aggregate_maximum_bit_rate: + c.init(); break; - case types::pdu_session_type: + case types::core_network_assist_info: + c.init(); break; - case types::security_ind: - c.init(); + case types::ue_security_cap: + c.init(); break; - case types::network_instance: + case types::security_context: + c.init(); break; - case types::qos_flow_setup_request_list: - c.init(); + case types::new_security_context_ind: + break; + case types::nasc: + c.init >(); + break; + case types::pdu_session_res_setup_list_ho_req: + c.init(); + break; + case types::allowed_nssai: + c.init(); + break; + case types::trace_activation: + c.init(); + break; + case types::masked_imeisv: + c.init >(); + break; + case types::source_to_target_transparent_container: + c.init >(); + break; + case types::mob_restrict_list: + c.init(); + break; + case types::location_report_request_type: + c.init(); + break; + case types::rrc_inactive_transition_report_request: + break; + case types::guami: + c.init(); + break; + case types::redirection_voice_fallback: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); } } -pdu_session_res_setup_request_transfer_ies_o::value_c::value_c( - const pdu_session_res_setup_request_transfer_ies_o::value_c& other) +ho_request_ies_o::value_c::value_c(const ho_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::ul_ngu_up_tnl_info: - c.init(other.c.get()); + case types::handov_type: + c.init(other.c.get()); break; - case types::add_ul_ngu_up_tnl_info: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; - case types::data_forwarding_not_possible: - c.init(other.c.get()); + case types::ue_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; - case types::pdu_session_type: - c.init(other.c.get()); + case types::core_network_assist_info: + c.init(other.c.get()); break; - case types::security_ind: - c.init(other.c.get()); + case types::ue_security_cap: + c.init(other.c.get()); break; - case types::network_instance: - c.init(other.c.get()); + case types::security_context: + c.init(other.c.get()); break; - case types::qos_flow_setup_request_list: - c.init(other.c.get()); + case types::new_security_context_ind: + c.init(other.c.get()); + break; + case types::nasc: + c.init(other.c.get >()); + break; + case types::pdu_session_res_setup_list_ho_req: + c.init(other.c.get()); + break; + case types::allowed_nssai: + c.init(other.c.get()); + break; + case types::trace_activation: + c.init(other.c.get()); + break; + case types::masked_imeisv: + c.init(other.c.get >()); + break; + case types::source_to_target_transparent_container: + c.init(other.c.get >()); + break; + case types::mob_restrict_list: + c.init(other.c.get()); + break; + case types::location_report_request_type: + c.init(other.c.get()); + break; + case types::rrc_inactive_transition_report_request: + c.init(other.c.get()); + break; + case types::guami: + c.init(other.c.get()); + break; + case types::redirection_voice_fallback: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); } } -pdu_session_res_setup_request_transfer_ies_o::value_c& pdu_session_res_setup_request_transfer_ies_o::value_c:: - operator=(const pdu_session_res_setup_request_transfer_ies_o::value_c& other) +ho_request_ies_o::value_c& ho_request_ies_o::value_c::operator=(const ho_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::ul_ngu_up_tnl_info: - c.set(other.c.get()); + case types::handov_type: + c.set(other.c.get()); break; - case types::add_ul_ngu_up_tnl_info: - c.set(other.c.get()); + case types::cause: + c.set(other.c.get()); break; - case types::data_forwarding_not_possible: - c.set(other.c.get()); + case types::ue_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; - case types::pdu_session_type: - c.set(other.c.get()); + case types::core_network_assist_info: + c.set(other.c.get()); break; - case types::security_ind: - c.set(other.c.get()); + case types::ue_security_cap: + c.set(other.c.get()); break; - case types::network_instance: - c.set(other.c.get()); + case types::security_context: + c.set(other.c.get()); break; - case types::qos_flow_setup_request_list: - c.set(other.c.get()); + case types::new_security_context_ind: + c.set(other.c.get()); + break; + case types::nasc: + c.set(other.c.get >()); + break; + case types::pdu_session_res_setup_list_ho_req: + c.set(other.c.get()); + break; + case types::allowed_nssai: + c.set(other.c.get()); + break; + case types::trace_activation: + c.set(other.c.get()); + break; + case types::masked_imeisv: + c.set(other.c.get >()); + break; + case types::source_to_target_transparent_container: + c.set(other.c.get >()); + break; + case types::mob_restrict_list: + c.set(other.c.get()); + break; + case types::location_report_request_type: + c.set(other.c.get()); + break; + case types::rrc_inactive_transition_report_request: + c.set(other.c.get()); + break; + case types::guami: + c.set(other.c.get()); + break; + case types::redirection_voice_fallback: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); } return *this; } -void pdu_session_res_setup_request_transfer_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_request_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +cause_c& ho_request_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +security_context_s& ho_request_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() +{ + assert_choice_type(types::new_security_context_ind, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_request_ies_o::value_c::nasc() +{ + assert_choice_type(types::nasc, type_, "Value"); + return c.get >(); +} +pdu_session_res_setup_list_ho_req_l& ho_request_ies_o::value_c::pdu_session_res_setup_list_ho_req() +{ + assert_choice_type(types::pdu_session_res_setup_list_ho_req, type_, "Value"); + return c.get(); +} +allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +trace_activation_s& ho_request_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() +{ + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); +} +rrc_inactive_transition_report_request_e& ho_request_ies_o::value_c::rrc_inactive_transition_report_request() +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +guami_s& ho_request_ies_o::value_c::guami() +{ + assert_choice_type(types::guami, type_, "Value"); + return c.get(); +} +redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +const uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_request_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const cause_c& ho_request_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() const +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const security_context_s& ho_request_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() const +{ + assert_choice_type(types::new_security_context_ind, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_request_ies_o::value_c::nasc() const +{ + assert_choice_type(types::nasc, type_, "Value"); + return c.get >(); +} +const pdu_session_res_setup_list_ho_req_l& ho_request_ies_o::value_c::pdu_session_res_setup_list_ho_req() const +{ + assert_choice_type(types::pdu_session_res_setup_list_ho_req, type_, "Value"); + return c.get(); +} +const allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +const trace_activation_s& ho_request_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() const +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() const +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +const mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() const +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +const location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() const +{ + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); +} +const rrc_inactive_transition_report_request_e& +ho_request_ies_o::value_c::rrc_inactive_transition_report_request() const +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +const guami_s& ho_request_ies_o::value_c::guami() const +{ + assert_choice_type(types::guami, type_, "Value"); + return c.get(); +} +const redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() const +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +void ho_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - j.write_fieldname("PDUSessionAggregateMaximumBitRate"); - c.get().to_json(j); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::ul_ngu_up_tnl_info: - j.write_fieldname("UPTransportLayerInformation"); - c.get().to_json(j); + case types::handov_type: + j.write_str("HandoverType", c.get().to_string()); break; - case types::add_ul_ngu_up_tnl_info: - j.start_array("UPTransportLayerInformationList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; - case types::data_forwarding_not_possible: - j.write_str("DataForwardingNotPossible", "data-forwarding-not-possible"); + case types::ue_aggregate_maximum_bit_rate: + j.write_fieldname("UEAggregateMaximumBitRate"); + c.get().to_json(j); break; - case types::pdu_session_type: - j.write_str("PDUSessionType", c.get().to_string()); + case types::core_network_assist_info: + j.write_fieldname("CoreNetworkAssistanceInformation"); + c.get().to_json(j); break; - case types::security_ind: - j.write_fieldname("SecurityIndication"); - c.get().to_json(j); + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); + c.get().to_json(j); break; - case types::network_instance: - j.write_int("INTEGER (1..256,...)", c.get()); + case types::security_context: + j.write_fieldname("SecurityContext"); + c.get().to_json(j); break; - case types::qos_flow_setup_request_list: - j.start_array("QosFlowSetupRequestList"); - for (const auto& e1 : c.get()) { + case types::new_security_context_ind: + j.write_str("NewSecurityContextInd", "true"); + break; + case types::nasc: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::pdu_session_res_setup_list_ho_req: + j.start_array("PDUSessionResourceSetupListHOReq"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::allowed_nssai: + j.start_array("AllowedNSSAI"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; + case types::trace_activation: + j.write_fieldname("TraceActivation"); + c.get().to_json(j); + break; + case types::masked_imeisv: + j.write_str("BIT STRING", c.get >().to_string()); + break; + case types::source_to_target_transparent_container: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::mob_restrict_list: + j.write_fieldname("MobilityRestrictionList"); + c.get().to_json(j); + break; + case types::location_report_request_type: + j.write_fieldname("LocationReportingRequestType"); + c.get().to_json(j); + break; + case types::rrc_inactive_transition_report_request: + j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + break; + case types::guami: + j.write_fieldname("GUAMI"); + c.get().to_json(j); + break; + case types::redirection_voice_fallback: + j.write_str("RedirectionVoiceFallback", c.get().to_string()); + break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ho_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::ul_ngu_up_tnl_info: - HANDLE_CODE(c.get().pack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().pack(bref)); break; - case types::add_ul_ngu_up_tnl_info: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 3, true)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; - case types::data_forwarding_not_possible: - HANDLE_CODE(c.get().pack(bref)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_type: - HANDLE_CODE(c.get().pack(bref)); + case types::core_network_assist_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::security_ind: - HANDLE_CODE(c.get().pack(bref)); + case types::ue_security_cap: + HANDLE_CODE(c.get().pack(bref)); break; - case types::network_instance: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); + case types::security_context: + HANDLE_CODE(c.get().pack(bref)); break; - case types::qos_flow_setup_request_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); + case types::new_security_context_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::nasc: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::pdu_session_res_setup_list_ho_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::allowed_nssai: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); + break; + case types::trace_activation: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::masked_imeisv: + HANDLE_CODE((c.get >().pack(bref))); + break; + case types::source_to_target_transparent_container: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::mob_restrict_list: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::guami: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ho_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::ul_ngu_up_tnl_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::add_ul_ngu_up_tnl_info: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 3, true)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::data_forwarding_not_possible: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::core_network_assist_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::security_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_security_cap: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::network_instance: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); + case types::security_context: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::qos_flow_setup_request_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); + case types::new_security_context_ind: + HANDLE_CODE(c.get().unpack(bref)); break; - default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string pdu_session_res_setup_request_transfer_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"PDUSessionAggregateMaximumBitRate", - "UPTransportLayerInformation", - "UPTransportLayerInformationList", - "DataForwardingNotPossible", - "PDUSessionType", - "SecurityIndication", - "INTEGER (1..256,...)", - "QosFlowSetupRequestList"}; - return convert_enum_idx(options, 8, value, "pdu_session_res_setup_request_transfer_ies_o::value_c::types"); -} -uint8_t pdu_session_res_setup_request_transfer_ies_o::value_c::types_opts::to_number() const -{ - if (value == network_instance) { - return 1; - } - invalid_enum_number(value, "pdu_session_res_setup_request_transfer_ies_o::value_c::types"); - return 0; -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -pdu_session_res_setup_request_transfer_ies_container::pdu_session_res_setup_request_transfer_ies_container() : - pdu_session_aggregate_maximum_bit_rate(130, crit_e::reject), - ul_ngu_up_tnl_info(139, crit_e::reject), - add_ul_ngu_up_tnl_info(126, crit_e::reject), - data_forwarding_not_possible(127, crit_e::reject), - pdu_session_type(134, crit_e::reject), - security_ind(138, crit_e::reject), - network_instance(129, crit_e::reject), - qos_flow_setup_request_list(136, crit_e::reject) + case types::nasc: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::pdu_session_res_setup_list_ho_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::allowed_nssai: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); + break; + case types::trace_activation: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::masked_imeisv: + HANDLE_CODE((c.get >().unpack(bref))); + break; + case types::source_to_target_transparent_container: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::mob_restrict_list: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::guami: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +const char* ho_request_ies_o::value_c::types_opts::to_string() const +{ + static const char* options[] = {"INTEGER (0..1099511627775)", + "HandoverType", + "Cause", + "UEAggregateMaximumBitRate", + "CoreNetworkAssistanceInformation", + "UESecurityCapabilities", + "SecurityContext", + "NewSecurityContextInd", + "OCTET STRING", + "PDUSessionResourceSetupListHOReq", + "AllowedNSSAI", + "TraceActivation", + "BIT STRING", + "OCTET STRING", + "MobilityRestrictionList", + "LocationReportingRequestType", + "RRCInactiveTransitionReportRequest", + "GUAMI", + "RedirectionVoiceFallback"}; + return convert_enum_idx(options, 19, value, "ho_request_ies_o::value_c::types"); +} +uint8_t ho_request_ies_o::value_c::types_opts::to_number() const +{ + switch (value) { + case amf_ue_ngap_id: + return 0; + case core_network_assist_info: + return 2; + default: + invalid_enum_number(value, "ho_request_ies_o::value_c::types"); + } + return 0; +} + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ho_request_ies_container::ho_request_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + handov_type(29, crit_e::reject), + cause(15, crit_e::ignore), + ue_aggregate_maximum_bit_rate(110, crit_e::reject), + core_network_assist_info(18, crit_e::ignore), + ue_security_cap(119, crit_e::reject), + security_context(93, crit_e::reject), + new_security_context_ind(41, crit_e::reject), + nasc(37, crit_e::reject), + pdu_session_res_setup_list_ho_req(73, crit_e::reject), + allowed_nssai(0, crit_e::reject), + trace_activation(108, crit_e::ignore), + masked_imeisv(34, crit_e::ignore), + source_to_target_transparent_container(101, crit_e::reject), + mob_restrict_list(36, crit_e::ignore), + location_report_request_type(33, crit_e::ignore), + rrc_inactive_transition_report_request(91, crit_e::ignore), + guami(28, crit_e::reject), + redirection_voice_fallback(146, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ho_request_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += pdu_session_aggregate_maximum_bit_rate_present ? 1 : 0; - nof_ies += add_ul_ngu_up_tnl_info_present ? 1 : 0; - nof_ies += data_forwarding_not_possible_present ? 1 : 0; - nof_ies += security_ind_present ? 1 : 0; - nof_ies += network_instance_present ? 1 : 0; + uint32_t nof_ies = 10; + nof_ies += core_network_assist_info_present ? 1 : 0; + nof_ies += new_security_context_ind_present ? 1 : 0; + nof_ies += nasc_present ? 1 : 0; + nof_ies += trace_activation_present ? 1 : 0; + nof_ies += masked_imeisv_present ? 1 : 0; + nof_ies += mob_restrict_list_present ? 1 : 0; + nof_ies += location_report_request_type_present ? 1 : 0; + nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; + nof_ies += redirection_voice_fallback_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - if (pdu_session_aggregate_maximum_bit_rate_present) { - HANDLE_CODE(pdu_session_aggregate_maximum_bit_rate.pack(bref)); + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(handov_type.pack(bref)); + HANDLE_CODE(cause.pack(bref)); + HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); + if (core_network_assist_info_present) { + HANDLE_CODE(core_network_assist_info.pack(bref)); } - HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); - if (add_ul_ngu_up_tnl_info_present) { - HANDLE_CODE(add_ul_ngu_up_tnl_info.pack(bref)); + HANDLE_CODE(ue_security_cap.pack(bref)); + HANDLE_CODE(security_context.pack(bref)); + if (new_security_context_ind_present) { + HANDLE_CODE(new_security_context_ind.pack(bref)); } - if (data_forwarding_not_possible_present) { - HANDLE_CODE(data_forwarding_not_possible.pack(bref)); + if (nasc_present) { + HANDLE_CODE(nasc.pack(bref)); } - HANDLE_CODE(pdu_session_type.pack(bref)); - if (security_ind_present) { - HANDLE_CODE(security_ind.pack(bref)); + HANDLE_CODE(pdu_session_res_setup_list_ho_req.pack(bref)); + HANDLE_CODE(allowed_nssai.pack(bref)); + if (trace_activation_present) { + HANDLE_CODE(trace_activation.pack(bref)); } - if (network_instance_present) { - HANDLE_CODE(network_instance.pack(bref)); + if (masked_imeisv_present) { + HANDLE_CODE(masked_imeisv.pack(bref)); + } + HANDLE_CODE(source_to_target_transparent_container.pack(bref)); + if (mob_restrict_list_present) { + HANDLE_CODE(mob_restrict_list.pack(bref)); + } + if (location_report_request_type_present) { + HANDLE_CODE(location_report_request_type.pack(bref)); + } + if (rrc_inactive_transition_report_request_present) { + HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); + } + HANDLE_CODE(guami.pack(bref)); + if (redirection_voice_fallback_present) { + HANDLE_CODE(redirection_voice_fallback.pack(bref)); } - HANDLE_CODE(qos_flow_setup_request_list.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ho_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 10; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 130: - pdu_session_aggregate_maximum_bit_rate_present = true; - pdu_session_aggregate_maximum_bit_rate.id = c.id; - pdu_session_aggregate_maximum_bit_rate.crit = c.crit; - pdu_session_aggregate_maximum_bit_rate.value = c.value.pdu_session_aggregate_maximum_bit_rate(); + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 139: + case 29: nof_mandatory_ies--; - ul_ngu_up_tnl_info.id = c.id; - ul_ngu_up_tnl_info.crit = c.crit; - ul_ngu_up_tnl_info.value = c.value.ul_ngu_up_tnl_info(); + handov_type.id = c.id; + handov_type.crit = c.crit; + handov_type.value = c.value.handov_type(); break; - case 126: - add_ul_ngu_up_tnl_info_present = true; - add_ul_ngu_up_tnl_info.id = c.id; - add_ul_ngu_up_tnl_info.crit = c.crit; - add_ul_ngu_up_tnl_info.value = c.value.add_ul_ngu_up_tnl_info(); + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); break; - case 127: - data_forwarding_not_possible_present = true; - data_forwarding_not_possible.id = c.id; - data_forwarding_not_possible.crit = c.crit; - data_forwarding_not_possible.value = c.value.data_forwarding_not_possible(); + case 110: + nof_mandatory_ies--; + ue_aggregate_maximum_bit_rate.id = c.id; + ue_aggregate_maximum_bit_rate.crit = c.crit; + ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); break; - case 134: + case 18: + core_network_assist_info_present = true; + core_network_assist_info.id = c.id; + core_network_assist_info.crit = c.crit; + core_network_assist_info.value = c.value.core_network_assist_info(); + break; + case 119: nof_mandatory_ies--; - pdu_session_type.id = c.id; - pdu_session_type.crit = c.crit; - pdu_session_type.value = c.value.pdu_session_type(); + ue_security_cap.id = c.id; + ue_security_cap.crit = c.crit; + ue_security_cap.value = c.value.ue_security_cap(); break; - case 138: - security_ind_present = true; - security_ind.id = c.id; - security_ind.crit = c.crit; - security_ind.value = c.value.security_ind(); + case 93: + nof_mandatory_ies--; + security_context.id = c.id; + security_context.crit = c.crit; + security_context.value = c.value.security_context(); break; - case 129: - network_instance_present = true; - network_instance.id = c.id; - network_instance.crit = c.crit; - network_instance.value = c.value.network_instance(); + case 41: + new_security_context_ind_present = true; + new_security_context_ind.id = c.id; + new_security_context_ind.crit = c.crit; + new_security_context_ind.value = c.value.new_security_context_ind(); break; - case 136: + case 37: + nasc_present = true; + nasc.id = c.id; + nasc.crit = c.crit; + nasc.value = c.value.nasc(); + break; + case 73: nof_mandatory_ies--; - qos_flow_setup_request_list.id = c.id; - qos_flow_setup_request_list.crit = c.crit; - qos_flow_setup_request_list.value = c.value.qos_flow_setup_request_list(); + pdu_session_res_setup_list_ho_req.id = c.id; + pdu_session_res_setup_list_ho_req.crit = c.crit; + pdu_session_res_setup_list_ho_req.value = c.value.pdu_session_res_setup_list_ho_req(); + break; + case 0: + nof_mandatory_ies--; + allowed_nssai.id = c.id; + allowed_nssai.crit = c.crit; + allowed_nssai.value = c.value.allowed_nssai(); + break; + case 108: + trace_activation_present = true; + trace_activation.id = c.id; + trace_activation.crit = c.crit; + trace_activation.value = c.value.trace_activation(); + break; + case 34: + masked_imeisv_present = true; + masked_imeisv.id = c.id; + masked_imeisv.crit = c.crit; + masked_imeisv.value = c.value.masked_imeisv(); + break; + case 101: + nof_mandatory_ies--; + source_to_target_transparent_container.id = c.id; + source_to_target_transparent_container.crit = c.crit; + source_to_target_transparent_container.value = c.value.source_to_target_transparent_container(); + break; + case 36: + mob_restrict_list_present = true; + mob_restrict_list.id = c.id; + mob_restrict_list.crit = c.crit; + mob_restrict_list.value = c.value.mob_restrict_list(); + break; + case 33: + location_report_request_type_present = true; + location_report_request_type.id = c.id; + location_report_request_type.crit = c.crit; + location_report_request_type.value = c.value.location_report_request_type(); + break; + case 91: + rrc_inactive_transition_report_request_present = true; + rrc_inactive_transition_report_request.id = c.id; + rrc_inactive_transition_report_request.crit = c.crit; + rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); + break; + case 28: + nof_mandatory_ies--; + guami.id = c.id; + guami.crit = c.crit; + guami.value = c.value.guami(); + break; + case 146: + redirection_voice_fallback_present = true; + redirection_voice_fallback.id = c.id; + redirection_voice_fallback.crit = c.crit; + redirection_voice_fallback.value = c.value.redirection_voice_fallback(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -15997,54 +16512,84 @@ SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::unpack(cbit_re } return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_transfer_ies_container::to_json(json_writer& j) const +void ho_request_ies_container::to_json(json_writer& j) const { j.start_obj(); - if (pdu_session_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + handov_type.to_json(j); + j.write_fieldname(""); + cause.to_json(j); + j.write_fieldname(""); + ue_aggregate_maximum_bit_rate.to_json(j); + if (core_network_assist_info_present) { j.write_fieldname(""); - pdu_session_aggregate_maximum_bit_rate.to_json(j); + core_network_assist_info.to_json(j); } j.write_fieldname(""); - ul_ngu_up_tnl_info.to_json(j); - if (add_ul_ngu_up_tnl_info_present) { + ue_security_cap.to_json(j); + j.write_fieldname(""); + security_context.to_json(j); + if (new_security_context_ind_present) { j.write_fieldname(""); - add_ul_ngu_up_tnl_info.to_json(j); + new_security_context_ind.to_json(j); } - if (data_forwarding_not_possible_present) { + if (nasc_present) { j.write_fieldname(""); - data_forwarding_not_possible.to_json(j); + nasc.to_json(j); } j.write_fieldname(""); - pdu_session_type.to_json(j); - if (security_ind_present) { + pdu_session_res_setup_list_ho_req.to_json(j); + j.write_fieldname(""); + allowed_nssai.to_json(j); + if (trace_activation_present) { j.write_fieldname(""); - security_ind.to_json(j); + trace_activation.to_json(j); } - if (network_instance_present) { + if (masked_imeisv_present) { j.write_fieldname(""); - network_instance.to_json(j); + masked_imeisv.to_json(j); } j.write_fieldname(""); - qos_flow_setup_request_list.to_json(j); + source_to_target_transparent_container.to_json(j); + if (mob_restrict_list_present) { + j.write_fieldname(""); + mob_restrict_list.to_json(j); + } + if (location_report_request_type_present) { + j.write_fieldname(""); + location_report_request_type.to_json(j); + } + if (rrc_inactive_transition_report_request_present) { + j.write_fieldname(""); + rrc_inactive_transition_report_request.to_json(j); + } + j.write_fieldname(""); + guami.to_json(j); + if (redirection_voice_fallback_present) { + j.write_fieldname(""); + redirection_voice_fallback.to_json(j); + } j.end_obj(); } -// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_request_transfer_s::pack(bit_ref& bref) const +// HandoverRequest ::= SEQUENCE +SRSASN_CODE ho_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_transfer_s::to_json(json_writer& j) const +void ho_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -16052,54 +16597,38 @@ void pdu_session_res_setup_request_transfer_s::to_json(json_writer& j) const j.end_obj(); } -// EventType ::= ENUMERATED -std::string event_type_opts::to_string() const -{ - static const char* options[] = {"direct", - "change-of-serve-cell", - "ue-presence-in-area-of-interest", - "stop-change-of-serve-cell", - "stop-ue-presence-in-area-of-interest", - "cancel-location-reporting-for-the-ue"}; - return convert_enum_idx(options, 6, value, "event_type_e"); -} - -// PDUSessionResourceSetupItemHOReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_item_ho_req_s::pack(bit_ref& bref) const +// PDUSessionResourceAdmittedItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_admitted_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(s_nssai.pack(bref)); - HANDLE_CODE(ho_request_transfer.pack(bref)); + HANDLE_CODE(ho_request_ack_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_item_ho_req_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_admitted_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(s_nssai.unpack(bref)); - HANDLE_CODE(ho_request_transfer.unpack(bref)); + HANDLE_CODE(ho_request_ack_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_setup_item_ho_req_s::to_json(json_writer& j) const +void pdu_session_res_admitted_item_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - j.write_fieldname("s-NSSAI"); - s_nssai.to_json(j); - j.write_str("handoverRequestTransfer", ho_request_transfer.to_string()); + j.write_str("handoverRequestAcknowledgeTransfer", ho_request_ack_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -16107,83 +16636,38 @@ void pdu_session_res_setup_item_ho_req_s::to_json(json_writer& j) const j.end_obj(); } -// ReportArea ::= ENUMERATED -std::string report_area_opts::to_string() const -{ - static const char* options[] = {"cell"}; - return convert_enum_idx(options, 1, value, "report_area_e"); -} - -// TraceDepth ::= ENUMERATED -std::string trace_depth_opts::to_string() const -{ - static const char* options[] = {"minimum", - "medium", - "maximum", - "minimumWithoutVendorSpecificExtension", - "mediumWithoutVendorSpecificExtension", - "maximumWithoutVendorSpecificExtension"}; - return convert_enum_idx(options, 6, value, "trace_depth_e"); -} - -// LocationReportingRequestType ::= SEQUENCE -SRSASN_CODE location_report_request_type_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToSetupItemHOAck ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_setup_item_ho_ack_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(area_of_interest_list_present, 1)); - HANDLE_CODE(bref.pack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(event_type.pack(bref)); - HANDLE_CODE(report_area.pack(bref)); - if (area_of_interest_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, area_of_interest_list, 1, 64, true)); - } - if (location_report_ref_id_to_be_cancelled_present) { - HANDLE_CODE(pack_integer(bref, location_report_ref_id_to_be_cancelled, (uint8_t)1u, (uint8_t)64u, true, true)); - } + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(ho_res_alloc_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_request_type_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_setup_item_ho_ack_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(area_of_interest_list_present, 1)); - HANDLE_CODE(bref.unpack(location_report_ref_id_to_be_cancelled_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(event_type.unpack(bref)); - HANDLE_CODE(report_area.unpack(bref)); - if (area_of_interest_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(area_of_interest_list, bref, 1, 64, true)); - } - if (location_report_ref_id_to_be_cancelled_present) { - HANDLE_CODE(unpack_integer(location_report_ref_id_to_be_cancelled, bref, (uint8_t)1u, (uint8_t)64u, true, true)); - } + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(ho_res_alloc_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void location_report_request_type_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_setup_item_ho_ack_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("eventType", event_type.to_string()); - j.write_str("reportArea", "cell"); - if (area_of_interest_list_present) { - j.start_array("areaOfInterestList"); - for (const auto& e1 : area_of_interest_list) { - e1.to_json(j); - } - j.end_array(); - } - if (location_report_ref_id_to_be_cancelled_present) { - j.write_int("locationReportingReferenceIDToBeCancelled", location_report_ref_id_to_be_cancelled); - } + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("handoverResourceAllocationUnsuccessfulTransfer", ho_res_alloc_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -16191,325 +16675,83 @@ void location_report_request_type_s::to_json(json_writer& j) const j.end_obj(); } -// NewSecurityContextInd ::= ENUMERATED -std::string new_security_context_ind_opts::to_string() const -{ - static const char* options[] = {"true"}; - return convert_enum_idx(options, 1, value, "new_security_context_ind_e"); -} - -// RRCInactiveTransitionReportRequest ::= ENUMERATED -std::string rrc_inactive_transition_report_request_opts::to_string() const -{ - static const char* options[] = { - "subsequent-state-transition-report", "single-rrc-connected-state-report", "cancel-report"}; - return convert_enum_idx(options, 3, value, "rrc_inactive_transition_report_request_e"); -} - -// RedirectionVoiceFallback ::= ENUMERATED -std::string redirection_voice_fallback_opts::to_string() const +// HandoverRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ho_request_ack_ies_o::idx_to_id(uint32_t idx) { - static const char* options[] = {"possible", "not-possible"}; - return convert_enum_idx(options, 2, value, "redirection_voice_fallback_e"); + static const uint32_t options[] = {10, 85, 53, 56, 106, 19}; + return map_enum_number(options, 6, idx, "id"); } - -// SecurityContext ::= SEQUENCE -SRSASN_CODE security_context_s::pack(bit_ref& bref) const +bool ho_request_ack_ies_o::is_id_valid(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, next_hop_chaining_count, (uint8_t)0u, (uint8_t)7u, false, true)); - HANDLE_CODE(next_hop_nh.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + static const uint32_t options[] = {10, 85, 53, 56, 106, 19}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -SRSASN_CODE security_context_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(next_hop_chaining_count, bref, (uint8_t)0u, (uint8_t)7u, false, true)); - HANDLE_CODE(next_hop_nh.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void security_context_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("nextHopChainingCount", next_hop_chaining_count); - j.write_str("nextHopNH", next_hop_nh.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// TraceActivation ::= SEQUENCE -SRSASN_CODE trace_activation_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(ngran_trace_id.pack(bref)); - HANDLE_CODE(interfaces_to_trace.pack(bref)); - HANDLE_CODE(trace_depth.pack(bref)); - HANDLE_CODE(trace_collection_entity_ip_address.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE trace_activation_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(ngran_trace_id.unpack(bref)); - HANDLE_CODE(interfaces_to_trace.unpack(bref)); - HANDLE_CODE(trace_depth.unpack(bref)); - HANDLE_CODE(trace_collection_entity_ip_address.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void trace_activation_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("nGRANTraceID", ngran_trace_id.to_string()); - j.write_str("interfacesToTrace", interfaces_to_trace.to_string()); - j.write_str("traceDepth", trace_depth.to_string()); - j.write_str("traceCollectionEntityIPAddress", trace_collection_entity_ip_address.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// UESecurityCapabilities ::= SEQUENCE -SRSASN_CODE ue_security_cap_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(nrencryption_algorithms.pack(bref)); - HANDLE_CODE(nrintegrity_protection_algorithms.pack(bref)); - HANDLE_CODE(eutr_aencryption_algorithms.pack(bref)); - HANDLE_CODE(eutr_aintegrity_protection_algorithms.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_security_cap_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(nrencryption_algorithms.unpack(bref)); - HANDLE_CODE(nrintegrity_protection_algorithms.unpack(bref)); - HANDLE_CODE(eutr_aencryption_algorithms.unpack(bref)); - HANDLE_CODE(eutr_aintegrity_protection_algorithms.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_security_cap_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("nRencryptionAlgorithms", nrencryption_algorithms.to_string()); - j.write_str("nRintegrityProtectionAlgorithms", nrintegrity_protection_algorithms.to_string()); - j.write_str("eUTRAencryptionAlgorithms", eutr_aencryption_algorithms.to_string()); - j.write_str("eUTRAintegrityProtectionAlgorithms", eutr_aintegrity_protection_algorithms.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// HandoverRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ho_request_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 29, 15, 110, 18, 119, 93, 41, 37, 73, 0, 108, 34, 101, 36, 33, 91, 28, 146}; - return map_enum_number(options, 19, idx, "id"); -} -bool ho_request_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {10, 29, 15, 110, 18, 119, 93, 41, 37, 73, 0, 108, 34, 101, 36, 33, 91, 28, 146}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e ho_request_ies_o::get_crit(const uint32_t& id) +crit_e ho_request_ack_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: - return crit_e::reject; - case 29: - return crit_e::reject; - case 15: - return crit_e::ignore; - case 110: - return crit_e::reject; - case 18: - return crit_e::ignore; - case 119: - return crit_e::reject; - case 93: - return crit_e::reject; - case 41: - return crit_e::reject; - case 37: - return crit_e::reject; - case 73: - return crit_e::reject; - case 0: - return crit_e::reject; - case 108: return crit_e::ignore; - case 34: - return crit_e::ignore; - case 101: - return crit_e::reject; - case 36: + case 85: return crit_e::ignore; - case 33: + case 53: return crit_e::ignore; - case 91: + case 56: return crit_e::ignore; - case 28: + case 106: return crit_e::reject; - case 146: + case 19: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ho_request_ies_o::value_c ho_request_ies_o::get_value(const uint32_t& id) +ho_request_ack_ies_o::value_c ho_request_ack_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { case 10: ret.set(value_c::types::amf_ue_ngap_id); break; - case 29: - ret.set(value_c::types::handov_type); - break; - case 15: - ret.set(value_c::types::cause); - break; - case 110: - ret.set(value_c::types::ue_aggregate_maximum_bit_rate); - break; - case 18: - ret.set(value_c::types::core_network_assist_info); - break; - case 119: - ret.set(value_c::types::ue_security_cap); - break; - case 93: - ret.set(value_c::types::security_context); - break; - case 41: - ret.set(value_c::types::new_security_context_ind); - break; - case 37: - ret.set(value_c::types::nasc); - break; - case 73: - ret.set(value_c::types::pdu_session_res_setup_list_ho_req); - break; - case 0: - ret.set(value_c::types::allowed_nssai); - break; - case 108: - ret.set(value_c::types::trace_activation); - break; - case 34: - ret.set(value_c::types::masked_imeisv); - break; - case 101: - ret.set(value_c::types::source_to_target_transparent_container); - break; - case 36: - ret.set(value_c::types::mob_restrict_list); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 33: - ret.set(value_c::types::location_report_request_type); + case 53: + ret.set(value_c::types::pdu_session_res_admitted_list); break; - case 91: - ret.set(value_c::types::rrc_inactive_transition_report_request); + case 56: + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ho_ack); break; - case 28: - ret.set(value_c::types::guami); + case 106: + ret.set(value_c::types::target_to_source_transparent_container); break; - case 146: - ret.set(value_c::types::redirection_voice_fallback); + case 19: + ret.set(value_c::types::crit_diagnostics); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ho_request_ies_o::get_presence(const uint32_t& id) +presence_e ho_request_ack_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; - case 29: - return presence_e::mandatory; - case 15: - return presence_e::mandatory; - case 110: - return presence_e::mandatory; - case 18: - return presence_e::optional; - case 119: - return presence_e::mandatory; - case 93: - return presence_e::mandatory; - case 41: - return presence_e::optional; - case 37: - return presence_e::optional; - case 73: - return presence_e::mandatory; - case 0: + case 85: return presence_e::mandatory; - case 108: - return presence_e::optional; - case 34: - return presence_e::optional; - case 101: + case 53: return presence_e::mandatory; - case 36: - return presence_e::optional; - case 33: - return presence_e::optional; - case 91: + case 56: return presence_e::optional; - case 28: + case 106: return presence_e::mandatory; - case 146: + case 19: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -16518,788 +16760,1381 @@ presence_e ho_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() +void ho_request_ack_ies_o::value_c::destroy_() { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + switch (type_) { + case types::pdu_session_res_admitted_list: + c.destroy(); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + c.destroy(); + break; + case types::target_to_source_transparent_container: + c.destroy >(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + default: + break; + } } -handov_type_e& ho_request_ies_o::value_c::handov_type() +void ho_request_ack_ies_o::value_c::set(types::options e) { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::pdu_session_res_admitted_list: + c.init(); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + c.init(); + break; + case types::target_to_source_transparent_container: + c.init >(); + break; + case types::crit_diagnostics: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + } } -cause_c& ho_request_ies_o::value_c::cause() +ho_request_ack_ies_o::value_c::value_c(const ho_request_ack_ies_o::value_c& other) { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); + type_ = other.type(); + switch (type_) { + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::pdu_session_res_admitted_list: + c.init(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + c.init(other.c.get()); + break; + case types::target_to_source_transparent_container: + c.init(other.c.get >()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + } } -ue_aggregate_maximum_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +ho_request_ack_ies_o::value_c& ho_request_ack_ies_o::value_c::operator=(const ho_request_ack_ies_o::value_c& other) { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::pdu_session_res_admitted_list: + c.set(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + c.set(other.c.get()); + break; + case types::target_to_source_transparent_container: + c.set(other.c.get >()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + } + + return *this; } -core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() +uint64_t& ho_request_ack_ies_o::value_c::amf_ue_ngap_id() { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() +uint64_t& ho_request_ack_ies_o::value_c::ran_ue_ngap_id() { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -security_context_s& ho_request_ies_o::value_c::security_context() +pdu_session_res_admitted_list_l& ho_request_ack_ies_o::value_c::pdu_session_res_admitted_list() { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::pdu_session_res_admitted_list, type_, "Value"); + return c.get(); } -new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() +pdu_session_res_failed_to_setup_list_ho_ack_l& +ho_request_ack_ies_o::value_c::pdu_session_res_failed_to_setup_list_ho_ack() { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::pdu_session_res_failed_to_setup_list_ho_ack, type_, "Value"); + return c.get(); } -unbounded_octstring& ho_request_ies_o::value_c::nasc() +unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); return c.get >(); } -pdu_session_res_setup_list_ho_req_l& ho_request_ies_o::value_c::pdu_session_res_setup_list_ho_req() +crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() { - assert_choice_type("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); } -allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() +const uint64_t& ho_request_ack_ies_o::value_c::amf_ue_ngap_id() const { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -trace_activation_s& ho_request_ies_o::value_c::trace_activation() +const uint64_t& ho_request_ack_ies_o::value_c::ran_ue_ngap_id() const { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() +const pdu_session_res_admitted_list_l& ho_request_ack_ies_o::value_c::pdu_session_res_admitted_list() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + assert_choice_type(types::pdu_session_res_admitted_list, type_, "Value"); + return c.get(); } -unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() +const pdu_session_res_failed_to_setup_list_ho_ack_l& +ho_request_ack_ies_o::value_c::pdu_session_res_failed_to_setup_list_ho_ack() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + assert_choice_type(types::pdu_session_res_failed_to_setup_list_ho_ack, type_, "Value"); + return c.get(); } -mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() +const unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() const { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); } -location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() +const crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() const { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); } -rrc_inactive_transition_report_request_e& ho_request_ies_o::value_c::rrc_inactive_transition_report_request() +void ho_request_ack_ies_o::value_c::to_json(json_writer& j) const { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_admitted_list: + j.start_array("PDUSessionResourceAdmittedList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + j.start_array("PDUSessionResourceFailedToSetupListHOAck"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::target_to_source_transparent_container: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + } + j.end_obj(); } -guami_s& ho_request_ies_o::value_c::guami() +SRSASN_CODE ho_request_ack_ies_o::value_c::pack(bit_ref& bref) const { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_admitted_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::target_to_source_transparent_container: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() +SRSASN_CODE ho_request_ack_ies_o::value_c::unpack(cbit_ref& bref) { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_admitted_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_ho_ack: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::target_to_source_transparent_container: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() const + +const char* ho_request_ack_ies_o::value_c::types_opts::to_string() const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceAdmittedList", + "PDUSessionResourceFailedToSetupListHOAck", + "OCTET STRING", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 6, value, "ho_request_ack_ies_o::value_c::types"); } -const handov_type_e& ho_request_ies_o::value_c::handov_type() const + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ho_request_ack_ies_container::ho_request_ack_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_admitted_list(53, crit_e::ignore), + pdu_session_res_failed_to_setup_list_ho_ack(56, crit_e::ignore), + target_to_source_transparent_container(106, crit_e::reject), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE ho_request_ack_ies_container::pack(bit_ref& bref) const { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 4; + nof_ies += pdu_session_res_failed_to_setup_list_ho_ack_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(pdu_session_res_admitted_list.pack(bref)); + if (pdu_session_res_failed_to_setup_list_ho_ack_present) { + HANDLE_CODE(pdu_session_res_failed_to_setup_list_ho_ack.pack(bref)); + } + HANDLE_CODE(target_to_source_transparent_container.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + + return SRSASN_SUCCESS; } -const cause_c& ho_request_ies_o::value_c::cause() const +SRSASN_CODE ho_request_ack_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 4; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 53: + nof_mandatory_ies--; + pdu_session_res_admitted_list.id = c.id; + pdu_session_res_admitted_list.crit = c.crit; + pdu_session_res_admitted_list.value = c.value.pdu_session_res_admitted_list(); + break; + case 56: + pdu_session_res_failed_to_setup_list_ho_ack_present = true; + pdu_session_res_failed_to_setup_list_ho_ack.id = c.id; + pdu_session_res_failed_to_setup_list_ho_ack.crit = c.crit; + pdu_session_res_failed_to_setup_list_ho_ack.value = c.value.pdu_session_res_failed_to_setup_list_ho_ack(); + break; + case 106: + nof_mandatory_ies--; + target_to_source_transparent_container.id = c.id; + target_to_source_transparent_container.crit = c.crit; + target_to_source_transparent_container.value = c.value.target_to_source_transparent_container(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const ue_aggregate_maximum_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +void ho_request_ack_ies_container::to_json(json_writer& j) const { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + pdu_session_res_admitted_list.to_json(j); + if (pdu_session_res_failed_to_setup_list_ho_ack_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_setup_list_ho_ack.to_json(j); + } + j.write_fieldname(""); + target_to_source_transparent_container.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); } -const core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() const + +// HandoverRequestAcknowledge ::= SEQUENCE +SRSASN_CODE ho_request_ack_s::pack(bit_ref& bref) const { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -const ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() const +SRSASN_CODE ho_request_ack_s::unpack(cbit_ref& bref) { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -const security_context_s& ho_request_ies_o::value_c::security_context() const +void ho_request_ack_s::to_json(json_writer& j) const { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -const new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() const + +// ConfidentialityProtectionResult ::= ENUMERATED +const char* confidentiality_protection_result_opts::to_string() const { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"performed", "not-performed"}; + return convert_enum_idx(options, 2, value, "confidentiality_protection_result_e"); } -const unbounded_octstring& ho_request_ies_o::value_c::nasc() const + +// IntegrityProtectionResult ::= ENUMERATED +const char* integrity_protection_result_opts::to_string() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + static const char* options[] = {"performed", "not-performed"}; + return convert_enum_idx(options, 2, value, "integrity_protection_result_e"); } -const pdu_session_res_setup_list_ho_req_l& ho_request_ies_o::value_c::pdu_session_res_setup_list_ho_req() const + +// QosFlowWithCauseItem ::= SEQUENCE +SRSASN_CODE qos_flow_with_cause_item_s::pack(bit_ref& bref) const { - assert_choice_type("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() const +SRSASN_CODE qos_flow_with_cause_item_s::unpack(cbit_ref& bref) { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const trace_activation_s& ho_request_ies_o::value_c::trace_activation() const +void qos_flow_with_cause_item_s::to_json(json_writer& j) const { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_fieldname("cause"); + cause.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() const + +// HandoverRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t ho_request_ack_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + static const uint32_t options[] = {153}; + return map_enum_number(options, 1, idx, "id"); } -const unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() const +bool ho_request_ack_transfer_ext_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + return 153 == id; } -const mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() const +crit_e ho_request_ack_transfer_ext_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); + if (id == 153) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -const location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() const +ho_request_ack_transfer_ext_ies_o::ext_c ho_request_ack_transfer_ext_ies_o::get_ext(const uint32_t& id) { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); + ext_c ret{}; + if (id != 153) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -const rrc_inactive_transition_report_request_e& -ho_request_ies_o::value_c::rrc_inactive_transition_report_request() const +presence_e ho_request_ack_transfer_ext_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); + if (id == 153) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -const guami_s& ho_request_ies_o::value_c::guami() const + +// Extension ::= OPEN TYPE +void ho_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.start_array("AdditionalDLUPTNLInformationForHOList"); + for (const auto& e1 : c) { + e1.to_json(j); + } + j.end_array(); + j.end_obj(); } -const redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() const +SRSASN_CODE ho_request_ack_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); + return SRSASN_SUCCESS; } -void ho_request_ies_o::value_c::destroy_() +SRSASN_CODE ho_request_ack_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - switch (type_) { - case types::cause: - c.destroy(); - break; - case types::ue_aggregate_maximum_bit_rate: - c.destroy(); - break; - case types::core_network_assist_info: - c.destroy(); - break; - case types::ue_security_cap: - c.destroy(); - break; - case types::security_context: - c.destroy(); - break; - case types::nasc: - c.destroy >(); - break; - case types::pdu_session_res_setup_list_ho_req: - c.destroy(); - break; - case types::allowed_nssai: - c.destroy(); - break; - case types::trace_activation: - c.destroy(); - break; - case types::masked_imeisv: - c.destroy >(); - break; - case types::source_to_target_transparent_container: - c.destroy >(); - break; - case types::mob_restrict_list: - c.destroy(); - break; - case types::location_report_request_type: - c.destroy(); - break; - case types::guami: - c.destroy(); - break; - default: - break; + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); + return SRSASN_SUCCESS; +} + +const char* ho_request_ack_transfer_ext_ies_o::ext_c::types_opts::to_string() const +{ + static const char* options[] = {"AdditionalDLUPTNLInformationForHOList"}; + return convert_enum_idx(options, 1, value, "ho_request_ack_transfer_ext_ies_o::ext_c::types"); +} + +// SecurityResult ::= SEQUENCE +SRSASN_CODE security_result_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(integrity_protection_result.pack(bref)); + HANDLE_CODE(confidentiality_protection_result.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } + + return SRSASN_SUCCESS; } -void ho_request_ies_o::value_c::set(types::options e) +SRSASN_CODE security_result_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::handov_type: - break; - case types::cause: - c.init(); - break; - case types::ue_aggregate_maximum_bit_rate: - c.init(); - break; - case types::core_network_assist_info: - c.init(); - break; - case types::ue_security_cap: - c.init(); - break; - case types::security_context: - c.init(); - break; - case types::new_security_context_ind: - break; - case types::nasc: - c.init >(); - break; - case types::pdu_session_res_setup_list_ho_req: - c.init(); - break; - case types::allowed_nssai: - c.init(); - break; - case types::trace_activation: - c.init(); - break; - case types::masked_imeisv: - c.init >(); - break; - case types::source_to_target_transparent_container: - c.init >(); - break; - case types::mob_restrict_list: - c.init(); - break; - case types::location_report_request_type: - c.init(); - break; - case types::rrc_inactive_transition_report_request: - break; - case types::guami: - c.init(); - break; - case types::redirection_voice_fallback: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(integrity_protection_result.unpack(bref)); + HANDLE_CODE(confidentiality_protection_result.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + + return SRSASN_SUCCESS; } -ho_request_ies_o::value_c::value_c(const ho_request_ies_o::value_c& other) +void security_result_s::to_json(json_writer& j) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::handov_type: - c.init(other.c.get()); - break; - case types::cause: - c.init(other.c.get()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.init(other.c.get()); - break; - case types::core_network_assist_info: - c.init(other.c.get()); - break; - case types::ue_security_cap: - c.init(other.c.get()); - break; - case types::security_context: - c.init(other.c.get()); - break; - case types::new_security_context_ind: - c.init(other.c.get()); - break; - case types::nasc: - c.init(other.c.get >()); - break; - case types::pdu_session_res_setup_list_ho_req: - c.init(other.c.get()); - break; - case types::allowed_nssai: - c.init(other.c.get()); - break; - case types::trace_activation: - c.init(other.c.get()); - break; - case types::masked_imeisv: - c.init(other.c.get >()); - break; - case types::source_to_target_transparent_container: - c.init(other.c.get >()); - break; - case types::mob_restrict_list: - c.init(other.c.get()); - break; - case types::location_report_request_type: - c.init(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.init(other.c.get()); - break; - case types::guami: - c.init(other.c.get()); - break; - case types::redirection_voice_fallback: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + j.start_obj(); + j.write_str("integrityProtectionResult", integrity_protection_result.to_string()); + j.write_str("confidentialityProtectionResult", confidentiality_protection_result.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } + j.end_obj(); } -ho_request_ies_o::value_c& ho_request_ies_o::value_c::operator=(const ho_request_ies_o::value_c& other) + +// HandoverRequestAcknowledgeTransfer ::= SEQUENCE +SRSASN_CODE ho_request_ack_transfer_s::pack(bit_ref& bref) const { - if (this == &other) { - return *this; + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(security_result_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); + HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + if (dlforwarding_up_tnl_info_present) { + HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::handov_type: - c.set(other.c.get()); - break; - case types::cause: - c.set(other.c.get()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.set(other.c.get()); - break; - case types::core_network_assist_info: - c.set(other.c.get()); - break; - case types::ue_security_cap: - c.set(other.c.get()); - break; - case types::security_context: - c.set(other.c.get()); - break; - case types::new_security_context_ind: - c.set(other.c.get()); - break; - case types::nasc: - c.set(other.c.get >()); - break; - case types::pdu_session_res_setup_list_ho_req: - c.set(other.c.get()); - break; - case types::allowed_nssai: - c.set(other.c.get()); - break; - case types::trace_activation: - c.set(other.c.get()); - break; - case types::masked_imeisv: - c.set(other.c.get >()); - break; - case types::source_to_target_transparent_container: - c.set(other.c.get >()); - break; - case types::mob_restrict_list: - c.set(other.c.get()); - break; - case types::location_report_request_type: - c.set(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.set(other.c.get()); - break; - case types::guami: - c.set(other.c.get()); - break; - case types::redirection_voice_fallback: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + if (security_result_present) { + HANDLE_CODE(security_result.pack(bref)); + } + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_setup_resp_list, 1, 64, true)); + if (qos_flow_failed_to_setup_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); + } + if (data_forwarding_resp_drb_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } - return *this; + return SRSASN_SUCCESS; } -void ho_request_ies_o::value_c::to_json(json_writer& j) const +SRSASN_CODE ho_request_ack_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(security_result_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); + HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + if (dlforwarding_up_tnl_info_present) { + HANDLE_CODE(dlforwarding_up_tnl_info.unpack(bref)); + } + if (security_result_present) { + HANDLE_CODE(security_result.unpack(bref)); + } + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_setup_resp_list, bref, 1, 64, true)); + if (qos_flow_failed_to_setup_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_setup_list, bref, 1, 64, true)); + } + if (data_forwarding_resp_drb_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(data_forwarding_resp_drb_list, bref, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } + + return SRSASN_SUCCESS; +} +void ho_request_ack_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("dL-NGU-UP-TNLInformation"); + dl_ngu_up_tnl_info.to_json(j); + if (dlforwarding_up_tnl_info_present) { + j.write_fieldname("dLForwardingUP-TNLInformation"); + dlforwarding_up_tnl_info.to_json(j); + } + if (security_result_present) { + j.write_fieldname("securityResult"); + security_result.to_json(j); + } + j.start_array("qosFlowSetupResponseList"); + for (const auto& e1 : qos_flow_setup_resp_list) { + e1.to_json(j); + } + j.end_array(); + if (qos_flow_failed_to_setup_list_present) { + j.start_array("qosFlowFailedToSetupList"); + for (const auto& e1 : qos_flow_failed_to_setup_list) { + e1.to_json(j); + } + j.end_array(); + } + if (data_forwarding_resp_drb_list_present) { + j.start_array("dataForwardingResponseDRBList"); + for (const auto& e1 : data_forwarding_resp_drb_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); +} + +// PDUSessionResourceItemHORqd ::= SEQUENCE +SRSASN_CODE pdu_session_res_item_ho_rqd_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(ho_required_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_item_ho_rqd_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(ho_required_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_item_ho_rqd_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("handoverRequiredTransfer", ho_required_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// TargeteNB-ID ::= SEQUENCE +SRSASN_CODE targetenb_id_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(global_enb_id.pack(bref)); + HANDLE_CODE(sel_eps_tai.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE targetenb_id_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(global_enb_id.unpack(bref)); + HANDLE_CODE(sel_eps_tai.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void targetenb_id_s::to_json(json_writer& j) const { j.start_obj(); + j.write_fieldname("globalENB-ID"); + global_enb_id.to_json(j); + j.write_fieldname("selected-EPS-TAI"); + sel_eps_tai.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// DirectForwardingPathAvailability ::= ENUMERATED +const char* direct_forwarding_path_availability_opts::to_string() const +{ + static const char* options[] = {"direct-path-available"}; + return convert_enum_idx(options, 1, value, "direct_forwarding_path_availability_e"); +} + +// TargetID ::= CHOICE +void target_id_c::destroy_() +{ switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::target_ran_node_id: + c.destroy(); break; - case types::handov_type: - j.write_str("HandoverType", c.get().to_string()); + case types::targetenb_id: + c.destroy(); break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::choice_exts: + c.destroy >(); break; - case types::ue_aggregate_maximum_bit_rate: - j.write_fieldname("UEAggregateMaximumBitRate"); - c.get().to_json(j); + default: break; - case types::core_network_assist_info: - j.write_fieldname("CoreNetworkAssistanceInformation"); - c.get().to_json(j); + } +} +void target_id_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::target_ran_node_id: + c.init(); break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); - c.get().to_json(j); + case types::targetenb_id: + c.init(); break; - case types::security_context: - j.write_fieldname("SecurityContext"); - c.get().to_json(j); + case types::choice_exts: + c.init >(); break; - case types::new_security_context_ind: - j.write_str("NewSecurityContextInd", "true"); + case types::nulltype: break; - case types::nasc: - j.write_str("OCTET STRING", c.get >().to_string()); + default: + log_invalid_choice_id(type_, "target_id_c"); + } +} +target_id_c::target_id_c(const target_id_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::target_ran_node_id: + c.init(other.c.get()); break; - case types::pdu_session_res_setup_list_ho_req: - j.start_array("PDUSessionResourceSetupListHOReq"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::targetenb_id: + c.init(other.c.get()); break; - case types::allowed_nssai: - j.start_array("AllowedNSSAI"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::choice_exts: + c.init(other.c.get >()); break; - case types::trace_activation: - j.write_fieldname("TraceActivation"); - c.get().to_json(j); + case types::nulltype: break; - case types::masked_imeisv: - j.write_str("BIT STRING", c.get >().to_string()); + default: + log_invalid_choice_id(type_, "target_id_c"); + } +} +target_id_c& target_id_c::operator=(const target_id_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::target_ran_node_id: + c.set(other.c.get()); break; - case types::source_to_target_transparent_container: - j.write_str("OCTET STRING", c.get >().to_string()); + case types::targetenb_id: + c.set(other.c.get()); break; - case types::mob_restrict_list: - j.write_fieldname("MobilityRestrictionList"); - c.get().to_json(j); + case types::choice_exts: + c.set(other.c.get >()); break; - case types::location_report_request_type: - j.write_fieldname("LocationReportingRequestType"); - c.get().to_json(j); + case types::nulltype: break; - case types::rrc_inactive_transition_report_request: - j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + default: + log_invalid_choice_id(type_, "target_id_c"); + } + + return *this; +} +target_ran_node_id_s& target_id_c::set_target_ran_node_id() +{ + set(types::target_ran_node_id); + return c.get(); +} +targetenb_id_s& target_id_c::set_targetenb_id() +{ + set(types::targetenb_id); + return c.get(); +} +protocol_ie_single_container_s& target_id_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void target_id_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::target_ran_node_id: + j.write_fieldname("targetRANNodeID"); + c.get().to_json(j); break; - case types::guami: - j.write_fieldname("GUAMI"); - c.get().to_json(j); + case types::targetenb_id: + j.write_fieldname("targeteNB-ID"); + c.get().to_json(j); break; - case types::redirection_voice_fallback: - j.write_str("RedirectionVoiceFallback", c.get().to_string()); + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); break; default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + log_invalid_choice_id(type_, "target_id_c"); } j.end_obj(); } -SRSASN_CODE ho_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE target_id_c::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); + type_.pack(bref); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::handov_type: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::security_context: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::new_security_context_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::nasc: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::pdu_session_res_setup_list_ho_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::allowed_nssai: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); - break; - case types::trace_activation: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::masked_imeisv: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::source_to_target_transparent_container: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::mob_restrict_list: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::location_report_request_type: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().pack(bref)); + case types::target_ran_node_id: + HANDLE_CODE(c.get().pack(bref)); break; - case types::guami: - HANDLE_CODE(c.get().pack(bref)); + case types::targetenb_id: + HANDLE_CODE(c.get().pack(bref)); break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().pack(bref)); + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + log_invalid_choice_id(type_, "target_id_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE target_id_c::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::handov_type: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::security_context: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::new_security_context_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::nasc: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::pdu_session_res_setup_list_ho_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::allowed_nssai: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); - break; - case types::trace_activation: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::masked_imeisv: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::source_to_target_transparent_container: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::mob_restrict_list: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::location_report_request_type: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().unpack(bref)); + case types::target_ran_node_id: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::guami: - HANDLE_CODE(c.get().unpack(bref)); + case types::targetenb_id: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().unpack(bref)); + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ho_request_ies_o::value_c"); + log_invalid_choice_id(type_, "target_id_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ho_request_ies_o::value_c::types_opts::to_string() const +const char* target_id_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "HandoverType", - "Cause", - "UEAggregateMaximumBitRate", - "CoreNetworkAssistanceInformation", - "UESecurityCapabilities", - "SecurityContext", - "NewSecurityContextInd", - "OCTET STRING", - "PDUSessionResourceSetupListHOReq", - "AllowedNSSAI", - "TraceActivation", - "BIT STRING", - "OCTET STRING", - "MobilityRestrictionList", - "LocationReportingRequestType", - "RRCInactiveTransitionReportRequest", - "GUAMI", - "RedirectionVoiceFallback"}; - return convert_enum_idx(options, 19, value, "ho_request_ies_o::value_c::types"); + static const char* options[] = {"targetRANNodeID", "targeteNB-ID", "choice-Extensions"}; + return convert_enum_idx(options, 3, value, "target_id_c::types"); } -uint8_t ho_request_ies_o::value_c::types_opts::to_number() const + +// HandoverRequiredIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ho_required_ies_o::idx_to_id(uint32_t idx) { - switch (value) { - case amf_ue_ngap_id: - return 0; - case core_network_assist_info: - return 2; - default: - invalid_enum_number(value, "ho_request_ies_o::value_c::types"); + static const uint32_t options[] = {10, 85, 29, 15, 105, 22, 61, 101}; + return map_enum_number(options, 8, idx, "id"); +} +bool ho_required_ies_o::is_id_valid(const uint32_t& id) +{ + static const uint32_t options[] = {10, 85, 29, 15, 105, 22, 61, 101}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - return 0; + return false; +} +crit_e ho_required_ies_o::get_crit(const uint32_t& id) +{ + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 29: + return crit_e::reject; + case 15: + return crit_e::ignore; + case 105: + return crit_e::reject; + case 22: + return crit_e::ignore; + case 61: + return crit_e::reject; + case 101: + return crit_e::reject; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} +ho_required_ies_o::value_c ho_required_ies_o::get_value(const uint32_t& id) +{ + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 29: + ret.set(value_c::types::handov_type); + break; + case 15: + ret.set(value_c::types::cause); + break; + case 105: + ret.set(value_c::types::target_id); + break; + case 22: + ret.set(value_c::types::direct_forwarding_path_availability); + break; + case 61: + ret.set(value_c::types::pdu_session_res_list_ho_rqd); + break; + case 101: + ret.set(value_c::types::source_to_target_transparent_container); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; +} +presence_e ho_required_ies_o::get_presence(const uint32_t& id) +{ + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 29: + return presence_e::mandatory; + case 15: + return presence_e::mandatory; + case 105: + return presence_e::mandatory; + case 22: + return presence_e::optional; + case 61: + return presence_e::mandatory; + case 101: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -template struct asn1::ngap_nr::protocol_ie_field_s; +// Value ::= OPEN TYPE +void ho_required_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::cause: + c.destroy(); + break; + case types::target_id: + c.destroy(); + break; + case types::pdu_session_res_list_ho_rqd: + c.destroy(); + break; + case types::source_to_target_transparent_container: + c.destroy >(); + break; + default: + break; + } +} +void ho_required_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::handov_type: + break; + case types::cause: + c.init(); + break; + case types::target_id: + c.init(); + break; + case types::direct_forwarding_path_availability: + break; + case types::pdu_session_res_list_ho_rqd: + c.init(); + break; + case types::source_to_target_transparent_container: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + } +} +ho_required_ies_o::value_c::value_c(const ho_required_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::handov_type: + c.init(other.c.get()); + break; + case types::cause: + c.init(other.c.get()); + break; + case types::target_id: + c.init(other.c.get()); + break; + case types::direct_forwarding_path_availability: + c.init(other.c.get()); + break; + case types::pdu_session_res_list_ho_rqd: + c.init(other.c.get()); + break; + case types::source_to_target_transparent_container: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + } +} +ho_required_ies_o::value_c& ho_required_ies_o::value_c::operator=(const ho_required_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::handov_type: + c.set(other.c.get()); + break; + case types::cause: + c.set(other.c.get()); + break; + case types::target_id: + c.set(other.c.get()); + break; + case types::direct_forwarding_path_availability: + c.set(other.c.get()); + break; + case types::pdu_session_res_list_ho_rqd: + c.set(other.c.get()); + break; + case types::source_to_target_transparent_container: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + } -ho_request_ies_container::ho_request_ies_container() : + return *this; +} +uint64_t& ho_required_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_required_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_required_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +cause_c& ho_required_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +target_id_c& ho_required_ies_o::value_c::target_id() +{ + assert_choice_type(types::target_id, type_, "Value"); + return c.get(); +} +direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() +{ + assert_choice_type(types::direct_forwarding_path_availability, type_, "Value"); + return c.get(); +} +pdu_session_res_list_ho_rqd_l& ho_required_ies_o::value_c::pdu_session_res_list_ho_rqd() +{ + assert_choice_type(types::pdu_session_res_list_ho_rqd, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +const uint64_t& ho_required_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_required_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_required_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const cause_c& ho_required_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const target_id_c& ho_required_ies_o::value_c::target_id() const +{ + assert_choice_type(types::target_id, type_, "Value"); + return c.get(); +} +const direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() const +{ + assert_choice_type(types::direct_forwarding_path_availability, type_, "Value"); + return c.get(); +} +const pdu_session_res_list_ho_rqd_l& ho_required_ies_o::value_c::pdu_session_res_list_ho_rqd() const +{ + assert_choice_type(types::pdu_session_res_list_ho_rqd, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() const +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +void ho_required_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::handov_type: + j.write_str("HandoverType", c.get().to_string()); + break; + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); + break; + case types::target_id: + j.write_fieldname("TargetID"); + c.get().to_json(j); + break; + case types::direct_forwarding_path_availability: + j.write_str("DirectForwardingPathAvailability", "direct-path-available"); + break; + case types::pdu_session_res_list_ho_rqd: + j.start_array("PDUSessionResourceListHORqd"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::source_to_target_transparent_container: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + } + j.end_obj(); +} +SRSASN_CODE ho_required_ies_o::value_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::handov_type: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::cause: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::target_id: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::direct_forwarding_path_availability: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_list_ho_rqd: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::source_to_target_transparent_container: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_required_ies_o::value_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::handov_type: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::target_id: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::direct_forwarding_path_availability: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_list_ho_rqd: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::source_to_target_transparent_container: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +const char* ho_required_ies_o::value_c::types_opts::to_string() const +{ + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "HandoverType", + "Cause", + "TargetID", + "DirectForwardingPathAvailability", + "PDUSessionResourceListHORqd", + "OCTET STRING"}; + return convert_enum_idx(options, 8, value, "ho_required_ies_o::value_c::types"); +} + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ho_required_ies_container::ho_required_ies_container() : amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), handov_type(29, crit_e::reject), cause(15, crit_e::ignore), - ue_aggregate_maximum_bit_rate(110, crit_e::reject), - core_network_assist_info(18, crit_e::ignore), - ue_security_cap(119, crit_e::reject), - security_context(93, crit_e::reject), - new_security_context_ind(41, crit_e::reject), - nasc(37, crit_e::reject), - pdu_session_res_setup_list_ho_req(73, crit_e::reject), - allowed_nssai(0, crit_e::reject), - trace_activation(108, crit_e::ignore), - masked_imeisv(34, crit_e::ignore), - source_to_target_transparent_container(101, crit_e::reject), - mob_restrict_list(36, crit_e::ignore), - location_report_request_type(33, crit_e::ignore), - rrc_inactive_transition_report_request(91, crit_e::ignore), - guami(28, crit_e::reject), - redirection_voice_fallback(146, crit_e::ignore) + target_id(105, crit_e::reject), + direct_forwarding_path_availability(22, crit_e::ignore), + pdu_session_res_list_ho_rqd(61, crit_e::reject), + source_to_target_transparent_container(101, crit_e::reject) {} -SRSASN_CODE ho_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ho_required_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 10; - nof_ies += core_network_assist_info_present ? 1 : 0; - nof_ies += new_security_context_ind_present ? 1 : 0; - nof_ies += nasc_present ? 1 : 0; - nof_ies += trace_activation_present ? 1 : 0; - nof_ies += masked_imeisv_present ? 1 : 0; - nof_ies += mob_restrict_list_present ? 1 : 0; - nof_ies += location_report_request_type_present ? 1 : 0; - nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; - nof_ies += redirection_voice_fallback_present ? 1 : 0; + uint32_t nof_ies = 7; + nof_ies += direct_forwarding_path_availability_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); HANDLE_CODE(handov_type.pack(bref)); HANDLE_CODE(cause.pack(bref)); - HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); - if (core_network_assist_info_present) { - HANDLE_CODE(core_network_assist_info.pack(bref)); - } - HANDLE_CODE(ue_security_cap.pack(bref)); - HANDLE_CODE(security_context.pack(bref)); - if (new_security_context_ind_present) { - HANDLE_CODE(new_security_context_ind.pack(bref)); - } - if (nasc_present) { - HANDLE_CODE(nasc.pack(bref)); - } - HANDLE_CODE(pdu_session_res_setup_list_ho_req.pack(bref)); - HANDLE_CODE(allowed_nssai.pack(bref)); - if (trace_activation_present) { - HANDLE_CODE(trace_activation.pack(bref)); - } - if (masked_imeisv_present) { - HANDLE_CODE(masked_imeisv.pack(bref)); + HANDLE_CODE(target_id.pack(bref)); + if (direct_forwarding_path_availability_present) { + HANDLE_CODE(direct_forwarding_path_availability.pack(bref)); } + HANDLE_CODE(pdu_session_res_list_ho_rqd.pack(bref)); HANDLE_CODE(source_to_target_transparent_container.pack(bref)); - if (mob_restrict_list_present) { - HANDLE_CODE(mob_restrict_list.pack(bref)); - } - if (location_report_request_type_present) { - HANDLE_CODE(location_report_request_type.pack(bref)); - } - if (rrc_inactive_transition_report_request_present) { - HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); - } - HANDLE_CODE(guami.pack(bref)); - if (redirection_voice_fallback_present) { - HANDLE_CODE(redirection_voice_fallback.pack(bref)); - } return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ho_required_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 10; + uint32_t nof_mandatory_ies = 7; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -17308,6 +18143,12 @@ SRSASN_CODE ho_request_ies_container::unpack(cbit_ref& bref) amf_ue_ngap_id.crit = c.crit; amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; case 29: nof_mandatory_ies--; handov_type.id = c.id; @@ -17320,101 +18161,29 @@ SRSASN_CODE ho_request_ies_container::unpack(cbit_ref& bref) cause.crit = c.crit; cause.value = c.value.cause(); break; - case 110: + case 105: nof_mandatory_ies--; - ue_aggregate_maximum_bit_rate.id = c.id; - ue_aggregate_maximum_bit_rate.crit = c.crit; - ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); + target_id.id = c.id; + target_id.crit = c.crit; + target_id.value = c.value.target_id(); break; - case 18: - core_network_assist_info_present = true; - core_network_assist_info.id = c.id; - core_network_assist_info.crit = c.crit; - core_network_assist_info.value = c.value.core_network_assist_info(); + case 22: + direct_forwarding_path_availability_present = true; + direct_forwarding_path_availability.id = c.id; + direct_forwarding_path_availability.crit = c.crit; + direct_forwarding_path_availability.value = c.value.direct_forwarding_path_availability(); break; - case 119: + case 61: nof_mandatory_ies--; - ue_security_cap.id = c.id; - ue_security_cap.crit = c.crit; - ue_security_cap.value = c.value.ue_security_cap(); + pdu_session_res_list_ho_rqd.id = c.id; + pdu_session_res_list_ho_rqd.crit = c.crit; + pdu_session_res_list_ho_rqd.value = c.value.pdu_session_res_list_ho_rqd(); break; - case 93: + case 101: nof_mandatory_ies--; - security_context.id = c.id; - security_context.crit = c.crit; - security_context.value = c.value.security_context(); - break; - case 41: - new_security_context_ind_present = true; - new_security_context_ind.id = c.id; - new_security_context_ind.crit = c.crit; - new_security_context_ind.value = c.value.new_security_context_ind(); - break; - case 37: - nasc_present = true; - nasc.id = c.id; - nasc.crit = c.crit; - nasc.value = c.value.nasc(); - break; - case 73: - nof_mandatory_ies--; - pdu_session_res_setup_list_ho_req.id = c.id; - pdu_session_res_setup_list_ho_req.crit = c.crit; - pdu_session_res_setup_list_ho_req.value = c.value.pdu_session_res_setup_list_ho_req(); - break; - case 0: - nof_mandatory_ies--; - allowed_nssai.id = c.id; - allowed_nssai.crit = c.crit; - allowed_nssai.value = c.value.allowed_nssai(); - break; - case 108: - trace_activation_present = true; - trace_activation.id = c.id; - trace_activation.crit = c.crit; - trace_activation.value = c.value.trace_activation(); - break; - case 34: - masked_imeisv_present = true; - masked_imeisv.id = c.id; - masked_imeisv.crit = c.crit; - masked_imeisv.value = c.value.masked_imeisv(); - break; - case 101: - nof_mandatory_ies--; - source_to_target_transparent_container.id = c.id; - source_to_target_transparent_container.crit = c.crit; - source_to_target_transparent_container.value = c.value.source_to_target_transparent_container(); - break; - case 36: - mob_restrict_list_present = true; - mob_restrict_list.id = c.id; - mob_restrict_list.crit = c.crit; - mob_restrict_list.value = c.value.mob_restrict_list(); - break; - case 33: - location_report_request_type_present = true; - location_report_request_type.id = c.id; - location_report_request_type.crit = c.crit; - location_report_request_type.value = c.value.location_report_request_type(); - break; - case 91: - rrc_inactive_transition_report_request_present = true; - rrc_inactive_transition_report_request.id = c.id; - rrc_inactive_transition_report_request.crit = c.crit; - rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); - break; - case 28: - nof_mandatory_ies--; - guami.id = c.id; - guami.crit = c.crit; - guami.value = c.value.guami(); - break; - case 146: - redirection_voice_fallback_present = true; - redirection_voice_fallback.id = c.id; - redirection_voice_fallback.crit = c.crit; - redirection_voice_fallback.value = c.value.redirection_voice_fallback(); + source_to_target_transparent_container.id = c.id; + source_to_target_transparent_container.crit = c.crit; + source_to_target_transparent_container.value = c.value.source_to_target_transparent_container(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -17428,84 +18197,46 @@ SRSASN_CODE ho_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ho_request_ies_container::to_json(json_writer& j) const +void ho_required_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); handov_type.to_json(j); j.write_fieldname(""); cause.to_json(j); j.write_fieldname(""); - ue_aggregate_maximum_bit_rate.to_json(j); - if (core_network_assist_info_present) { - j.write_fieldname(""); - core_network_assist_info.to_json(j); - } - j.write_fieldname(""); - ue_security_cap.to_json(j); - j.write_fieldname(""); - security_context.to_json(j); - if (new_security_context_ind_present) { - j.write_fieldname(""); - new_security_context_ind.to_json(j); - } - if (nasc_present) { + target_id.to_json(j); + if (direct_forwarding_path_availability_present) { j.write_fieldname(""); - nasc.to_json(j); + direct_forwarding_path_availability.to_json(j); } j.write_fieldname(""); - pdu_session_res_setup_list_ho_req.to_json(j); - j.write_fieldname(""); - allowed_nssai.to_json(j); - if (trace_activation_present) { - j.write_fieldname(""); - trace_activation.to_json(j); - } - if (masked_imeisv_present) { - j.write_fieldname(""); - masked_imeisv.to_json(j); - } + pdu_session_res_list_ho_rqd.to_json(j); j.write_fieldname(""); source_to_target_transparent_container.to_json(j); - if (mob_restrict_list_present) { - j.write_fieldname(""); - mob_restrict_list.to_json(j); - } - if (location_report_request_type_present) { - j.write_fieldname(""); - location_report_request_type.to_json(j); - } - if (rrc_inactive_transition_report_request_present) { - j.write_fieldname(""); - rrc_inactive_transition_report_request.to_json(j); - } - j.write_fieldname(""); - guami.to_json(j); - if (redirection_voice_fallback_present) { - j.write_fieldname(""); - redirection_voice_fallback.to_json(j); - } j.end_obj(); } -// HandoverRequest ::= SEQUENCE -SRSASN_CODE ho_request_s::pack(bit_ref& bref) const +// HandoverRequired ::= SEQUENCE +SRSASN_CODE ho_required_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_required_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ho_request_s::to_json(json_writer& j) const +void ho_required_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -17513,53 +18244,43 @@ void ho_request_s::to_json(json_writer& j) const j.end_obj(); } -// ConfidentialityProtectionResult ::= ENUMERATED -std::string confidentiality_protection_result_opts::to_string() const -{ - static const char* options[] = {"performed", "not-performed"}; - return convert_enum_idx(options, 2, value, "confidentiality_protection_result_e"); -} - -// IntegrityProtectionResult ::= ENUMERATED -std::string integrity_protection_result_opts::to_string() const -{ - static const char* options[] = {"performed", "not-performed"}; - return convert_enum_idx(options, 2, value, "integrity_protection_result_e"); -} - -// QosFlowWithCauseItem ::= SEQUENCE -SRSASN_CODE qos_flow_with_cause_item_s::pack(bit_ref& bref) const +// HandoverRequiredTransfer ::= SEQUENCE +SRSASN_CODE ho_required_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); + HANDLE_CODE(bref.pack(direct_forwarding_path_availability_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(cause.pack(bref)); + if (direct_forwarding_path_availability_present) { + HANDLE_CODE(direct_forwarding_path_availability.pack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_with_cause_item_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_required_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(direct_forwarding_path_availability_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(cause.unpack(bref)); + if (direct_forwarding_path_availability_present) { + HANDLE_CODE(direct_forwarding_path_availability.unpack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_with_cause_item_s::to_json(json_writer& j) const +void ho_required_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - j.write_fieldname("cause"); - cause.to_json(j); + if (direct_forwarding_path_availability_present) { + j.write_str("directForwardingPathAvailability", "direct-path-available"); + } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -17567,103 +18288,48 @@ void qos_flow_with_cause_item_s::to_json(json_writer& j) const j.end_obj(); } -// HandoverRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t ho_request_ack_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {153}; - return map_enum_number(options, 1, idx, "id"); -} -bool ho_request_ack_transfer_ext_ies_o::is_id_valid(const uint32_t& id) -{ - return 153 == id; -} -crit_e ho_request_ack_transfer_ext_ies_o::get_crit(const uint32_t& id) -{ - if (id == 153) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -ho_request_ack_transfer_ext_ies_o::ext_c ho_request_ack_transfer_ext_ies_o::get_ext(const uint32_t& id) -{ - ext_c ret{}; - if (id != 153) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e ho_request_ack_transfer_ext_ies_o::get_presence(const uint32_t& id) -{ - if (id == 153) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} - -// Extension ::= OPEN TYPE -void ho_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("AdditionalDLUPTNLInformationForHOList"); - for (const auto& e1 : c) { - e1.to_json(j); - } - j.end_array(); - j.end_obj(); -} -SRSASN_CODE ho_request_ack_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_request_ack_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); - return SRSASN_SUCCESS; -} - -std::string ho_request_ack_transfer_ext_ies_o::ext_c::types_opts::to_string() const -{ - static const char* options[] = {"AdditionalDLUPTNLInformationForHOList"}; - return convert_enum_idx(options, 1, value, "ho_request_ack_transfer_ext_ies_o::ext_c::types"); -} - -// SecurityResult ::= SEQUENCE -SRSASN_CODE security_result_s::pack(bit_ref& bref) const +// HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE ho_res_alloc_unsuccessful_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); + HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(integrity_protection_result.pack(bref)); - HANDLE_CODE(confidentiality_protection_result.pack(bref)); + HANDLE_CODE(cause.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE security_result_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_res_alloc_unsuccessful_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(integrity_protection_result.unpack(bref)); - HANDLE_CODE(confidentiality_protection_result.unpack(bref)); + HANDLE_CODE(cause.unpack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.unpack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void security_result_s::to_json(json_writer& j) const +void ho_res_alloc_unsuccessful_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("integrityProtectionResult", integrity_protection_result.to_string()); - j.write_str("confidentialityProtectionResult", confidentiality_protection_result.to_string()); + j.write_fieldname("cause"); + cause.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname("criticalityDiagnostics"); + crit_diagnostics.to_json(j); + } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -17671,145 +18337,76 @@ void security_result_s::to_json(json_writer& j) const j.end_obj(); } -// HandoverRequestAcknowledgeTransfer ::= SEQUENCE -SRSASN_CODE ho_request_ack_transfer_s::pack(bit_ref& bref) const +// RecommendedRANNodeItem ::= SEQUENCE +SRSASN_CODE recommended_ran_node_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dlforwarding_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(security_result_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); - HANDLE_CODE(bref.pack(data_forwarding_resp_drb_list_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); - if (dlforwarding_up_tnl_info_present) { - HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); - } - if (security_result_present) { - HANDLE_CODE(security_result.pack(bref)); - } - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_setup_resp_list, 1, 64, true)); - if (qos_flow_failed_to_setup_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); - } - if (data_forwarding_resp_drb_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, data_forwarding_resp_drb_list, 1, 32, true)); - } + HANDLE_CODE(amf_paging_target.pack(bref)); if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ack_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE recommended_ran_node_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dlforwarding_up_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(security_result_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); - HANDLE_CODE(bref.unpack(data_forwarding_resp_drb_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); - if (dlforwarding_up_tnl_info_present) { - HANDLE_CODE(dlforwarding_up_tnl_info.unpack(bref)); - } - if (security_result_present) { - HANDLE_CODE(security_result.unpack(bref)); - } - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_setup_resp_list, bref, 1, 64, true)); - if (qos_flow_failed_to_setup_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_setup_list, bref, 1, 64, true)); - } - if (data_forwarding_resp_drb_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(data_forwarding_resp_drb_list, bref, 1, 32, true)); - } + HANDLE_CODE(amf_paging_target.unpack(bref)); if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void ho_request_ack_transfer_s::to_json(json_writer& j) const +void recommended_ran_node_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("dL-NGU-UP-TNLInformation"); - dl_ngu_up_tnl_info.to_json(j); - if (dlforwarding_up_tnl_info_present) { - j.write_fieldname("dLForwardingUP-TNLInformation"); - dlforwarding_up_tnl_info.to_json(j); - } - if (security_result_present) { - j.write_fieldname("securityResult"); - security_result.to_json(j); - } - j.start_array("qosFlowSetupResponseList"); - for (const auto& e1 : qos_flow_setup_resp_list) { - e1.to_json(j); - } - j.end_array(); - if (qos_flow_failed_to_setup_list_present) { - j.start_array("qosFlowFailedToSetupList"); - for (const auto& e1 : qos_flow_failed_to_setup_list) { - e1.to_json(j); - } - j.end_array(); - } - if (data_forwarding_resp_drb_list_present) { - j.start_array("dataForwardingResponseDRBList"); - for (const auto& e1 : data_forwarding_resp_drb_list) { - e1.to_json(j); - } - j.end_array(); - } + j.write_fieldname("aMFPagingTarget"); + amf_paging_target.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } j.end_obj(); } -// HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE ho_res_alloc_unsuccessful_transfer_s::pack(bit_ref& bref) const +// RecommendedRANNodesForPaging ::= SEQUENCE +SRSASN_CODE recommended_ran_nodes_for_paging_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(cause.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } + HANDLE_CODE(pack_dyn_seq_of(bref, recommended_ran_node_list, 1, 16, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ho_res_alloc_unsuccessful_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE recommended_ran_nodes_for_paging_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(cause.unpack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.unpack(bref)); - } + HANDLE_CODE(unpack_dyn_seq_of(recommended_ran_node_list, bref, 1, 16, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void ho_res_alloc_unsuccessful_transfer_s::to_json(json_writer& j) const +void recommended_ran_nodes_for_paging_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname("criticalityDiagnostics"); - crit_diagnostics.to_json(j); + j.start_array("recommendedRANNodeList"); + for (const auto& e1 : recommended_ran_node_list) { + e1.to_json(j); } + j.end_array(); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -17817,38 +18414,40 @@ void ho_res_alloc_unsuccessful_transfer_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceAdmittedItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_admitted_item_s::pack(bit_ref& bref) const +// InfoOnRecommendedCellsAndRANNodesForPaging ::= SEQUENCE +SRSASN_CODE info_on_recommended_cells_and_ran_nodes_for_paging_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_request_ack_transfer.pack(bref)); + HANDLE_CODE(recommended_cells_for_paging.pack(bref)); + HANDLE_CODE(recommend_ran_nodes_for_paging.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_admitted_item_s::unpack(cbit_ref& bref) +SRSASN_CODE info_on_recommended_cells_and_ran_nodes_for_paging_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_request_ack_transfer.unpack(bref)); + HANDLE_CODE(recommended_cells_for_paging.unpack(bref)); + HANDLE_CODE(recommend_ran_nodes_for_paging.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_admitted_item_s::to_json(json_writer& j) const +void info_on_recommended_cells_and_ran_nodes_for_paging_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("handoverRequestAcknowledgeTransfer", ho_request_ack_transfer.to_string()); + j.write_fieldname("recommendedCellsForPaging"); + recommended_cells_for_paging.to_json(j); + j.write_fieldname("recommendRANNodesForPaging"); + recommend_ran_nodes_for_paging.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -17856,38 +18455,38 @@ void pdu_session_res_admitted_item_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceFailedToSetupItemHOAck ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_setup_item_ho_ack_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToSetupItemCxtFail ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_res_alloc_unsuccessful_transfer.pack(bref)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_failed_to_setup_item_ho_ack_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_res_alloc_unsuccessful_transfer.unpack(bref)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_failed_to_setup_item_ho_ack_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_setup_item_cxt_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - j.write_str("handoverResourceAllocationUnsuccessfulTransfer", ho_res_alloc_unsuccessful_transfer.to_string()); + j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -17895,15 +18494,15 @@ void pdu_session_res_failed_to_setup_item_ho_ack_s::to_json(json_writer& j) cons j.end_obj(); } -// HandoverRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ho_request_ack_ies_o::idx_to_id(uint32_t idx) +// InitialContextSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t init_context_setup_fail_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 53, 56, 106, 19}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {10, 85, 132, 15, 19}; + return map_enum_number(options, 5, idx, "id"); } -bool ho_request_ack_ies_o::is_id_valid(const uint32_t& id) +bool init_context_setup_fail_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 53, 56, 106, 19}; + static const uint32_t options[] = {10, 85, 132, 15, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -17911,19 +18510,17 @@ bool ho_request_ack_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ho_request_ack_ies_o::get_crit(const uint32_t& id) +crit_e init_context_setup_fail_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::ignore; case 85: return crit_e::ignore; - case 53: + case 132: return crit_e::ignore; - case 56: + case 15: return crit_e::ignore; - case 106: - return crit_e::reject; case 19: return crit_e::ignore; default: @@ -17931,7 +18528,7 @@ crit_e ho_request_ack_ies_o::get_crit(const uint32_t& id) } return {}; } -ho_request_ack_ies_o::value_c ho_request_ack_ies_o::get_value(const uint32_t& id) +init_context_setup_fail_ies_o::value_c init_context_setup_fail_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -17941,14 +18538,11 @@ ho_request_ack_ies_o::value_c ho_request_ack_ies_o::get_value(const uint32_t& id case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 53: - ret.set(value_c::types::pdu_session_res_admitted_list); - break; - case 56: - ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ho_ack); + case 132: + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_fail); break; - case 106: - ret.set(value_c::types::target_to_source_transparent_container); + case 15: + ret.set(value_c::types::cause); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -17958,18 +18552,16 @@ ho_request_ack_ies_o::value_c ho_request_ack_ies_o::get_value(const uint32_t& id } return ret; } -presence_e ho_request_ack_ies_o::get_presence(const uint32_t& id) +presence_e init_context_setup_fail_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 53: - return presence_e::mandatory; - case 56: + case 132: return presence_e::optional; - case 106: + case 15: return presence_e::mandatory; case 19: return presence_e::optional; @@ -17980,115 +18572,47 @@ presence_e ho_request_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_request_ack_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_request_ack_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_admitted_list_l& ho_request_ack_ies_o::value_c::pdu_session_res_admitted_list() -{ - assert_choice_type("PDUSessionResourceAdmittedList", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_setup_list_ho_ack_l& -ho_request_ack_ies_o::value_c::pdu_session_res_failed_to_setup_list_ho_ack() -{ - assert_choice_type("PDUSessionResourceFailedToSetupListHOAck", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() +void init_context_setup_fail_ies_o::value_c::destroy_() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + switch (type_) { + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + c.destroy(); + break; + case types::cause: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + default: + break; + } } -crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() +void init_context_setup_fail_ies_o::value_c::set(types::options e) { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + c.init(); + break; + case types::cause: + c.init(); + break; + case types::crit_diagnostics: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + } } -const uint64_t& ho_request_ack_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_request_ack_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_admitted_list_l& ho_request_ack_ies_o::value_c::pdu_session_res_admitted_list() const -{ - assert_choice_type("PDUSessionResourceAdmittedList", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_setup_list_ho_ack_l& -ho_request_ack_ies_o::value_c::pdu_session_res_failed_to_setup_list_ho_ack() const -{ - assert_choice_type("PDUSessionResourceFailedToSetupListHOAck", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ho_request_ack_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::pdu_session_res_admitted_list: - c.destroy(); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - c.destroy(); - break; - case types::target_to_source_transparent_container: - c.destroy >(); - break; - case types::crit_diagnostics: - c.destroy(); - break; - default: - break; - } -} -void ho_request_ack_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::pdu_session_res_admitted_list: - c.init(); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - c.init(); - break; - case types::target_to_source_transparent_container: - c.init >(); - break; - case types::crit_diagnostics: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); - } -} -ho_request_ack_ies_o::value_c::value_c(const ho_request_ack_ies_o::value_c& other) +init_context_setup_fail_ies_o::value_c::value_c(const init_context_setup_fail_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -18098,14 +18622,11 @@ ho_request_ack_ies_o::value_c::value_c(const ho_request_ack_ies_o::value_c& othe case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_admitted_list: - c.init(other.c.get()); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - c.init(other.c.get()); + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + c.init(other.c.get()); break; - case types::target_to_source_transparent_container: - c.init(other.c.get >()); + case types::cause: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -18113,10 +18634,11 @@ ho_request_ack_ies_o::value_c::value_c(const ho_request_ack_ies_o::value_c& othe case types::nulltype: break; default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); } } -ho_request_ack_ies_o::value_c& ho_request_ack_ies_o::value_c::operator=(const ho_request_ack_ies_o::value_c& other) +init_context_setup_fail_ies_o::value_c& +init_context_setup_fail_ies_o::value_c::operator=(const init_context_setup_fail_ies_o::value_c& other) { if (this == &other) { return *this; @@ -18129,14 +18651,11 @@ ho_request_ack_ies_o::value_c& ho_request_ack_ies_o::value_c::operator=(const ho case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_admitted_list: - c.set(other.c.get()); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - c.set(other.c.get()); + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + c.set(other.c.get()); break; - case types::target_to_source_transparent_container: - c.set(other.c.get >()); + case types::cause: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -18144,12 +18663,64 @@ ho_request_ack_ies_o::value_c& ho_request_ack_ies_o::value_c::operator=(const ho case types::nulltype: break; default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); } return *this; } -void ho_request_ack_ies_o::value_c::to_json(json_writer& j) const +uint64_t& init_context_setup_fail_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& init_context_setup_fail_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_setup_list_cxt_fail_l& +init_context_setup_fail_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_fail() +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_cxt_fail, type_, "Value"); + return c.get(); +} +cause_c& init_context_setup_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_fail_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_fail_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_setup_list_cxt_fail_l& +init_context_setup_fail_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_fail() const +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_cxt_fail, type_, "Value"); + return c.get(); +} +const cause_c& init_context_setup_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void init_context_setup_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -18159,33 +18730,27 @@ void ho_request_ack_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::pdu_session_res_admitted_list: - j.start_array("PDUSessionResourceAdmittedList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - j.start_array("PDUSessionResourceFailedToSetupListHOAck"); - for (const auto& e1 : c.get()) { + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + j.start_array("PDUSessionResourceFailedToSetupListCxtFail"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::target_to_source_transparent_container: - j.write_str("OCTET STRING", c.get >().to_string()); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ho_request_ack_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_fail_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -18195,25 +18760,22 @@ SRSASN_CODE ho_request_ack_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_admitted_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::target_to_source_transparent_container: - HANDLE_CODE(c.get >().pack(bref)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ack_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -18223,75 +18785,69 @@ SRSASN_CODE ho_request_ack_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_admitted_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::pdu_session_res_failed_to_setup_list_ho_ack: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::pdu_session_res_failed_to_setup_list_cxt_fail: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::target_to_source_transparent_container: - HANDLE_CODE(c.get >().unpack(bref)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ho_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ho_request_ack_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "PDUSessionResourceAdmittedList", - "PDUSessionResourceFailedToSetupListHOAck", - "OCTET STRING", + "PDUSessionResourceFailedToSetupListCxtFail", + "Cause", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 6, value, "ho_request_ack_ies_o::value_c::types"); + return convert_enum_idx(options, 5, value, "init_context_setup_fail_ies_o::value_c::types"); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ho_request_ack_ies_container::ho_request_ack_ies_container() : +init_context_setup_fail_ies_container::init_context_setup_fail_ies_container() : amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_admitted_list(53, crit_e::ignore), - pdu_session_res_failed_to_setup_list_ho_ack(56, crit_e::ignore), - target_to_source_transparent_container(106, crit_e::reject), + pdu_session_res_failed_to_setup_list_cxt_fail(132, crit_e::ignore), + cause(15, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE ho_request_ack_ies_container::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_fail_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 4; - nof_ies += pdu_session_res_failed_to_setup_list_ho_ack_present ? 1 : 0; + uint32_t nof_ies = 3; + nof_ies += pdu_session_res_failed_to_setup_list_cxt_fail_present ? 1 : 0; nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_admitted_list.pack(bref)); - if (pdu_session_res_failed_to_setup_list_ho_ack_present) { - HANDLE_CODE(pdu_session_res_failed_to_setup_list_ho_ack.pack(bref)); + if (pdu_session_res_failed_to_setup_list_cxt_fail_present) { + HANDLE_CODE(pdu_session_res_failed_to_setup_list_cxt_fail.pack(bref)); } - HANDLE_CODE(target_to_source_transparent_container.pack(bref)); + HANDLE_CODE(cause.pack(bref)); if (crit_diagnostics_present) { HANDLE_CODE(crit_diagnostics.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ack_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_fail_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 4; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -18306,23 +18862,17 @@ SRSASN_CODE ho_request_ack_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 53: - nof_mandatory_ies--; - pdu_session_res_admitted_list.id = c.id; - pdu_session_res_admitted_list.crit = c.crit; - pdu_session_res_admitted_list.value = c.value.pdu_session_res_admitted_list(); - break; - case 56: - pdu_session_res_failed_to_setup_list_ho_ack_present = true; - pdu_session_res_failed_to_setup_list_ho_ack.id = c.id; - pdu_session_res_failed_to_setup_list_ho_ack.crit = c.crit; - pdu_session_res_failed_to_setup_list_ho_ack.value = c.value.pdu_session_res_failed_to_setup_list_ho_ack(); + case 132: + pdu_session_res_failed_to_setup_list_cxt_fail_present = true; + pdu_session_res_failed_to_setup_list_cxt_fail.id = c.id; + pdu_session_res_failed_to_setup_list_cxt_fail.crit = c.crit; + pdu_session_res_failed_to_setup_list_cxt_fail.value = c.value.pdu_session_res_failed_to_setup_list_cxt_fail(); break; - case 106: + case 15: nof_mandatory_ies--; - target_to_source_transparent_container.id = c.id; - target_to_source_transparent_container.crit = c.crit; - target_to_source_transparent_container.value = c.value.target_to_source_transparent_container(); + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); break; case 19: crit_diagnostics_present = true; @@ -18342,21 +18892,19 @@ SRSASN_CODE ho_request_ack_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ho_request_ack_ies_container::to_json(json_writer& j) const +void init_context_setup_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - pdu_session_res_admitted_list.to_json(j); - if (pdu_session_res_failed_to_setup_list_ho_ack_present) { + if (pdu_session_res_failed_to_setup_list_cxt_fail_present) { j.write_fieldname(""); - pdu_session_res_failed_to_setup_list_ho_ack.to_json(j); + pdu_session_res_failed_to_setup_list_cxt_fail.to_json(j); } j.write_fieldname(""); - target_to_source_transparent_container.to_json(j); + cause.to_json(j); if (crit_diagnostics_present) { j.write_fieldname(""); crit_diagnostics.to_json(j); @@ -18364,22 +18912,22 @@ void ho_request_ack_ies_container::to_json(json_writer& j) const j.end_obj(); } -// HandoverRequestAcknowledge ::= SEQUENCE -SRSASN_CODE ho_request_ack_s::pack(bit_ref& bref) const +// InitialContextSetupFailure ::= SEQUENCE +SRSASN_CODE init_context_setup_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ack_s::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ho_request_ack_s::to_json(json_writer& j) const +void init_context_setup_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -18387,50 +18935,53 @@ void ho_request_ack_s::to_json(json_writer& j) const j.end_obj(); } -// DirectForwardingPathAvailability ::= ENUMERATED -std::string direct_forwarding_path_availability_opts::to_string() const -{ - static const char* options[] = {"direct-path-available"}; - return convert_enum_idx(options, 1, value, "direct_forwarding_path_availability_e"); -} - -// HandoverRequiredTransfer ::= SEQUENCE -SRSASN_CODE ho_required_transfer_s::pack(bit_ref& bref) const +// PDUSessionResourceSetupItemCxtReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(direct_forwarding_path_availability_present, 1)); + HANDLE_CODE(bref.pack(nas_pdu_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - if (direct_forwarding_path_availability_present) { - HANDLE_CODE(direct_forwarding_path_availability.pack(bref)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.pack(bref)); } + HANDLE_CODE(s_nssai.pack(bref)); + HANDLE_CODE(pdu_session_res_setup_request_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ho_required_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(direct_forwarding_path_availability_present, 1)); + HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - if (direct_forwarding_path_availability_present) { - HANDLE_CODE(direct_forwarding_path_availability.unpack(bref)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.unpack(bref)); } + HANDLE_CODE(s_nssai.unpack(bref)); + HANDLE_CODE(pdu_session_res_setup_request_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void ho_required_transfer_s::to_json(json_writer& j) const +void pdu_session_res_setup_item_cxt_req_s::to_json(json_writer& j) const { j.start_obj(); - if (direct_forwarding_path_availability_present) { - j.write_str("directForwardingPathAvailability", "direct-path-available"); + j.write_int("pDUSessionID", pdu_session_id); + if (nas_pdu_present) { + j.write_str("nAS-PDU", nas_pdu.to_string()); } + j.write_fieldname("s-NSSAI"); + s_nssai.to_json(j); + j.write_str("pDUSessionResourceSetupRequestTransfer", pdu_session_res_setup_request_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -18438,38 +18989,54 @@ void ho_required_transfer_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceItemHORqd ::= SEQUENCE -SRSASN_CODE pdu_session_res_item_ho_rqd_s::pack(bit_ref& bref) const +// UERadioCapabilityForPaging ::= SEQUENCE +SRSASN_CODE ue_radio_cap_for_paging_s::pack(bit_ref& bref) const { bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_nr_present, 1)); + HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_eutra_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_required_transfer.pack(bref)); + if (ueradio_cap_for_paging_of_nr_present) { + HANDLE_CODE(ueradio_cap_for_paging_of_nr.pack(bref)); + } + if (ueradio_cap_for_paging_of_eutra_present) { + HANDLE_CODE(ueradio_cap_for_paging_of_eutra.pack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_item_ho_rqd_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_for_paging_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_nr_present, 1)); + HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_eutra_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(ho_required_transfer.unpack(bref)); + if (ueradio_cap_for_paging_of_nr_present) { + HANDLE_CODE(ueradio_cap_for_paging_of_nr.unpack(bref)); + } + if (ueradio_cap_for_paging_of_eutra_present) { + HANDLE_CODE(ueradio_cap_for_paging_of_eutra.unpack(bref)); + } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_item_ho_rqd_s::to_json(json_writer& j) const +void ue_radio_cap_for_paging_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("handoverRequiredTransfer", ho_required_transfer.to_string()); + if (ueradio_cap_for_paging_of_nr_present) { + j.write_str("uERadioCapabilityForPagingOfNR", ueradio_cap_for_paging_of_nr.to_string()); + } + if (ueradio_cap_for_paging_of_eutra_present) { + j.write_str("uERadioCapabilityForPagingOfEUTRA", ueradio_cap_for_paging_of_eutra.to_string()); + } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -18477,287 +19044,184 @@ void pdu_session_res_item_ho_rqd_s::to_json(json_writer& j) const j.end_obj(); } -// TargeteNB-ID ::= SEQUENCE -SRSASN_CODE targetenb_id_s::pack(bit_ref& bref) const +// InitialContextSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t init_context_setup_request_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(global_enb_id.pack(bref)); - HANDLE_CODE(sel_eps_tai.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {10, 85, 48, 110, 18, 28, 71, 0, 119, 94, + 108, 36, 117, 31, 34, 38, 24, 91, 118, 146}; + return map_enum_number(options, 20, idx, "id"); } -SRSASN_CODE targetenb_id_s::unpack(cbit_ref& bref) +bool init_context_setup_request_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(global_enb_id.unpack(bref)); - HANDLE_CODE(sel_eps_tai.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + static const uint32_t options[] = {10, 85, 48, 110, 18, 28, 71, 0, 119, 94, + 108, 36, 117, 31, 34, 38, 24, 91, 118, 146}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -void targetenb_id_s::to_json(json_writer& j) const +crit_e init_context_setup_request_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - j.write_fieldname("globalENB-ID"); - global_enb_id.to_json(j); - j.write_fieldname("selected-EPS-TAI"); - sel_eps_tai.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 48: + return crit_e::reject; + case 110: + return crit_e::reject; + case 18: + return crit_e::ignore; + case 28: + return crit_e::reject; + case 71: + return crit_e::reject; + case 0: + return crit_e::reject; + case 119: + return crit_e::reject; + case 94: + return crit_e::reject; + case 108: + return crit_e::ignore; + case 36: + return crit_e::ignore; + case 117: + return crit_e::ignore; + case 31: + return crit_e::ignore; + case 34: + return crit_e::ignore; + case 38: + return crit_e::ignore; + case 24: + return crit_e::reject; + case 91: + return crit_e::ignore; + case 118: + return crit_e::ignore; + case 146: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } - -// TargetID ::= CHOICE -void target_id_c::destroy_() +init_context_setup_request_ies_o::value_c init_context_setup_request_ies_o::get_value(const uint32_t& id) { - switch (type_) { - case types::target_ran_node_id: - c.destroy(); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case types::targetenb_id: - c.destroy(); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case types::choice_exts: - c.destroy >(); + case 48: + ret.set(value_c::types::old_amf); break; - default: + case 110: + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; - } -} -void target_id_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::target_ran_node_id: - c.init(); + case 18: + ret.set(value_c::types::core_network_assist_info); break; - case types::targetenb_id: - c.init(); + case 28: + ret.set(value_c::types::guami); break; - case types::choice_exts: - c.init >(); + case 71: + ret.set(value_c::types::pdu_session_res_setup_list_cxt_req); break; - case types::nulltype: + case 0: + ret.set(value_c::types::allowed_nssai); break; - default: - log_invalid_choice_id(type_, "target_id_c"); - } -} -target_id_c::target_id_c(const target_id_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::target_ran_node_id: - c.init(other.c.get()); + case 119: + ret.set(value_c::types::ue_security_cap); break; - case types::targetenb_id: - c.init(other.c.get()); + case 94: + ret.set(value_c::types::security_key); break; - case types::choice_exts: - c.init(other.c.get >()); + case 108: + ret.set(value_c::types::trace_activation); break; - case types::nulltype: + case 36: + ret.set(value_c::types::mob_restrict_list); break; - default: - log_invalid_choice_id(type_, "target_id_c"); - } -} -target_id_c& target_id_c::operator=(const target_id_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::target_ran_node_id: - c.set(other.c.get()); - break; - case types::targetenb_id: - c.set(other.c.get()); - break; - case types::choice_exts: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "target_id_c"); - } - - return *this; -} -void target_id_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::target_ran_node_id: - j.write_fieldname("targetRANNodeID"); - c.get().to_json(j); - break; - case types::targetenb_id: - j.write_fieldname("targeteNB-ID"); - c.get().to_json(j); - break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; - default: - log_invalid_choice_id(type_, "target_id_c"); - } - j.end_obj(); -} -SRSASN_CODE target_id_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::target_ran_node_id: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::targetenb_id: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "target_id_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE target_id_c::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::target_ran_node_id: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::targetenb_id: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "target_id_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string target_id_c::types_opts::to_string() const -{ - static const char* options[] = {"targetRANNodeID", "targeteNB-ID", "choice-Extensions"}; - return convert_enum_idx(options, 3, value, "target_id_c::types"); -} - -// HandoverRequiredIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ho_required_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 85, 29, 15, 105, 22, 61, 101}; - return map_enum_number(options, 8, idx, "id"); -} -bool ho_required_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {10, 85, 29, 15, 105, 22, 61, 101}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e ho_required_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 29: - return crit_e::reject; - case 15: - return crit_e::ignore; - case 105: - return crit_e::reject; - case 22: - return crit_e::ignore; - case 61: - return crit_e::reject; - case 101: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} -ho_required_ies_o::value_c ho_required_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); + case 117: + ret.set(value_c::types::ue_radio_cap); break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); + case 31: + ret.set(value_c::types::idx_to_rfsp); break; - case 29: - ret.set(value_c::types::handov_type); + case 34: + ret.set(value_c::types::masked_imeisv); break; - case 15: - ret.set(value_c::types::cause); + case 38: + ret.set(value_c::types::nas_pdu); break; - case 105: - ret.set(value_c::types::target_id); + case 24: + ret.set(value_c::types::emergency_fallback_ind); break; - case 22: - ret.set(value_c::types::direct_forwarding_path_availability); + case 91: + ret.set(value_c::types::rrc_inactive_transition_report_request); break; - case 61: - ret.set(value_c::types::pdu_session_res_list_ho_rqd); + case 118: + ret.set(value_c::types::ue_radio_cap_for_paging); break; - case 101: - ret.set(value_c::types::source_to_target_transparent_container); + case 146: + ret.set(value_c::types::redirection_voice_fallback); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ho_required_ies_o::get_presence(const uint32_t& id) +presence_e init_context_setup_request_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 29: - return presence_e::mandatory; - case 15: - return presence_e::mandatory; - case 105: + case 48: + return presence_e::optional; + case 110: + return presence_e::conditional; + case 18: + return presence_e::optional; + case 28: return presence_e::mandatory; - case 22: + case 71: return presence_e::optional; - case 61: + case 0: return presence_e::mandatory; - case 101: + case 119: + return presence_e::mandatory; + case 94: return presence_e::mandatory; + case 108: + return presence_e::optional; + case 36: + return presence_e::optional; + case 117: + return presence_e::optional; + case 31: + return presence_e::optional; + case 34: + return presence_e::optional; + case 38: + return presence_e::optional; + case 24: + return presence_e::optional; + case 91: + return presence_e::optional; + case 118: + return presence_e::optional; + case 146: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -18765,106 +19229,59 @@ presence_e ho_required_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_required_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_required_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -handov_type_e& ho_required_ies_o::value_c::handov_type() -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_required_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -target_id_c& ho_required_ies_o::value_c::target_id() -{ - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); -} -direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() -{ - assert_choice_type("DirectForwardingPathAvailability", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_list_ho_rqd_l& ho_required_ies_o::value_c::pdu_session_res_list_ho_rqd() -{ - assert_choice_type("PDUSessionResourceListHORqd", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ho_required_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_required_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const handov_type_e& ho_required_ies_o::value_c::handov_type() const -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_required_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const target_id_c& ho_required_ies_o::value_c::target_id() const -{ - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); -} -const direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() const -{ - assert_choice_type("DirectForwardingPathAvailability", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_list_ho_rqd_l& ho_required_ies_o::value_c::pdu_session_res_list_ho_rqd() const -{ - assert_choice_type("PDUSessionResourceListHORqd", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -void ho_required_ies_o::value_c::destroy_() +void init_context_setup_request_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::old_amf: + c.destroy >(); break; - case types::target_id: - c.destroy(); + case types::ue_aggregate_maximum_bit_rate: + c.destroy(); break; - case types::pdu_session_res_list_ho_rqd: - c.destroy(); + case types::core_network_assist_info: + c.destroy(); break; - case types::source_to_target_transparent_container: + case types::guami: + c.destroy(); + break; + case types::pdu_session_res_setup_list_cxt_req: + c.destroy(); + break; + case types::allowed_nssai: + c.destroy(); + break; + case types::ue_security_cap: + c.destroy(); + break; + case types::security_key: + c.destroy >(); + break; + case types::trace_activation: + c.destroy(); + break; + case types::mob_restrict_list: + c.destroy(); + break; + case types::ue_radio_cap: + c.destroy >(); + break; + case types::masked_imeisv: + c.destroy >(); + break; + case types::nas_pdu: c.destroy >(); break; + case types::emergency_fallback_ind: + c.destroy(); + break; + case types::ue_radio_cap_for_paging: + c.destroy(); + break; default: break; } } -void ho_required_ies_o::value_c::set(types::options e) +void init_context_setup_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -18873,29 +19290,64 @@ void ho_required_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::handov_type: + case types::old_amf: + c.init >(); break; - case types::cause: - c.init(); + case types::ue_aggregate_maximum_bit_rate: + c.init(); break; - case types::target_id: - c.init(); + case types::core_network_assist_info: + c.init(); break; - case types::direct_forwarding_path_availability: + case types::guami: + c.init(); break; - case types::pdu_session_res_list_ho_rqd: - c.init(); + case types::pdu_session_res_setup_list_cxt_req: + c.init(); break; - case types::source_to_target_transparent_container: + case types::allowed_nssai: + c.init(); + break; + case types::ue_security_cap: + c.init(); + break; + case types::security_key: + c.init >(); + break; + case types::trace_activation: + c.init(); + break; + case types::mob_restrict_list: + c.init(); + break; + case types::ue_radio_cap: + c.init >(); + break; + case types::idx_to_rfsp: + break; + case types::masked_imeisv: + c.init >(); + break; + case types::nas_pdu: c.init >(); break; + case types::emergency_fallback_ind: + c.init(); + break; + case types::rrc_inactive_transition_report_request: + break; + case types::ue_radio_cap_for_paging: + c.init(); + break; + case types::redirection_voice_fallback: + break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); } } -ho_required_ies_o::value_c::value_c(const ho_required_ies_o::value_c& other) +init_context_setup_request_ies_o::value_c::value_c(const init_context_setup_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -18905,31 +19357,68 @@ ho_required_ies_o::value_c::value_c(const ho_required_ies_o::value_c& other) case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::handov_type: - c.init(other.c.get()); + case types::old_amf: + c.init(other.c.get >()); break; - case types::cause: - c.init(other.c.get()); + case types::ue_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; - case types::target_id: - c.init(other.c.get()); + case types::core_network_assist_info: + c.init(other.c.get()); break; - case types::direct_forwarding_path_availability: - c.init(other.c.get()); + case types::guami: + c.init(other.c.get()); break; - case types::pdu_session_res_list_ho_rqd: - c.init(other.c.get()); + case types::pdu_session_res_setup_list_cxt_req: + c.init(other.c.get()); break; - case types::source_to_target_transparent_container: + case types::allowed_nssai: + c.init(other.c.get()); + break; + case types::ue_security_cap: + c.init(other.c.get()); + break; + case types::security_key: + c.init(other.c.get >()); + break; + case types::trace_activation: + c.init(other.c.get()); + break; + case types::mob_restrict_list: + c.init(other.c.get()); + break; + case types::ue_radio_cap: + c.init(other.c.get >()); + break; + case types::idx_to_rfsp: + c.init(other.c.get()); + break; + case types::masked_imeisv: + c.init(other.c.get >()); + break; + case types::nas_pdu: c.init(other.c.get >()); break; + case types::emergency_fallback_ind: + c.init(other.c.get()); + break; + case types::rrc_inactive_transition_report_request: + c.init(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.init(other.c.get()); + break; + case types::redirection_voice_fallback: + c.init(other.c.get()); + break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); } } -ho_required_ies_o::value_c& ho_required_ies_o::value_c::operator=(const ho_required_ies_o::value_c& other) +init_context_setup_request_ies_o::value_c& +init_context_setup_request_ies_o::value_c::operator=(const init_context_setup_request_ies_o::value_c& other) { if (this == &other) { return *this; @@ -18942,72 +19431,357 @@ ho_required_ies_o::value_c& ho_required_ies_o::value_c::operator=(const ho_requi case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::handov_type: - c.set(other.c.get()); + case types::old_amf: + c.set(other.c.get >()); break; - case types::cause: - c.set(other.c.get()); + case types::ue_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; - case types::target_id: - c.set(other.c.get()); + case types::core_network_assist_info: + c.set(other.c.get()); break; - case types::direct_forwarding_path_availability: - c.set(other.c.get()); + case types::guami: + c.set(other.c.get()); break; - case types::pdu_session_res_list_ho_rqd: - c.set(other.c.get()); + case types::pdu_session_res_setup_list_cxt_req: + c.set(other.c.get()); break; - case types::source_to_target_transparent_container: - c.set(other.c.get >()); + case types::allowed_nssai: + c.set(other.c.get()); break; - case types::nulltype: + case types::ue_security_cap: + c.set(other.c.get()); break; - default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); - } - - return *this; -} -void ho_required_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::security_key: + c.set(other.c.get >()); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::trace_activation: + c.set(other.c.get()); break; - case types::handov_type: - j.write_str("HandoverType", c.get().to_string()); + case types::mob_restrict_list: + c.set(other.c.get()); break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::ue_radio_cap: + c.set(other.c.get >()); break; - case types::target_id: - j.write_fieldname("TargetID"); - c.get().to_json(j); + case types::idx_to_rfsp: + c.set(other.c.get()); break; - case types::direct_forwarding_path_availability: - j.write_str("DirectForwardingPathAvailability", "direct-path-available"); + case types::masked_imeisv: + c.set(other.c.get >()); break; - case types::pdu_session_res_list_ho_rqd: - j.start_array("PDUSessionResourceListHORqd"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::nas_pdu: + c.set(other.c.get >()); break; - case types::source_to_target_transparent_container: - j.write_str("OCTET STRING", c.get >().to_string()); + case types::emergency_fallback_ind: + c.set(other.c.get()); break; - default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); - } + case types::rrc_inactive_transition_report_request: + c.set(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.set(other.c.get()); + break; + case types::redirection_voice_fallback: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); + } + + return *this; +} +uint64_t& init_context_setup_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& init_context_setup_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +printable_string<1, 150, true, true>& init_context_setup_request_ies_o::value_c::old_amf() +{ + assert_choice_type(types::old_amf, type_, "Value"); + return c.get >(); +} +ue_aggregate_maximum_bit_rate_s& init_context_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +core_network_assist_info_s& init_context_setup_request_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +guami_s& init_context_setup_request_ies_o::value_c::guami() +{ + assert_choice_type(types::guami, type_, "Value"); + return c.get(); +} +pdu_session_res_setup_list_cxt_req_l& init_context_setup_request_ies_o::value_c::pdu_session_res_setup_list_cxt_req() +{ + assert_choice_type(types::pdu_session_res_setup_list_cxt_req, type_, "Value"); + return c.get(); +} +allowed_nssai_l& init_context_setup_request_ies_o::value_c::allowed_nssai() +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +mob_restrict_list_s& init_context_setup_request_ies_o::value_c::mob_restrict_list() +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +uint16_t& init_context_setup_request_ies_o::value_c::idx_to_rfsp() +{ + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); +} +fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +unbounded_octstring& init_context_setup_request_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +emergency_fallback_ind_s& init_context_setup_request_ies_o::value_c::emergency_fallback_ind() +{ + assert_choice_type(types::emergency_fallback_ind, type_, "Value"); + return c.get(); +} +rrc_inactive_transition_report_request_e& +init_context_setup_request_ies_o::value_c::rrc_inactive_transition_report_request() +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +ue_radio_cap_for_paging_s& init_context_setup_request_ies_o::value_c::ue_radio_cap_for_paging() +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& init_context_setup_request_ies_o::value_c::old_amf() const +{ + assert_choice_type(types::old_amf, type_, "Value"); + return c.get >(); +} +const ue_aggregate_maximum_bit_rate_s& init_context_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const core_network_assist_info_s& init_context_setup_request_ies_o::value_c::core_network_assist_info() const +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +const guami_s& init_context_setup_request_ies_o::value_c::guami() const +{ + assert_choice_type(types::guami, type_, "Value"); + return c.get(); +} +const pdu_session_res_setup_list_cxt_req_l& +init_context_setup_request_ies_o::value_c::pdu_session_res_setup_list_cxt_req() const +{ + assert_choice_type(types::pdu_session_res_setup_list_cxt_req, type_, "Value"); + return c.get(); +} +const allowed_nssai_l& init_context_setup_request_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() const +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +const trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const mob_restrict_list_s& init_context_setup_request_ies_o::value_c::mob_restrict_list() const +{ + assert_choice_type(types::mob_restrict_list, type_, "Value"); + return c.get(); +} +const unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const uint16_t& init_context_setup_request_ies_o::value_c::idx_to_rfsp() const +{ + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); +} +const fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() const +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& init_context_setup_request_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const emergency_fallback_ind_s& init_context_setup_request_ies_o::value_c::emergency_fallback_ind() const +{ + assert_choice_type(types::emergency_fallback_ind, type_, "Value"); + return c.get(); +} +const rrc_inactive_transition_report_request_e& +init_context_setup_request_ies_o::value_c::rrc_inactive_transition_report_request() const +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +const ue_radio_cap_for_paging_s& init_context_setup_request_ies_o::value_c::ue_radio_cap_for_paging() const +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +const redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() const +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +void init_context_setup_request_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::old_amf: + j.write_str("PrintableString", c.get >().to_string()); + break; + case types::ue_aggregate_maximum_bit_rate: + j.write_fieldname("UEAggregateMaximumBitRate"); + c.get().to_json(j); + break; + case types::core_network_assist_info: + j.write_fieldname("CoreNetworkAssistanceInformation"); + c.get().to_json(j); + break; + case types::guami: + j.write_fieldname("GUAMI"); + c.get().to_json(j); + break; + case types::pdu_session_res_setup_list_cxt_req: + j.start_array("PDUSessionResourceSetupListCxtReq"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::allowed_nssai: + j.start_array("AllowedNSSAI"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); + c.get().to_json(j); + break; + case types::security_key: + j.write_str("BIT STRING", c.get >().to_string()); + break; + case types::trace_activation: + j.write_fieldname("TraceActivation"); + c.get().to_json(j); + break; + case types::mob_restrict_list: + j.write_fieldname("MobilityRestrictionList"); + c.get().to_json(j); + break; + case types::ue_radio_cap: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::idx_to_rfsp: + j.write_int("INTEGER (1..256,...)", c.get()); + break; + case types::masked_imeisv: + j.write_str("BIT STRING", c.get >().to_string()); + break; + case types::nas_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::emergency_fallback_ind: + j.write_fieldname("EmergencyFallbackIndicator"); + c.get().to_json(j); + break; + case types::rrc_inactive_transition_report_request: + j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + break; + case types::ue_radio_cap_for_paging: + j.write_fieldname("UERadioCapabilityForPaging"); + c.get().to_json(j); + break; + case types::redirection_voice_fallback: + j.write_str("RedirectionVoiceFallback", c.get().to_string()); + break; + default: + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); + } j.end_obj(); } -SRSASN_CODE ho_required_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -19017,31 +19791,67 @@ SRSASN_CODE ho_required_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::handov_type: - HANDLE_CODE(c.get().pack(bref)); + case types::old_amf: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; - case types::target_id: - HANDLE_CODE(c.get().pack(bref)); + case types::core_network_assist_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::direct_forwarding_path_availability: - HANDLE_CODE(c.get().pack(bref)); + case types::guami: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_list_ho_rqd: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::pdu_session_res_setup_list_cxt_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::source_to_target_transparent_container: + case types::allowed_nssai: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); + break; + case types::ue_security_cap: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::security_key: + HANDLE_CODE((c.get >().pack(bref))); + break; + case types::trace_activation: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::mob_restrict_list: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_radio_cap: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::idx_to_rfsp: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); + break; + case types::masked_imeisv: + HANDLE_CODE((c.get >().pack(bref))); + break; + case types::nas_pdu: HANDLE_CODE(c.get >().pack(bref)); break; + case types::emergency_fallback_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().pack(bref)); + break; default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ho_required_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -19051,84 +19861,195 @@ SRSASN_CODE ho_required_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::handov_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::old_amf: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::target_id: - HANDLE_CODE(c.get().unpack(bref)); + case types::core_network_assist_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::direct_forwarding_path_availability: - HANDLE_CODE(c.get().unpack(bref)); + case types::guami: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_list_ho_rqd: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::pdu_session_res_setup_list_cxt_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::source_to_target_transparent_container: + case types::allowed_nssai: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); + break; + case types::ue_security_cap: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::security_key: + HANDLE_CODE((c.get >().unpack(bref))); + break; + case types::trace_activation: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::mob_restrict_list: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_radio_cap: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::idx_to_rfsp: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); + break; + case types::masked_imeisv: + HANDLE_CODE((c.get >().unpack(bref))); + break; + case types::nas_pdu: HANDLE_CODE(c.get >().unpack(bref)); break; + case types::emergency_fallback_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().unpack(bref)); + break; default: - log_invalid_choice_id(type_, "ho_required_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ho_required_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "HandoverType", - "Cause", - "TargetID", - "DirectForwardingPathAvailability", - "PDUSessionResourceListHORqd", - "OCTET STRING"}; - return convert_enum_idx(options, 8, value, "ho_required_ies_o::value_c::types"); + "PrintableString", + "UEAggregateMaximumBitRate", + "CoreNetworkAssistanceInformation", + "GUAMI", + "PDUSessionResourceSetupListCxtReq", + "AllowedNSSAI", + "UESecurityCapabilities", + "BIT STRING", + "TraceActivation", + "MobilityRestrictionList", + "OCTET STRING", + "INTEGER (1..256,...)", + "BIT STRING", + "OCTET STRING", + "EmergencyFallbackIndicator", + "RRCInactiveTransitionReportRequest", + "UERadioCapabilityForPaging", + "RedirectionVoiceFallback"}; + return convert_enum_idx(options, 20, value, "init_context_setup_request_ies_o::value_c::types"); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ho_required_ies_container::ho_required_ies_container() : +init_context_setup_request_ies_container::init_context_setup_request_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - handov_type(29, crit_e::reject), - cause(15, crit_e::ignore), - target_id(105, crit_e::reject), - direct_forwarding_path_availability(22, crit_e::ignore), - pdu_session_res_list_ho_rqd(61, crit_e::reject), - source_to_target_transparent_container(101, crit_e::reject) + old_amf(48, crit_e::reject), + ue_aggregate_maximum_bit_rate(110, crit_e::reject), + core_network_assist_info(18, crit_e::ignore), + guami(28, crit_e::reject), + pdu_session_res_setup_list_cxt_req(71, crit_e::reject), + allowed_nssai(0, crit_e::reject), + ue_security_cap(119, crit_e::reject), + security_key(94, crit_e::reject), + trace_activation(108, crit_e::ignore), + mob_restrict_list(36, crit_e::ignore), + ue_radio_cap(117, crit_e::ignore), + idx_to_rfsp(31, crit_e::ignore), + masked_imeisv(34, crit_e::ignore), + nas_pdu(38, crit_e::ignore), + emergency_fallback_ind(24, crit_e::reject), + rrc_inactive_transition_report_request(91, crit_e::ignore), + ue_radio_cap_for_paging(118, crit_e::ignore), + redirection_voice_fallback(146, crit_e::ignore) {} -SRSASN_CODE ho_required_ies_container::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_request_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 7; - nof_ies += direct_forwarding_path_availability_present ? 1 : 0; + uint32_t nof_ies = 6; + nof_ies += old_amf_present ? 1 : 0; + nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; + nof_ies += core_network_assist_info_present ? 1 : 0; + nof_ies += pdu_session_res_setup_list_cxt_req_present ? 1 : 0; + nof_ies += trace_activation_present ? 1 : 0; + nof_ies += mob_restrict_list_present ? 1 : 0; + nof_ies += ue_radio_cap_present ? 1 : 0; + nof_ies += idx_to_rfsp_present ? 1 : 0; + nof_ies += masked_imeisv_present ? 1 : 0; + nof_ies += nas_pdu_present ? 1 : 0; + nof_ies += emergency_fallback_ind_present ? 1 : 0; + nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; + nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; + nof_ies += redirection_voice_fallback_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(handov_type.pack(bref)); - HANDLE_CODE(cause.pack(bref)); - HANDLE_CODE(target_id.pack(bref)); - if (direct_forwarding_path_availability_present) { - HANDLE_CODE(direct_forwarding_path_availability.pack(bref)); + if (old_amf_present) { + HANDLE_CODE(old_amf.pack(bref)); + } + if (ue_aggregate_maximum_bit_rate_present) { + HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); + } + if (core_network_assist_info_present) { + HANDLE_CODE(core_network_assist_info.pack(bref)); + } + HANDLE_CODE(guami.pack(bref)); + if (pdu_session_res_setup_list_cxt_req_present) { + HANDLE_CODE(pdu_session_res_setup_list_cxt_req.pack(bref)); + } + HANDLE_CODE(allowed_nssai.pack(bref)); + HANDLE_CODE(ue_security_cap.pack(bref)); + HANDLE_CODE(security_key.pack(bref)); + if (trace_activation_present) { + HANDLE_CODE(trace_activation.pack(bref)); + } + if (mob_restrict_list_present) { + HANDLE_CODE(mob_restrict_list.pack(bref)); + } + if (ue_radio_cap_present) { + HANDLE_CODE(ue_radio_cap.pack(bref)); + } + if (idx_to_rfsp_present) { + HANDLE_CODE(idx_to_rfsp.pack(bref)); + } + if (masked_imeisv_present) { + HANDLE_CODE(masked_imeisv.pack(bref)); + } + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.pack(bref)); + } + if (emergency_fallback_ind_present) { + HANDLE_CODE(emergency_fallback_ind.pack(bref)); + } + if (rrc_inactive_transition_report_request_present) { + HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); + } + if (ue_radio_cap_for_paging_present) { + HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); + } + if (redirection_voice_fallback_present) { + HANDLE_CODE(redirection_voice_fallback.pack(bref)); } - HANDLE_CODE(pdu_session_res_list_ho_rqd.pack(bref)); - HANDLE_CODE(source_to_target_transparent_container.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ho_required_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 7; + uint32_t nof_mandatory_ies = 6; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -19143,41 +20064,113 @@ SRSASN_CODE ho_required_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 29: - nof_mandatory_ies--; - handov_type.id = c.id; - handov_type.crit = c.crit; - handov_type.value = c.value.handov_type(); + case 48: + old_amf_present = true; + old_amf.id = c.id; + old_amf.crit = c.crit; + old_amf.value = c.value.old_amf(); break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); + case 110: + ue_aggregate_maximum_bit_rate_present = true; + ue_aggregate_maximum_bit_rate.id = c.id; + ue_aggregate_maximum_bit_rate.crit = c.crit; + ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); break; - case 105: + case 18: + core_network_assist_info_present = true; + core_network_assist_info.id = c.id; + core_network_assist_info.crit = c.crit; + core_network_assist_info.value = c.value.core_network_assist_info(); + break; + case 28: nof_mandatory_ies--; - target_id.id = c.id; - target_id.crit = c.crit; - target_id.value = c.value.target_id(); + guami.id = c.id; + guami.crit = c.crit; + guami.value = c.value.guami(); break; - case 22: - direct_forwarding_path_availability_present = true; - direct_forwarding_path_availability.id = c.id; - direct_forwarding_path_availability.crit = c.crit; - direct_forwarding_path_availability.value = c.value.direct_forwarding_path_availability(); + case 71: + pdu_session_res_setup_list_cxt_req_present = true; + pdu_session_res_setup_list_cxt_req.id = c.id; + pdu_session_res_setup_list_cxt_req.crit = c.crit; + pdu_session_res_setup_list_cxt_req.value = c.value.pdu_session_res_setup_list_cxt_req(); break; - case 61: + case 0: nof_mandatory_ies--; - pdu_session_res_list_ho_rqd.id = c.id; - pdu_session_res_list_ho_rqd.crit = c.crit; - pdu_session_res_list_ho_rqd.value = c.value.pdu_session_res_list_ho_rqd(); + allowed_nssai.id = c.id; + allowed_nssai.crit = c.crit; + allowed_nssai.value = c.value.allowed_nssai(); break; - case 101: + case 119: nof_mandatory_ies--; - source_to_target_transparent_container.id = c.id; - source_to_target_transparent_container.crit = c.crit; - source_to_target_transparent_container.value = c.value.source_to_target_transparent_container(); + ue_security_cap.id = c.id; + ue_security_cap.crit = c.crit; + ue_security_cap.value = c.value.ue_security_cap(); + break; + case 94: + nof_mandatory_ies--; + security_key.id = c.id; + security_key.crit = c.crit; + security_key.value = c.value.security_key(); + break; + case 108: + trace_activation_present = true; + trace_activation.id = c.id; + trace_activation.crit = c.crit; + trace_activation.value = c.value.trace_activation(); + break; + case 36: + mob_restrict_list_present = true; + mob_restrict_list.id = c.id; + mob_restrict_list.crit = c.crit; + mob_restrict_list.value = c.value.mob_restrict_list(); + break; + case 117: + ue_radio_cap_present = true; + ue_radio_cap.id = c.id; + ue_radio_cap.crit = c.crit; + ue_radio_cap.value = c.value.ue_radio_cap(); + break; + case 31: + idx_to_rfsp_present = true; + idx_to_rfsp.id = c.id; + idx_to_rfsp.crit = c.crit; + idx_to_rfsp.value = c.value.idx_to_rfsp(); + break; + case 34: + masked_imeisv_present = true; + masked_imeisv.id = c.id; + masked_imeisv.crit = c.crit; + masked_imeisv.value = c.value.masked_imeisv(); + break; + case 38: + nas_pdu_present = true; + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); + break; + case 24: + emergency_fallback_ind_present = true; + emergency_fallback_ind.id = c.id; + emergency_fallback_ind.crit = c.crit; + emergency_fallback_ind.value = c.value.emergency_fallback_ind(); + break; + case 91: + rrc_inactive_transition_report_request_present = true; + rrc_inactive_transition_report_request.id = c.id; + rrc_inactive_transition_report_request.crit = c.crit; + rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); + break; + case 118: + ue_radio_cap_for_paging_present = true; + ue_radio_cap_for_paging.id = c.id; + ue_radio_cap_for_paging.crit = c.crit; + ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); + break; + case 146: + redirection_voice_fallback_present = true; + redirection_voice_fallback.id = c.id; + redirection_voice_fallback.crit = c.crit; + redirection_voice_fallback.value = c.value.redirection_voice_fallback(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -19191,213 +20184,135 @@ SRSASN_CODE ho_required_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ho_required_ies_container::to_json(json_writer& j) const +void init_context_setup_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); + if (old_amf_present) { + j.write_fieldname(""); + old_amf.to_json(j); + } + if (ue_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + ue_aggregate_maximum_bit_rate.to_json(j); + } + if (core_network_assist_info_present) { + j.write_fieldname(""); + core_network_assist_info.to_json(j); + } j.write_fieldname(""); - handov_type.to_json(j); - j.write_fieldname(""); - cause.to_json(j); - j.write_fieldname(""); - target_id.to_json(j); - if (direct_forwarding_path_availability_present) { + guami.to_json(j); + if (pdu_session_res_setup_list_cxt_req_present) { j.write_fieldname(""); - direct_forwarding_path_availability.to_json(j); + pdu_session_res_setup_list_cxt_req.to_json(j); } j.write_fieldname(""); - pdu_session_res_list_ho_rqd.to_json(j); + allowed_nssai.to_json(j); j.write_fieldname(""); - source_to_target_transparent_container.to_json(j); - j.end_obj(); -} - -// HandoverRequired ::= SEQUENCE -SRSASN_CODE ho_required_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_required_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_required_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -// RecommendedRANNodeItem ::= SEQUENCE -SRSASN_CODE recommended_ran_node_item_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(amf_paging_target.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + ue_security_cap.to_json(j); + j.write_fieldname(""); + security_key.to_json(j); + if (trace_activation_present) { + j.write_fieldname(""); + trace_activation.to_json(j); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE recommended_ran_node_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(amf_paging_target.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + if (mob_restrict_list_present) { + j.write_fieldname(""); + mob_restrict_list.to_json(j); } - - return SRSASN_SUCCESS; -} -void recommended_ran_node_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("aMFPagingTarget"); - amf_paging_target.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + if (ue_radio_cap_present) { + j.write_fieldname(""); + ue_radio_cap.to_json(j); } - j.end_obj(); -} - -// RecommendedRANNodesForPaging ::= SEQUENCE -SRSASN_CODE recommended_ran_nodes_for_paging_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_dyn_seq_of(bref, recommended_ran_node_list, 1, 16, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + if (idx_to_rfsp_present) { + j.write_fieldname(""); + idx_to_rfsp.to_json(j); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE recommended_ran_nodes_for_paging_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_dyn_seq_of(recommended_ran_node_list, bref, 1, 16, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + if (masked_imeisv_present) { + j.write_fieldname(""); + masked_imeisv.to_json(j); } - - return SRSASN_SUCCESS; -} -void recommended_ran_nodes_for_paging_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("recommendedRANNodeList"); - for (const auto& e1 : recommended_ran_node_list) { - e1.to_json(j); + if (nas_pdu_present) { + j.write_fieldname(""); + nas_pdu.to_json(j); } - j.end_array(); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + if (emergency_fallback_ind_present) { + j.write_fieldname(""); + emergency_fallback_ind.to_json(j); + } + if (rrc_inactive_transition_report_request_present) { + j.write_fieldname(""); + rrc_inactive_transition_report_request.to_json(j); + } + if (ue_radio_cap_for_paging_present) { + j.write_fieldname(""); + ue_radio_cap_for_paging.to_json(j); + } + if (redirection_voice_fallback_present) { + j.write_fieldname(""); + redirection_voice_fallback.to_json(j); } j.end_obj(); } -// InfoOnRecommendedCellsAndRANNodesForPaging ::= SEQUENCE -SRSASN_CODE info_on_recommended_cells_and_ran_nodes_for_paging_s::pack(bit_ref& bref) const +// InitialContextSetupRequest ::= SEQUENCE +SRSASN_CODE init_context_setup_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(recommended_cells_for_paging.pack(bref)); - HANDLE_CODE(recommend_ran_nodes_for_paging.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } + HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE info_on_recommended_cells_and_ran_nodes_for_paging_s::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(recommended_cells_for_paging.unpack(bref)); - HANDLE_CODE(recommend_ran_nodes_for_paging.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } + HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void info_on_recommended_cells_and_ran_nodes_for_paging_s::to_json(json_writer& j) const +void init_context_setup_request_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("recommendedCellsForPaging"); - recommended_cells_for_paging.to_json(j); - j.write_fieldname("recommendRANNodesForPaging"); - recommend_ran_nodes_for_paging.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); j.end_obj(); } -// PDUSessionResourceSetupUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_unsuccessful_transfer_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToSetupItemCxtRes ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_res_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(cause.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_unsuccessful_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_res_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(cause.unpack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.unpack(bref)); - } + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_setup_unsuccessful_transfer_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_setup_item_cxt_res_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname("criticalityDiagnostics"); - crit_diagnostics.to_json(j); - } + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -19405,38 +20320,38 @@ void pdu_session_res_setup_unsuccessful_transfer_s::to_json(json_writer& j) cons j.end_obj(); } -// PDUSessionResourceFailedToSetupItemCxtFail ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_fail_s::pack(bit_ref& bref) const +// PDUSessionResourceSetupItemCxtRes ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_item_cxt_res_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); + HANDLE_CODE(pdu_session_res_setup_resp_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_item_cxt_res_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); + HANDLE_CODE(pdu_session_res_setup_resp_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_failed_to_setup_item_cxt_fail_s::to_json(json_writer& j) const +void pdu_session_res_setup_item_cxt_res_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); + j.write_str("pDUSessionResourceSetupResponseTransfer", pdu_session_res_setup_resp_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -19444,15 +20359,15 @@ void pdu_session_res_failed_to_setup_item_cxt_fail_s::to_json(json_writer& j) co j.end_obj(); } -// InitialContextSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t init_context_setup_fail_ies_o::idx_to_id(uint32_t idx) +// InitialContextSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t init_context_setup_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 132, 15, 19}; + static const uint32_t options[] = {10, 85, 72, 55, 19}; return map_enum_number(options, 5, idx, "id"); } -bool init_context_setup_fail_ies_o::is_id_valid(const uint32_t& id) +bool init_context_setup_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 132, 15, 19}; + static const uint32_t options[] = {10, 85, 72, 55, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -19460,16 +20375,16 @@ bool init_context_setup_fail_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e init_context_setup_fail_ies_o::get_crit(const uint32_t& id) +crit_e init_context_setup_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::ignore; case 85: return crit_e::ignore; - case 132: + case 72: return crit_e::ignore; - case 15: + case 55: return crit_e::ignore; case 19: return crit_e::ignore; @@ -19478,7 +20393,7 @@ crit_e init_context_setup_fail_ies_o::get_crit(const uint32_t& id) } return {}; } -init_context_setup_fail_ies_o::value_c init_context_setup_fail_ies_o::get_value(const uint32_t& id) +init_context_setup_resp_ies_o::value_c init_context_setup_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -19488,11 +20403,11 @@ init_context_setup_fail_ies_o::value_c init_context_setup_fail_ies_o::get_value( case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 132: - ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_fail); + case 72: + ret.set(value_c::types::pdu_session_res_setup_list_cxt_res); break; - case 15: - ret.set(value_c::types::cause); + case 55: + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_res); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -19502,17 +20417,17 @@ init_context_setup_fail_ies_o::value_c init_context_setup_fail_ies_o::get_value( } return ret; } -presence_e init_context_setup_fail_ies_o::get_presence(const uint32_t& id) +presence_e init_context_setup_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 132: + case 72: + return presence_e::optional; + case 55: return presence_e::optional; - case 15: - return presence_e::mandatory; case 19: return presence_e::optional; default: @@ -19522,66 +20437,14 @@ presence_e init_context_setup_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& init_context_setup_fail_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& init_context_setup_fail_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_setup_list_cxt_fail_l& -init_context_setup_fail_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_fail() -{ - assert_choice_type("PDUSessionResourceFailedToSetupListCxtFail", type_.to_string(), "Value"); - return c.get(); -} -cause_c& init_context_setup_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_fail_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_fail_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_setup_list_cxt_fail_l& -init_context_setup_fail_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_fail() const -{ - assert_choice_type("PDUSessionResourceFailedToSetupListCxtFail", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& init_context_setup_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void init_context_setup_fail_ies_o::value_c::destroy_() +void init_context_setup_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - c.destroy(); + case types::pdu_session_res_setup_list_cxt_res: + c.destroy(); break; - case types::cause: - c.destroy(); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -19590,7 +20453,7 @@ void init_context_setup_fail_ies_o::value_c::destroy_() break; } } -void init_context_setup_fail_ies_o::value_c::set(types::options e) +void init_context_setup_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -19599,11 +20462,11 @@ void init_context_setup_fail_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - c.init(); + case types::pdu_session_res_setup_list_cxt_res: + c.init(); break; - case types::cause: - c.init(); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -19611,10 +20474,10 @@ void init_context_setup_fail_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); } } -init_context_setup_fail_ies_o::value_c::value_c(const init_context_setup_fail_ies_o::value_c& other) +init_context_setup_resp_ies_o::value_c::value_c(const init_context_setup_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -19624,11 +20487,11 @@ init_context_setup_fail_ies_o::value_c::value_c(const init_context_setup_fail_ie case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - c.init(other.c.get()); + case types::pdu_session_res_setup_list_cxt_res: + c.init(other.c.get()); break; - case types::cause: - c.init(other.c.get()); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -19636,11 +20499,11 @@ init_context_setup_fail_ies_o::value_c::value_c(const init_context_setup_fail_ie case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); } } -init_context_setup_fail_ies_o::value_c& init_context_setup_fail_ies_o::value_c:: - operator=(const init_context_setup_fail_ies_o::value_c& other) +init_context_setup_resp_ies_o::value_c& +init_context_setup_resp_ies_o::value_c::operator=(const init_context_setup_resp_ies_o::value_c& other) { if (this == &other) { return *this; @@ -19653,11 +20516,11 @@ init_context_setup_fail_ies_o::value_c& init_context_setup_fail_ies_o::value_c:: case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - c.set(other.c.get()); + case types::pdu_session_res_setup_list_cxt_res: + c.set(other.c.get()); break; - case types::cause: - c.set(other.c.get()); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -19665,42 +20528,98 @@ init_context_setup_fail_ies_o::value_c& init_context_setup_fail_ies_o::value_c:: case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); } return *this; } -void init_context_setup_fail_ies_o::value_c::to_json(json_writer& j) const +uint64_t& init_context_setup_resp_ies_o::value_c::amf_ue_ngap_id() { - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - j.start_array("PDUSessionResourceFailedToSetupListCxtFail"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); - break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& init_context_setup_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_setup_list_cxt_res_l& init_context_setup_resp_ies_o::value_c::pdu_session_res_setup_list_cxt_res() +{ + assert_choice_type(types::pdu_session_res_setup_list_cxt_res, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_setup_list_cxt_res_l& +init_context_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_res() +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_cxt_res, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_setup_list_cxt_res_l& +init_context_setup_resp_ies_o::value_c::pdu_session_res_setup_list_cxt_res() const +{ + assert_choice_type(types::pdu_session_res_setup_list_cxt_res, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_setup_list_cxt_res_l& +init_context_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_res() const +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_cxt_res, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void init_context_setup_resp_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_setup_list_cxt_res: + j.start_array("PDUSessionResourceSetupListCxtRes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_failed_to_setup_list_cxt_res: + j.start_array("PDUSessionResourceFailedToSetupListCxtRes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE init_context_setup_fail_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -19710,22 +20629,22 @@ SRSASN_CODE init_context_setup_fail_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::pdu_session_res_setup_list_cxt_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -19735,69 +20654,72 @@ SRSASN_CODE init_context_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_failed_to_setup_list_cxt_fail: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::pdu_session_res_setup_list_cxt_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_failed_to_setup_list_cxt_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "init_context_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string init_context_setup_fail_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "PDUSessionResourceFailedToSetupListCxtFail", - "Cause", + "PDUSessionResourceSetupListCxtRes", + "PDUSessionResourceFailedToSetupListCxtRes", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "init_context_setup_fail_ies_o::value_c::types"); + return convert_enum_idx(options, 5, value, "init_context_setup_resp_ies_o::value_c::types"); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -init_context_setup_fail_ies_container::init_context_setup_fail_ies_container() : +init_context_setup_resp_ies_container::init_context_setup_resp_ies_container() : amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_failed_to_setup_list_cxt_fail(132, crit_e::ignore), - cause(15, crit_e::ignore), + pdu_session_res_setup_list_cxt_res(72, crit_e::ignore), + pdu_session_res_failed_to_setup_list_cxt_res(55, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE init_context_setup_fail_ies_container::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_resp_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += pdu_session_res_failed_to_setup_list_cxt_fail_present ? 1 : 0; + uint32_t nof_ies = 2; + nof_ies += pdu_session_res_setup_list_cxt_res_present ? 1 : 0; + nof_ies += pdu_session_res_failed_to_setup_list_cxt_res_present ? 1 : 0; nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_failed_to_setup_list_cxt_fail_present) { - HANDLE_CODE(pdu_session_res_failed_to_setup_list_cxt_fail.pack(bref)); + if (pdu_session_res_setup_list_cxt_res_present) { + HANDLE_CODE(pdu_session_res_setup_list_cxt_res.pack(bref)); + } + if (pdu_session_res_failed_to_setup_list_cxt_res_present) { + HANDLE_CODE(pdu_session_res_failed_to_setup_list_cxt_res.pack(bref)); } - HANDLE_CODE(cause.pack(bref)); if (crit_diagnostics_present) { HANDLE_CODE(crit_diagnostics.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_fail_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_resp_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -19812,17 +20734,17 @@ SRSASN_CODE init_context_setup_fail_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 132: - pdu_session_res_failed_to_setup_list_cxt_fail_present = true; - pdu_session_res_failed_to_setup_list_cxt_fail.id = c.id; - pdu_session_res_failed_to_setup_list_cxt_fail.crit = c.crit; - pdu_session_res_failed_to_setup_list_cxt_fail.value = c.value.pdu_session_res_failed_to_setup_list_cxt_fail(); + case 72: + pdu_session_res_setup_list_cxt_res_present = true; + pdu_session_res_setup_list_cxt_res.id = c.id; + pdu_session_res_setup_list_cxt_res.crit = c.crit; + pdu_session_res_setup_list_cxt_res.value = c.value.pdu_session_res_setup_list_cxt_res(); break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); + case 55: + pdu_session_res_failed_to_setup_list_cxt_res_present = true; + pdu_session_res_failed_to_setup_list_cxt_res.id = c.id; + pdu_session_res_failed_to_setup_list_cxt_res.crit = c.crit; + pdu_session_res_failed_to_setup_list_cxt_res.value = c.value.pdu_session_res_failed_to_setup_list_cxt_res(); break; case 19: crit_diagnostics_present = true; @@ -19842,19 +20764,21 @@ SRSASN_CODE init_context_setup_fail_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void init_context_setup_fail_ies_container::to_json(json_writer& j) const +void init_context_setup_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (pdu_session_res_failed_to_setup_list_cxt_fail_present) { + if (pdu_session_res_setup_list_cxt_res_present) { j.write_fieldname(""); - pdu_session_res_failed_to_setup_list_cxt_fail.to_json(j); + pdu_session_res_setup_list_cxt_res.to_json(j); + } + if (pdu_session_res_failed_to_setup_list_cxt_res_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_setup_list_cxt_res.to_json(j); } - j.write_fieldname(""); - cause.to_json(j); if (crit_diagnostics_present) { j.write_fieldname(""); crit_diagnostics.to_json(j); @@ -19862,22 +20786,22 @@ void init_context_setup_fail_ies_container::to_json(json_writer& j) const j.end_obj(); } -// InitialContextSetupFailure ::= SEQUENCE -SRSASN_CODE init_context_setup_fail_s::pack(bit_ref& bref) const +// InitialContextSetupResponse ::= SEQUENCE +SRSASN_CODE init_context_setup_resp_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE init_context_setup_resp_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void init_context_setup_fail_s::to_json(json_writer& j) const +void init_context_setup_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -19885,126 +20809,39 @@ void init_context_setup_fail_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceSetupItemCxtReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nas_pdu_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.pack(bref)); - } - HANDLE_CODE(s_nssai.pack(bref)); - HANDLE_CODE(pdu_session_res_setup_request_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.unpack(bref)); - } - HANDLE_CODE(s_nssai.unpack(bref)); - HANDLE_CODE(pdu_session_res_setup_request_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void pdu_session_res_setup_item_cxt_req_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - if (nas_pdu_present) { - j.write_str("nAS-PDU", nas_pdu.to_string()); - } - j.write_fieldname("s-NSSAI"); - s_nssai.to_json(j); - j.write_str("pDUSessionResourceSetupRequestTransfer", pdu_session_res_setup_request_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// UERadioCapabilityForPaging ::= SEQUENCE -SRSASN_CODE ue_radio_cap_for_paging_s::pack(bit_ref& bref) const +// RRCEstablishmentCause ::= ENUMERATED +const char* rrcestablishment_cause_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_nr_present, 1)); - HANDLE_CODE(bref.pack(ueradio_cap_for_paging_of_eutra_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (ueradio_cap_for_paging_of_nr_present) { - HANDLE_CODE(ueradio_cap_for_paging_of_nr.pack(bref)); - } - if (ueradio_cap_for_paging_of_eutra_present) { - HANDLE_CODE(ueradio_cap_for_paging_of_eutra.pack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"emergency", + "highPriorityAccess", + "mt-Access", + "mo-Signalling", + "mo-Data", + "mo-VoiceCall", + "mo-VideoCall", + "mo-SMS", + "mps-PriorityAccess", + "mcs-PriorityAccess", + "notAvailable"}; + return convert_enum_idx(options, 11, value, "rrcestablishment_cause_e"); } -SRSASN_CODE ue_radio_cap_for_paging_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_nr_present, 1)); - HANDLE_CODE(bref.unpack(ueradio_cap_for_paging_of_eutra_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (ueradio_cap_for_paging_of_nr_present) { - HANDLE_CODE(ueradio_cap_for_paging_of_nr.unpack(bref)); - } - if (ueradio_cap_for_paging_of_eutra_present) { - HANDLE_CODE(ueradio_cap_for_paging_of_eutra.unpack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - return SRSASN_SUCCESS; -} -void ue_radio_cap_for_paging_s::to_json(json_writer& j) const +// UEContextRequest ::= ENUMERATED +const char* ue_context_request_opts::to_string() const { - j.start_obj(); - if (ueradio_cap_for_paging_of_nr_present) { - j.write_str("uERadioCapabilityForPagingOfNR", ueradio_cap_for_paging_of_nr.to_string()); - } - if (ueradio_cap_for_paging_of_eutra_present) { - j.write_str("uERadioCapabilityForPagingOfEUTRA", ueradio_cap_for_paging_of_eutra.to_string()); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"requested"}; + return convert_enum_idx(options, 1, value, "ue_context_request_e"); } -// InitialContextSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t init_context_setup_request_ies_o::idx_to_id(uint32_t idx) +// InitialUEMessage-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t init_ue_msg_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 48, 110, 18, 28, 71, 0, 119, 94, - 108, 36, 117, 31, 34, 38, 24, 91, 118, 146}; - return map_enum_number(options, 20, idx, "id"); + static const uint32_t options[] = {85, 38, 121, 90, 26, 3, 112, 0}; + return map_enum_number(options, 8, idx, "id"); } -bool init_context_setup_request_ies_o::is_id_valid(const uint32_t& id) +bool init_ue_msg_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 48, 110, 18, 28, 71, 0, 119, 94, - 108, 36, 117, 31, 34, 38, 24, 91, 118, 146}; + static const uint32_t options[] = {85, 38, 121, 90, 26, 3, 112, 0}; for (const auto& o : options) { if (o == id) { return true; @@ -20012,165 +20849,81 @@ bool init_context_setup_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e init_context_setup_request_ies_o::get_crit(const uint32_t& id) +crit_e init_ue_msg_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::reject; case 85: return crit_e::reject; - case 48: + case 38: return crit_e::reject; - case 110: + case 121: return crit_e::reject; - case 18: + case 90: return crit_e::ignore; - case 28: - return crit_e::reject; - case 71: - return crit_e::reject; - case 0: - return crit_e::reject; - case 119: - return crit_e::reject; - case 94: + case 26: return crit_e::reject; - case 108: - return crit_e::ignore; - case 36: - return crit_e::ignore; - case 117: - return crit_e::ignore; - case 31: - return crit_e::ignore; - case 34: + case 3: return crit_e::ignore; - case 38: + case 112: return crit_e::ignore; - case 24: + case 0: return crit_e::reject; - case 91: - return crit_e::ignore; - case 118: - return crit_e::ignore; - case 146: - return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -init_context_setup_request_ies_o::value_c init_context_setup_request_ies_o::get_value(const uint32_t& id) +init_ue_msg_ies_o::value_c init_ue_msg_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 48: - ret.set(value_c::types::old_amf); + case 38: + ret.set(value_c::types::nas_pdu); break; - case 110: - ret.set(value_c::types::ue_aggregate_maximum_bit_rate); + case 121: + ret.set(value_c::types::user_location_info); break; - case 18: - ret.set(value_c::types::core_network_assist_info); + case 90: + ret.set(value_c::types::rrcestablishment_cause); break; - case 28: - ret.set(value_c::types::guami); + case 26: + ret.set(value_c::types::five_g_s_tmsi); break; - case 71: - ret.set(value_c::types::pdu_session_res_setup_list_cxt_req); + case 3: + ret.set(value_c::types::amf_set_id); + break; + case 112: + ret.set(value_c::types::ue_context_request); break; case 0: ret.set(value_c::types::allowed_nssai); break; - case 119: - ret.set(value_c::types::ue_security_cap); - break; - case 94: - ret.set(value_c::types::security_key); - break; - case 108: - ret.set(value_c::types::trace_activation); - break; - case 36: - ret.set(value_c::types::mob_restrict_list); - break; - case 117: - ret.set(value_c::types::ue_radio_cap); - break; - case 31: - ret.set(value_c::types::idx_to_rfsp); - break; - case 34: - ret.set(value_c::types::masked_imeisv); - break; - case 38: - ret.set(value_c::types::nas_pdu); - break; - case 24: - ret.set(value_c::types::emergency_fallback_ind); - break; - case 91: - ret.set(value_c::types::rrc_inactive_transition_report_request); - break; - case 118: - ret.set(value_c::types::ue_radio_cap_for_paging); - break; - case 146: - ret.set(value_c::types::redirection_voice_fallback); - break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e init_context_setup_request_ies_o::get_presence(const uint32_t& id) +presence_e init_ue_msg_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; case 85: return presence_e::mandatory; - case 48: - return presence_e::optional; - case 110: - return presence_e::conditional; - case 18: - return presence_e::optional; - case 28: - return presence_e::mandatory; - case 71: - return presence_e::optional; - case 0: + case 38: return presence_e::mandatory; - case 119: + case 121: return presence_e::mandatory; - case 94: + case 90: return presence_e::mandatory; - case 108: - return presence_e::optional; - case 36: - return presence_e::optional; - case 117: - return presence_e::optional; - case 31: - return presence_e::optional; - case 34: - return presence_e::optional; - case 38: - return presence_e::optional; - case 24: + case 26: return presence_e::optional; - case 91: + case 3: return presence_e::optional; - case 118: + case 112: return presence_e::optional; - case 146: + case 0: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -20179,948 +20932,437 @@ presence_e init_context_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& init_context_setup_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& init_context_setup_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -printable_string<1, 150, true, true>& init_context_setup_request_ies_o::value_c::old_amf() +void init_ue_msg_ies_o::value_c::destroy_() { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); + switch (type_) { + case types::nas_pdu: + c.destroy >(); + break; + case types::user_location_info: + c.destroy(); + break; + case types::five_g_s_tmsi: + c.destroy(); + break; + case types::amf_set_id: + c.destroy >(); + break; + case types::allowed_nssai: + c.destroy(); + break; + default: + break; + } } -ue_aggregate_maximum_bit_rate_s& init_context_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +void init_ue_msg_ies_o::value_c::set(types::options e) { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + destroy_(); + type_ = e; + switch (type_) { + case types::ran_ue_ngap_id: + break; + case types::nas_pdu: + c.init >(); + break; + case types::user_location_info: + c.init(); + break; + case types::rrcestablishment_cause: + break; + case types::five_g_s_tmsi: + c.init(); + break; + case types::amf_set_id: + c.init >(); + break; + case types::ue_context_request: + break; + case types::allowed_nssai: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } } -core_network_assist_info_s& init_context_setup_request_ies_o::value_c::core_network_assist_info() +init_ue_msg_ies_o::value_c::value_c(const init_ue_msg_ies_o::value_c& other) { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); -} -guami_s& init_context_setup_request_ies_o::value_c::guami() -{ - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_setup_list_cxt_req_l& init_context_setup_request_ies_o::value_c::pdu_session_res_setup_list_cxt_req() -{ - assert_choice_type("PDUSessionResourceSetupListCxtReq", type_.to_string(), "Value"); - return c.get(); -} -allowed_nssai_l& init_context_setup_request_ies_o::value_c::allowed_nssai() -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} -ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -mob_restrict_list_s& init_context_setup_request_ies_o::value_c::mob_restrict_list() -{ - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -uint16_t& init_context_setup_request_ies_o::value_c::idx_to_rfsp() -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& init_context_setup_request_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -emergency_fallback_ind_s& init_context_setup_request_ies_o::value_c::emergency_fallback_ind() -{ - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -rrc_inactive_transition_report_request_e& -init_context_setup_request_ies_o::value_c::rrc_inactive_transition_report_request() -{ - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); -} -ue_radio_cap_for_paging_s& init_context_setup_request_ies_o::value_c::ue_radio_cap_for_paging() -{ - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); + type_ = other.type(); + switch (type_) { + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::user_location_info: + c.init(other.c.get()); + break; + case types::rrcestablishment_cause: + c.init(other.c.get()); + break; + case types::five_g_s_tmsi: + c.init(other.c.get()); + break; + case types::amf_set_id: + c.init(other.c.get >()); + break; + case types::ue_context_request: + c.init(other.c.get()); + break; + case types::allowed_nssai: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } } -redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() +init_ue_msg_ies_o::value_c& init_ue_msg_ies_o::value_c::operator=(const init_ue_msg_ies_o::value_c& other) { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::user_location_info: + c.set(other.c.get()); + break; + case types::rrcestablishment_cause: + c.set(other.c.get()); + break; + case types::five_g_s_tmsi: + c.set(other.c.get()); + break; + case types::amf_set_id: + c.set(other.c.get >()); + break; + case types::ue_context_request: + c.set(other.c.get()); + break; + case types::allowed_nssai: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } + + return *this; } -const uint64_t& init_context_setup_request_ies_o::value_c::amf_ue_ngap_id() const +uint64_t& init_ue_msg_ies_o::value_c::ran_ue_ngap_id() { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); return c.get(); } -const uint64_t& init_context_setup_request_ies_o::value_c::ran_ue_ngap_id() const +unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); } -const printable_string<1, 150, true, true>& init_context_setup_request_ies_o::value_c::old_amf() const +user_location_info_c& init_ue_msg_ies_o::value_c::user_location_info() { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); } -const ue_aggregate_maximum_bit_rate_s& init_context_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +rrcestablishment_cause_e& init_ue_msg_ies_o::value_c::rrcestablishment_cause() { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::rrcestablishment_cause, type_, "Value"); + return c.get(); } -const core_network_assist_info_s& init_context_setup_request_ies_o::value_c::core_network_assist_info() const +five_g_s_tmsi_s& init_ue_msg_ies_o::value_c::five_g_s_tmsi() { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::five_g_s_tmsi, type_, "Value"); + return c.get(); } -const guami_s& init_context_setup_request_ies_o::value_c::guami() const +fixed_bitstring<10, false, true>& init_ue_msg_ies_o::value_c::amf_set_id() { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::amf_set_id, type_, "Value"); + return c.get >(); } -const pdu_session_res_setup_list_cxt_req_l& -init_context_setup_request_ies_o::value_c::pdu_session_res_setup_list_cxt_req() const +ue_context_request_e& init_ue_msg_ies_o::value_c::ue_context_request() { - assert_choice_type("PDUSessionResourceSetupListCxtReq", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ue_context_request, type_, "Value"); + return c.get(); } -const allowed_nssai_l& init_context_setup_request_ies_o::value_c::allowed_nssai() const +allowed_nssai_l& init_ue_msg_ies_o::value_c::allowed_nssai() { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); + assert_choice_type(types::allowed_nssai, type_, "Value"); return c.get(); } -const ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() const -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -const mob_restrict_list_s& init_context_setup_request_ies_o::value_c::mob_restrict_list() const +const uint64_t& init_ue_msg_ies_o::value_c::ran_ue_ngap_id() const { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -const unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() const +const unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::nas_pdu, type_, "Value"); return c.get >(); } -const uint16_t& init_context_setup_request_ies_o::value_c::idx_to_rfsp() const -{ - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() const +const user_location_info_c& init_ue_msg_ies_o::value_c::user_location_info() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); } -const unbounded_octstring& init_context_setup_request_ies_o::value_c::nas_pdu() const +const rrcestablishment_cause_e& init_ue_msg_ies_o::value_c::rrcestablishment_cause() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + assert_choice_type(types::rrcestablishment_cause, type_, "Value"); + return c.get(); } -const emergency_fallback_ind_s& init_context_setup_request_ies_o::value_c::emergency_fallback_ind() const +const five_g_s_tmsi_s& init_ue_msg_ies_o::value_c::five_g_s_tmsi() const { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::five_g_s_tmsi, type_, "Value"); + return c.get(); } -const rrc_inactive_transition_report_request_e& -init_context_setup_request_ies_o::value_c::rrc_inactive_transition_report_request() const +const fixed_bitstring<10, false, true>& init_ue_msg_ies_o::value_c::amf_set_id() const { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::amf_set_id, type_, "Value"); + return c.get >(); } -const ue_radio_cap_for_paging_s& init_context_setup_request_ies_o::value_c::ue_radio_cap_for_paging() const +const ue_context_request_e& init_ue_msg_ies_o::value_c::ue_context_request() const { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ue_context_request, type_, "Value"); + return c.get(); } -const redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() const +const allowed_nssai_l& init_ue_msg_ies_o::value_c::allowed_nssai() const { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); } -void init_context_setup_request_ies_o::value_c::destroy_() +void init_ue_msg_ies_o::value_c::to_json(json_writer& j) const { + j.start_obj(); switch (type_) { - case types::old_amf: - c.destroy >(); - break; - case types::ue_aggregate_maximum_bit_rate: - c.destroy(); - break; - case types::core_network_assist_info: - c.destroy(); - break; - case types::guami: - c.destroy(); - break; - case types::pdu_session_res_setup_list_cxt_req: - c.destroy(); - break; - case types::allowed_nssai: - c.destroy(); - break; - case types::ue_security_cap: - c.destroy(); - break; - case types::security_key: - c.destroy >(); - break; - case types::trace_activation: - c.destroy(); - break; - case types::mob_restrict_list: - c.destroy(); - break; - case types::ue_radio_cap: - c.destroy >(); - break; - case types::masked_imeisv: - c.destroy >(); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; case types::nas_pdu: - c.destroy >(); - break; - case types::emergency_fallback_ind: - c.destroy(); - break; - case types::ue_radio_cap_for_paging: - c.destroy(); - break; - default: - break; - } -} -void init_context_setup_request_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::old_amf: - c.init >(); + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); break; - case types::ue_aggregate_maximum_bit_rate: - c.init(); + case types::rrcestablishment_cause: + j.write_str("RRCEstablishmentCause", c.get().to_string()); break; - case types::core_network_assist_info: - c.init(); + case types::five_g_s_tmsi: + j.write_fieldname("FiveG-S-TMSI"); + c.get().to_json(j); break; - case types::guami: - c.init(); + case types::amf_set_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_setup_list_cxt_req: - c.init(); + case types::ue_context_request: + j.write_str("UEContextRequest", "requested"); break; case types::allowed_nssai: - c.init(); - break; - case types::ue_security_cap: - c.init(); - break; - case types::security_key: - c.init >(); - break; - case types::trace_activation: - c.init(); - break; - case types::mob_restrict_list: - c.init(); - break; - case types::ue_radio_cap: - c.init >(); - break; - case types::idx_to_rfsp: - break; - case types::masked_imeisv: - c.init >(); - break; - case types::nas_pdu: - c.init >(); - break; - case types::emergency_fallback_ind: - c.init(); - break; - case types::rrc_inactive_transition_report_request: - break; - case types::ue_radio_cap_for_paging: - c.init(); - break; - case types::redirection_voice_fallback: - break; - case types::nulltype: + j.start_array("AllowedNSSAI"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); } + j.end_obj(); } -init_context_setup_request_ies_o::value_c::value_c(const init_context_setup_request_ies_o::value_c& other) +SRSASN_CODE init_ue_msg_ies_o::value_c::pack(bit_ref& bref) const { - type_ = other.type(); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::old_amf: - c.init(other.c.get >()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.init(other.c.get()); - break; - case types::core_network_assist_info: - c.init(other.c.get()); - break; - case types::guami: - c.init(other.c.get()); - break; - case types::pdu_session_res_setup_list_cxt_req: - c.init(other.c.get()); - break; - case types::allowed_nssai: - c.init(other.c.get()); - break; - case types::ue_security_cap: - c.init(other.c.get()); - break; - case types::security_key: - c.init(other.c.get >()); - break; - case types::trace_activation: - c.init(other.c.get()); - break; - case types::mob_restrict_list: - c.init(other.c.get()); - break; - case types::ue_radio_cap: - c.init(other.c.get >()); - break; - case types::idx_to_rfsp: - c.init(other.c.get()); - break; - case types::masked_imeisv: - c.init(other.c.get >()); + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; case types::nas_pdu: - c.init(other.c.get >()); + HANDLE_CODE(c.get >().pack(bref)); break; - case types::emergency_fallback_ind: - c.init(other.c.get()); + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::rrc_inactive_transition_report_request: - c.init(other.c.get()); + case types::rrcestablishment_cause: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ue_radio_cap_for_paging: - c.init(other.c.get()); + case types::five_g_s_tmsi: + HANDLE_CODE(c.get().pack(bref)); break; - case types::redirection_voice_fallback: - c.init(other.c.get()); + case types::amf_set_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::nulltype: + case types::ue_context_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::allowed_nssai: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); break; default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -init_context_setup_request_ies_o::value_c& init_context_setup_request_ies_o::value_c:: - operator=(const init_context_setup_request_ies_o::value_c& other) +SRSASN_CODE init_ue_msg_ies_o::value_c::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::old_amf: - c.set(other.c.get >()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.set(other.c.get()); - break; - case types::core_network_assist_info: - c.set(other.c.get()); - break; - case types::guami: - c.set(other.c.get()); - break; - case types::pdu_session_res_setup_list_cxt_req: - c.set(other.c.get()); - break; - case types::allowed_nssai: - c.set(other.c.get()); - break; - case types::ue_security_cap: - c.set(other.c.get()); - break; - case types::security_key: - c.set(other.c.get >()); - break; - case types::trace_activation: - c.set(other.c.get()); - break; - case types::mob_restrict_list: - c.set(other.c.get()); - break; - case types::ue_radio_cap: - c.set(other.c.get >()); - break; - case types::idx_to_rfsp: - c.set(other.c.get()); - break; - case types::masked_imeisv: - c.set(other.c.get >()); + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; case types::nas_pdu: - c.set(other.c.get >()); + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::emergency_fallback_ind: - c.set(other.c.get()); + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::rrc_inactive_transition_report_request: - c.set(other.c.get()); + case types::rrcestablishment_cause: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_radio_cap_for_paging: - c.set(other.c.get()); + case types::five_g_s_tmsi: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::redirection_voice_fallback: - c.set(other.c.get()); + case types::amf_set_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::nulltype: + case types::ue_context_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::allowed_nssai: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); break; default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; +} - return *this; +const char* init_ue_msg_ies_o::value_c::types_opts::to_string() const +{ + static const char* options[] = {"INTEGER (0..4294967295)", + "OCTET STRING", + "UserLocationInformation", + "RRCEstablishmentCause", + "FiveG-S-TMSI", + "BIT STRING", + "UEContextRequest", + "AllowedNSSAI"}; + return convert_enum_idx(options, 8, value, "init_ue_msg_ies_o::value_c::types"); } -void init_context_setup_request_ies_o::value_c::to_json(json_writer& j) const +uint8_t init_ue_msg_ies_o::value_c::types_opts::to_number() const { - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::old_amf: - j.write_str("PrintableString", c.get >().to_string()); - break; - case types::ue_aggregate_maximum_bit_rate: - j.write_fieldname("UEAggregateMaximumBitRate"); - c.get().to_json(j); - break; - case types::core_network_assist_info: - j.write_fieldname("CoreNetworkAssistanceInformation"); - c.get().to_json(j); - break; - case types::guami: - j.write_fieldname("GUAMI"); - c.get().to_json(j); - break; - case types::pdu_session_res_setup_list_cxt_req: - j.start_array("PDUSessionResourceSetupListCxtReq"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::allowed_nssai: - j.start_array("AllowedNSSAI"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); - c.get().to_json(j); - break; - case types::security_key: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::trace_activation: - j.write_fieldname("TraceActivation"); - c.get().to_json(j); - break; - case types::mob_restrict_list: - j.write_fieldname("MobilityRestrictionList"); - c.get().to_json(j); - break; - case types::ue_radio_cap: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::idx_to_rfsp: - j.write_int("INTEGER (1..256,...)", c.get()); - break; - case types::masked_imeisv: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::nas_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::emergency_fallback_ind: - j.write_fieldname("EmergencyFallbackIndicator"); - c.get().to_json(j); - break; - case types::rrc_inactive_transition_report_request: - j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); - break; - case types::ue_radio_cap_for_paging: - j.write_fieldname("UERadioCapabilityForPaging"); - c.get().to_json(j); - break; - case types::redirection_voice_fallback: - j.write_str("RedirectionVoiceFallback", c.get().to_string()); - break; - default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); - } - j.end_obj(); -} -SRSASN_CODE init_context_setup_request_ies_o::value_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::old_amf: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::guami: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_setup_list_cxt_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::allowed_nssai: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::security_key: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::trace_activation: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::mob_restrict_list: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::idx_to_rfsp: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::masked_imeisv: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::emergency_fallback_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE init_context_setup_request_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::old_amf: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::guami: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_setup_list_cxt_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::allowed_nssai: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::security_key: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::trace_activation: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::mob_restrict_list: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::idx_to_rfsp: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::masked_imeisv: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::emergency_fallback_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "init_context_setup_request_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string init_context_setup_request_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PrintableString", - "UEAggregateMaximumBitRate", - "CoreNetworkAssistanceInformation", - "GUAMI", - "PDUSessionResourceSetupListCxtReq", - "AllowedNSSAI", - "UESecurityCapabilities", - "BIT STRING", - "TraceActivation", - "MobilityRestrictionList", - "OCTET STRING", - "INTEGER (1..256,...)", - "BIT STRING", - "OCTET STRING", - "EmergencyFallbackIndicator", - "RRCInactiveTransitionReportRequest", - "UERadioCapabilityForPaging", - "RedirectionVoiceFallback"}; - return convert_enum_idx(options, 20, value, "init_context_setup_request_ies_o::value_c::types"); + static const uint8_t options[] = {0}; + return map_enum_number(options, 1, value, "init_ue_msg_ies_o::value_c::types"); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -init_context_setup_request_ies_container::init_context_setup_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), +init_ue_msg_ies_container::init_ue_msg_ies_container() : ran_ue_ngap_id(85, crit_e::reject), - old_amf(48, crit_e::reject), - ue_aggregate_maximum_bit_rate(110, crit_e::reject), - core_network_assist_info(18, crit_e::ignore), - guami(28, crit_e::reject), - pdu_session_res_setup_list_cxt_req(71, crit_e::reject), - allowed_nssai(0, crit_e::reject), - ue_security_cap(119, crit_e::reject), - security_key(94, crit_e::reject), - trace_activation(108, crit_e::ignore), - mob_restrict_list(36, crit_e::ignore), - ue_radio_cap(117, crit_e::ignore), - idx_to_rfsp(31, crit_e::ignore), - masked_imeisv(34, crit_e::ignore), - nas_pdu(38, crit_e::ignore), - emergency_fallback_ind(24, crit_e::reject), - rrc_inactive_transition_report_request(91, crit_e::ignore), - ue_radio_cap_for_paging(118, crit_e::ignore), - redirection_voice_fallback(146, crit_e::ignore) + nas_pdu(38, crit_e::reject), + user_location_info(121, crit_e::reject), + rrcestablishment_cause(90, crit_e::ignore), + five_g_s_tmsi(26, crit_e::reject), + amf_set_id(3, crit_e::ignore), + ue_context_request(112, crit_e::ignore), + allowed_nssai(0, crit_e::reject) {} -SRSASN_CODE init_context_setup_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE init_ue_msg_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 6; - nof_ies += old_amf_present ? 1 : 0; - nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; - nof_ies += core_network_assist_info_present ? 1 : 0; - nof_ies += pdu_session_res_setup_list_cxt_req_present ? 1 : 0; - nof_ies += trace_activation_present ? 1 : 0; - nof_ies += mob_restrict_list_present ? 1 : 0; - nof_ies += ue_radio_cap_present ? 1 : 0; - nof_ies += idx_to_rfsp_present ? 1 : 0; - nof_ies += masked_imeisv_present ? 1 : 0; - nof_ies += nas_pdu_present ? 1 : 0; - nof_ies += emergency_fallback_ind_present ? 1 : 0; - nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; - nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; - nof_ies += redirection_voice_fallback_present ? 1 : 0; + uint32_t nof_ies = 4; + nof_ies += five_g_s_tmsi_present ? 1 : 0; + nof_ies += amf_set_id_present ? 1 : 0; + nof_ies += ue_context_request_present ? 1 : 0; + nof_ies += allowed_nssai_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (old_amf_present) { - HANDLE_CODE(old_amf.pack(bref)); - } - if (ue_aggregate_maximum_bit_rate_present) { - HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); - } - if (core_network_assist_info_present) { - HANDLE_CODE(core_network_assist_info.pack(bref)); - } - HANDLE_CODE(guami.pack(bref)); - if (pdu_session_res_setup_list_cxt_req_present) { - HANDLE_CODE(pdu_session_res_setup_list_cxt_req.pack(bref)); - } - HANDLE_CODE(allowed_nssai.pack(bref)); - HANDLE_CODE(ue_security_cap.pack(bref)); - HANDLE_CODE(security_key.pack(bref)); - if (trace_activation_present) { - HANDLE_CODE(trace_activation.pack(bref)); - } - if (mob_restrict_list_present) { - HANDLE_CODE(mob_restrict_list.pack(bref)); - } - if (ue_radio_cap_present) { - HANDLE_CODE(ue_radio_cap.pack(bref)); - } - if (idx_to_rfsp_present) { - HANDLE_CODE(idx_to_rfsp.pack(bref)); - } - if (masked_imeisv_present) { - HANDLE_CODE(masked_imeisv.pack(bref)); - } - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.pack(bref)); - } - if (emergency_fallback_ind_present) { - HANDLE_CODE(emergency_fallback_ind.pack(bref)); + HANDLE_CODE(nas_pdu.pack(bref)); + HANDLE_CODE(user_location_info.pack(bref)); + HANDLE_CODE(rrcestablishment_cause.pack(bref)); + if (five_g_s_tmsi_present) { + HANDLE_CODE(five_g_s_tmsi.pack(bref)); } - if (rrc_inactive_transition_report_request_present) { - HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); + if (amf_set_id_present) { + HANDLE_CODE(amf_set_id.pack(bref)); } - if (ue_radio_cap_for_paging_present) { - HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); + if (ue_context_request_present) { + HANDLE_CODE(ue_context_request.pack(bref)); } - if (redirection_voice_fallback_present) { - HANDLE_CODE(redirection_voice_fallback.pack(bref)); + if (allowed_nssai_present) { + HANDLE_CODE(allowed_nssai.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE init_ue_msg_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 6; + uint32_t nof_mandatory_ies = 4; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; case 85: nof_mandatory_ies--; ran_ue_ngap_id.id = c.id; ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 48: - old_amf_present = true; - old_amf.id = c.id; - old_amf.crit = c.crit; - old_amf.value = c.value.old_amf(); - break; - case 110: - ue_aggregate_maximum_bit_rate_present = true; - ue_aggregate_maximum_bit_rate.id = c.id; - ue_aggregate_maximum_bit_rate.crit = c.crit; - ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); - break; - case 18: - core_network_assist_info_present = true; - core_network_assist_info.id = c.id; - core_network_assist_info.crit = c.crit; - core_network_assist_info.value = c.value.core_network_assist_info(); - break; - case 28: - nof_mandatory_ies--; - guami.id = c.id; - guami.crit = c.crit; - guami.value = c.value.guami(); - break; - case 71: - pdu_session_res_setup_list_cxt_req_present = true; - pdu_session_res_setup_list_cxt_req.id = c.id; - pdu_session_res_setup_list_cxt_req.crit = c.crit; - pdu_session_res_setup_list_cxt_req.value = c.value.pdu_session_res_setup_list_cxt_req(); - break; - case 0: + case 38: nof_mandatory_ies--; - allowed_nssai.id = c.id; - allowed_nssai.crit = c.crit; - allowed_nssai.value = c.value.allowed_nssai(); + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); break; - case 119: + case 121: nof_mandatory_ies--; - ue_security_cap.id = c.id; - ue_security_cap.crit = c.crit; - ue_security_cap.value = c.value.ue_security_cap(); + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); break; - case 94: + case 90: nof_mandatory_ies--; - security_key.id = c.id; - security_key.crit = c.crit; - security_key.value = c.value.security_key(); - break; - case 108: - trace_activation_present = true; - trace_activation.id = c.id; - trace_activation.crit = c.crit; - trace_activation.value = c.value.trace_activation(); - break; - case 36: - mob_restrict_list_present = true; - mob_restrict_list.id = c.id; - mob_restrict_list.crit = c.crit; - mob_restrict_list.value = c.value.mob_restrict_list(); - break; - case 117: - ue_radio_cap_present = true; - ue_radio_cap.id = c.id; - ue_radio_cap.crit = c.crit; - ue_radio_cap.value = c.value.ue_radio_cap(); - break; - case 31: - idx_to_rfsp_present = true; - idx_to_rfsp.id = c.id; - idx_to_rfsp.crit = c.crit; - idx_to_rfsp.value = c.value.idx_to_rfsp(); - break; - case 34: - masked_imeisv_present = true; - masked_imeisv.id = c.id; - masked_imeisv.crit = c.crit; - masked_imeisv.value = c.value.masked_imeisv(); - break; - case 38: - nas_pdu_present = true; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); + rrcestablishment_cause.id = c.id; + rrcestablishment_cause.crit = c.crit; + rrcestablishment_cause.value = c.value.rrcestablishment_cause(); break; - case 24: - emergency_fallback_ind_present = true; - emergency_fallback_ind.id = c.id; - emergency_fallback_ind.crit = c.crit; - emergency_fallback_ind.value = c.value.emergency_fallback_ind(); + case 26: + five_g_s_tmsi_present = true; + five_g_s_tmsi.id = c.id; + five_g_s_tmsi.crit = c.crit; + five_g_s_tmsi.value = c.value.five_g_s_tmsi(); break; - case 91: - rrc_inactive_transition_report_request_present = true; - rrc_inactive_transition_report_request.id = c.id; - rrc_inactive_transition_report_request.crit = c.crit; - rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); + case 3: + amf_set_id_present = true; + amf_set_id.id = c.id; + amf_set_id.crit = c.crit; + amf_set_id.value = c.value.amf_set_id(); break; - case 118: - ue_radio_cap_for_paging_present = true; - ue_radio_cap_for_paging.id = c.id; - ue_radio_cap_for_paging.crit = c.crit; - ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); + case 112: + ue_context_request_present = true; + ue_context_request.id = c.id; + ue_context_request.crit = c.crit; + ue_context_request.value = c.value.ue_context_request(); break; - case 146: - redirection_voice_fallback_present = true; - redirection_voice_fallback.id = c.id; - redirection_voice_fallback.crit = c.crit; - redirection_voice_fallback.value = c.value.redirection_voice_fallback(); + case 0: + allowed_nssai_present = true; + allowed_nssai.id = c.id; + allowed_nssai.crit = c.crit; + allowed_nssai.value = c.value.allowed_nssai(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -21134,253 +21376,107 @@ SRSASN_CODE init_context_setup_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void init_context_setup_request_ies_container::to_json(json_writer& j) const +void init_ue_msg_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (old_amf_present) { + j.write_fieldname(""); + nas_pdu.to_json(j); + j.write_fieldname(""); + user_location_info.to_json(j); + j.write_fieldname(""); + rrcestablishment_cause.to_json(j); + if (five_g_s_tmsi_present) { j.write_fieldname(""); - old_amf.to_json(j); + five_g_s_tmsi.to_json(j); } - if (ue_aggregate_maximum_bit_rate_present) { + if (amf_set_id_present) { j.write_fieldname(""); - ue_aggregate_maximum_bit_rate.to_json(j); + amf_set_id.to_json(j); } - if (core_network_assist_info_present) { + if (ue_context_request_present) { j.write_fieldname(""); - core_network_assist_info.to_json(j); + ue_context_request.to_json(j); } - j.write_fieldname(""); - guami.to_json(j); - if (pdu_session_res_setup_list_cxt_req_present) { + if (allowed_nssai_present) { j.write_fieldname(""); - pdu_session_res_setup_list_cxt_req.to_json(j); - } - j.write_fieldname(""); - allowed_nssai.to_json(j); - j.write_fieldname(""); - ue_security_cap.to_json(j); - j.write_fieldname(""); - security_key.to_json(j); - if (trace_activation_present) { - j.write_fieldname(""); - trace_activation.to_json(j); - } - if (mob_restrict_list_present) { - j.write_fieldname(""); - mob_restrict_list.to_json(j); - } - if (ue_radio_cap_present) { - j.write_fieldname(""); - ue_radio_cap.to_json(j); - } - if (idx_to_rfsp_present) { - j.write_fieldname(""); - idx_to_rfsp.to_json(j); - } - if (masked_imeisv_present) { - j.write_fieldname(""); - masked_imeisv.to_json(j); - } - if (nas_pdu_present) { - j.write_fieldname(""); - nas_pdu.to_json(j); - } - if (emergency_fallback_ind_present) { - j.write_fieldname(""); - emergency_fallback_ind.to_json(j); - } - if (rrc_inactive_transition_report_request_present) { - j.write_fieldname(""); - rrc_inactive_transition_report_request.to_json(j); - } - if (ue_radio_cap_for_paging_present) { - j.write_fieldname(""); - ue_radio_cap_for_paging.to_json(j); - } - if (redirection_voice_fallback_present) { - j.write_fieldname(""); - redirection_voice_fallback.to_json(j); + allowed_nssai.to_json(j); } j.end_obj(); } -// InitialContextSetupRequest ::= SEQUENCE -SRSASN_CODE init_context_setup_request_s::pack(bit_ref& bref) const +// InitialUEMessage ::= SEQUENCE +SRSASN_CODE init_ue_msg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); + bref.align_bytes_zero(); + return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_request_s::unpack(cbit_ref& bref) +SRSASN_CODE init_ue_msg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); + bref.align_bytes(); + return SRSASN_SUCCESS; } -void init_context_setup_request_s::to_json(json_writer& j) const +void init_ue_msg_s::to_json(json_writer& j) const { + j.start_array(); j.start_obj(); + j.start_obj("InitialUEMessage"); j.write_fieldname("protocolIEs"); protocol_ies.to_json(j); j.end_obj(); -} - -// PDUSessionResourceSetupResponseTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_resp_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(security_result_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); - } - if (security_result_present) { - HANDLE_CODE(security_result.pack(bref)); - } - if (qos_flow_failed_to_setup_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_setup_resp_transfer_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(security_result_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(dlqos_flow_per_tnl_info.unpack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); - } - if (security_result_present) { - HANDLE_CODE(security_result.unpack(bref)); - } - if (qos_flow_failed_to_setup_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_setup_list, bref, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void pdu_session_res_setup_resp_transfer_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("dLQosFlowPerTNLInformation"); - dlqos_flow_per_tnl_info.to_json(j); - if (add_dl_qos_flow_per_tnl_info_present) { - j.start_array("additionalDLQosFlowPerTNLInformation"); - for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { - e1.to_json(j); - } - j.end_array(); - } - if (security_result_present) { - j.write_fieldname("securityResult"); - security_result.to_json(j); - } - if (qos_flow_failed_to_setup_list_present) { - j.start_array("qosFlowFailedToSetupList"); - for (const auto& e1 : qos_flow_failed_to_setup_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } j.end_obj(); + j.end_array(); } -// PDUSessionResourceFailedToSetupItemCxtRes ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_res_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_failed_to_setup_item_cxt_res_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void pdu_session_res_failed_to_setup_item_cxt_res_s::to_json(json_writer& j) const +// OverloadAction ::= ENUMERATED +const char* overload_action_opts::to_string() const { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"reject-non-emergency-mo-dt", + "reject-rrc-cr-signalling", + "permit-emergency-sessions-and-mobile-terminated-services-only", + "permit-high-priority-sessions-and-mobile-terminated-services-only"}; + return convert_enum_idx(options, 4, value, "overload_action_e"); } -// PDUSessionResourceSetupItemCxtRes ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_item_cxt_res_s::pack(bit_ref& bref) const +// SliceOverloadItem ::= SEQUENCE +SRSASN_CODE slice_overload_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_resp_transfer.pack(bref)); + HANDLE_CODE(s_nssai.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_item_cxt_res_s::unpack(cbit_ref& bref) +SRSASN_CODE slice_overload_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_resp_transfer.unpack(bref)); + HANDLE_CODE(s_nssai.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_setup_item_cxt_res_s::to_json(json_writer& j) const +void slice_overload_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceSetupResponseTransfer", pdu_session_res_setup_resp_transfer.to_string()); + j.write_fieldname("s-NSSAI"); + s_nssai.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -21388,1122 +21484,526 @@ void pdu_session_res_setup_item_cxt_res_s::to_json(json_writer& j) const j.end_obj(); } -// InitialContextSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t init_context_setup_resp_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 85, 72, 55, 19}; - return map_enum_number(options, 5, idx, "id"); -} -bool init_context_setup_resp_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {10, 85, 72, 55, 19}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e init_context_setup_resp_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 72: - return crit_e::ignore; - case 55: - return crit_e::ignore; - case 19: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} -init_context_setup_resp_ies_o::value_c init_context_setup_resp_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 72: - ret.set(value_c::types::pdu_session_res_setup_list_cxt_res); - break; - case 55: - ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_res); - break; - case 19: - ret.set(value_c::types::crit_diagnostics); - break; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e init_context_setup_resp_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 72: - return presence_e::optional; - case 55: - return presence_e::optional; - case 19: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} - -// Value ::= OPEN TYPE -uint64_t& init_context_setup_resp_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& init_context_setup_resp_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_setup_list_cxt_res_l& init_context_setup_resp_ies_o::value_c::pdu_session_res_setup_list_cxt_res() -{ - assert_choice_type("PDUSessionResourceSetupListCxtRes", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_setup_list_cxt_res_l& -init_context_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_res() -{ - assert_choice_type("PDUSessionResourceFailedToSetupListCxtRes", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_resp_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_resp_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_setup_list_cxt_res_l& -init_context_setup_resp_ies_o::value_c::pdu_session_res_setup_list_cxt_res() const -{ - assert_choice_type("PDUSessionResourceSetupListCxtRes", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_setup_list_cxt_res_l& -init_context_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_cxt_res() const -{ - assert_choice_type("PDUSessionResourceFailedToSetupListCxtRes", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void init_context_setup_resp_ies_o::value_c::destroy_() +// OverloadResponse ::= CHOICE +void overload_resp_c::destroy_() { switch (type_) { - case types::pdu_session_res_setup_list_cxt_res: - c.destroy(); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - c.destroy(); - break; - case types::crit_diagnostics: - c.destroy(); + case types::choice_exts: + c.destroy >(); break; default: break; } } -void init_context_setup_resp_ies_o::value_c::set(types::options e) +void overload_resp_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::pdu_session_res_setup_list_cxt_res: - c.init(); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - c.init(); + case types::overload_action: break; - case types::crit_diagnostics: - c.init(); + case types::choice_exts: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); } } -init_context_setup_resp_ies_o::value_c::value_c(const init_context_setup_resp_ies_o::value_c& other) +overload_resp_c::overload_resp_c(const overload_resp_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::pdu_session_res_setup_list_cxt_res: - c.init(other.c.get()); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - c.init(other.c.get()); + case types::overload_action: + c.init(other.c.get()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::choice_exts: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); } } -init_context_setup_resp_ies_o::value_c& init_context_setup_resp_ies_o::value_c:: - operator=(const init_context_setup_resp_ies_o::value_c& other) +overload_resp_c& overload_resp_c::operator=(const overload_resp_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::pdu_session_res_setup_list_cxt_res: - c.set(other.c.get()); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - c.set(other.c.get()); + case types::overload_action: + c.set(other.c.get()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::choice_exts: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); } return *this; } -void init_context_setup_resp_ies_o::value_c::to_json(json_writer& j) const +overload_action_e& overload_resp_c::set_overload_action() +{ + set(types::overload_action); + return c.get(); +} +protocol_ie_single_container_s& overload_resp_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void overload_resp_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::pdu_session_res_setup_list_cxt_res: - j.start_array("PDUSessionResourceSetupListCxtRes"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - j.start_array("PDUSessionResourceFailedToSetupListCxtRes"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::overload_action: + j.write_str("overloadAction", c.get().to_string()); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); } j.end_obj(); } -SRSASN_CODE init_context_setup_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE overload_resp_c::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); + type_.pack(bref); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::pdu_session_res_setup_list_cxt_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::overload_action: + HANDLE_CODE(c.get().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE overload_resp_c::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::pdu_session_res_setup_list_cxt_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::pdu_session_res_failed_to_setup_list_cxt_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::overload_action: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "init_context_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "overload_resp_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string init_context_setup_resp_ies_o::value_c::types_opts::to_string() const +const char* overload_resp_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceSetupListCxtRes", - "PDUSessionResourceFailedToSetupListCxtRes", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "init_context_setup_resp_ies_o::value_c::types"); + static const char* options[] = {"overloadAction", "choice-Extensions"}; + return convert_enum_idx(options, 2, value, "overload_resp_c::types"); } -template struct asn1::ngap_nr::protocol_ie_field_s; - -init_context_setup_resp_ies_container::init_context_setup_resp_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_setup_list_cxt_res(72, crit_e::ignore), - pdu_session_res_failed_to_setup_list_cxt_res(55, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE init_context_setup_resp_ies_container::pack(bit_ref& bref) const +// PDUSessionResourceItemCxtRelCpl-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_item_cxt_rel_cpl_ext_ies_o::idx_to_id(uint32_t idx) { - uint32_t nof_ies = 2; - nof_ies += pdu_session_res_setup_list_cxt_res_present ? 1 : 0; - nof_ies += pdu_session_res_failed_to_setup_list_cxt_res_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_setup_list_cxt_res_present) { - HANDLE_CODE(pdu_session_res_setup_list_cxt_res.pack(bref)); - } - if (pdu_session_res_failed_to_setup_list_cxt_res_present) { - HANDLE_CODE(pdu_session_res_failed_to_setup_list_cxt_res.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {145}; + return map_enum_number(options, 1, idx, "id"); } -SRSASN_CODE init_context_setup_resp_ies_container::unpack(cbit_ref& bref) +bool pdu_session_res_item_cxt_rel_cpl_ext_ies_o::is_id_valid(const uint32_t& id) { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 72: - pdu_session_res_setup_list_cxt_res_present = true; - pdu_session_res_setup_list_cxt_res.id = c.id; - pdu_session_res_setup_list_cxt_res.crit = c.crit; - pdu_session_res_setup_list_cxt_res.value = c.value.pdu_session_res_setup_list_cxt_res(); - break; - case 55: - pdu_session_res_failed_to_setup_list_cxt_res_present = true; - pdu_session_res_failed_to_setup_list_cxt_res.id = c.id; - pdu_session_res_failed_to_setup_list_cxt_res.crit = c.crit; - pdu_session_res_failed_to_setup_list_cxt_res.value = c.value.pdu_session_res_failed_to_setup_list_cxt_res(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + return 145 == id; } -void init_context_setup_resp_ies_container::to_json(json_writer& j) const +crit_e pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (pdu_session_res_setup_list_cxt_res_present) { - j.write_fieldname(""); - pdu_session_res_setup_list_cxt_res.to_json(j); - } - if (pdu_session_res_failed_to_setup_list_cxt_res_present) { - j.write_fieldname(""); - pdu_session_res_failed_to_setup_list_cxt_res.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); + if (id == 145) { + return crit_e::ignore; } - j.end_obj(); + asn1::log_error("The id=%d is not recognized", id); + return {}; } - -// InitialContextSetupResponse ::= SEQUENCE -SRSASN_CODE init_context_setup_resp_s::pack(bit_ref& bref) const +pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c +pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_ext(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + ext_c ret{}; + if (id != 145) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -SRSASN_CODE init_context_setup_resp_s::unpack(cbit_ref& bref) +presence_e pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_presence(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + if (id == 145) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -void init_context_setup_resp_s::to_json(json_writer& j) const + +// Extension ::= OPEN TYPE +void pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); + j.write_str("OCTET STRING", c.to_string()); j.end_obj(); } - -// RRCEstablishmentCause ::= ENUMERATED -std::string rrcestablishment_cause_opts::to_string() const +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::pack(bit_ref& bref) const { - static const char* options[] = {"emergency", - "highPriorityAccess", - "mt-Access", - "mo-Signalling", - "mo-Data", - "mo-VoiceCall", - "mo-VideoCall", - "mo-SMS", - "mps-PriorityAccess", - "mcs-PriorityAccess", - "notAvailable"}; - return convert_enum_idx(options, 11, value, "rrcestablishment_cause_e"); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -// UEContextRequest ::= ENUMERATED -std::string ue_context_request_opts::to_string() const +const char* pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::types_opts::to_string() const { - static const char* options[] = {"requested"}; - return convert_enum_idx(options, 1, value, "ue_context_request_e"); + static const char* options[] = {"OCTET STRING"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::types"); } -// InitialUEMessage-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t init_ue_msg_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceModifyItemModReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_modify_item_mod_req_ext_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {85, 38, 121, 90, 26, 3, 112, 0}; - return map_enum_number(options, 8, idx, "id"); + static const uint32_t options[] = {148}; + return map_enum_number(options, 1, idx, "id"); } -bool init_ue_msg_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_modify_item_mod_req_ext_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {85, 38, 121, 90, 26, 3, 112, 0}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; + return 148 == id; } -crit_e init_ue_msg_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_modify_item_mod_req_ext_ies_o::get_crit(const uint32_t& id) { - switch (id) { - case 85: - return crit_e::reject; - case 38: - return crit_e::reject; - case 121: - return crit_e::reject; - case 90: - return crit_e::ignore; - case 26: - return crit_e::reject; - case 3: - return crit_e::ignore; - case 112: - return crit_e::ignore; - case 0: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + if (id == 148) { + return crit_e::reject; } + asn1::log_error("The id=%d is not recognized", id); return {}; } -init_ue_msg_ies_o::value_c init_ue_msg_ies_o::get_value(const uint32_t& id) +pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c +pdu_session_res_modify_item_mod_req_ext_ies_o::get_ext(const uint32_t& id) { - value_c ret{}; - switch (id) { - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 38: - ret.set(value_c::types::nas_pdu); - break; - case 121: - ret.set(value_c::types::user_location_info); - break; - case 90: - ret.set(value_c::types::rrcestablishment_cause); - break; - case 26: - ret.set(value_c::types::five_g_s_tmsi); - break; - case 3: - ret.set(value_c::types::amf_set_id); - break; - case 112: - ret.set(value_c::types::ue_context_request); - break; - case 0: - ret.set(value_c::types::allowed_nssai); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + ext_c ret{}; + if (id != 148) { + asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e init_ue_msg_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_modify_item_mod_req_ext_ies_o::get_presence(const uint32_t& id) { - switch (id) { - case 85: - return presence_e::mandatory; - case 38: - return presence_e::mandatory; - case 121: - return presence_e::mandatory; - case 90: - return presence_e::mandatory; - case 26: - return presence_e::optional; - case 3: - return presence_e::optional; - case 112: - return presence_e::optional; - case 0: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + if (id == 148) { + return presence_e::optional; } + asn1::log_error("The id=%d is not recognized", id); return {}; } -// Value ::= OPEN TYPE -uint64_t& init_ue_msg_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -user_location_info_c& init_ue_msg_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -rrcestablishment_cause_e& init_ue_msg_ies_o::value_c::rrcestablishment_cause() -{ - assert_choice_type("RRCEstablishmentCause", type_.to_string(), "Value"); - return c.get(); -} -five_g_s_tmsi_s& init_ue_msg_ies_o::value_c::five_g_s_tmsi() -{ - assert_choice_type("FiveG-S-TMSI", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<10, false, true>& init_ue_msg_ies_o::value_c::amf_set_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -ue_context_request_e& init_ue_msg_ies_o::value_c::ue_context_request() -{ - assert_choice_type("UEContextRequest", type_.to_string(), "Value"); - return c.get(); -} -allowed_nssai_l& init_ue_msg_ies_o::value_c::allowed_nssai() -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_ue_msg_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() const +// Extension ::= OPEN TYPE +void pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("S-NSSAI"); + c.to_json(j); + j.end_obj(); } -const user_location_info_c& init_ue_msg_ies_o::value_c::user_location_info() const +SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::pack(bit_ref& bref) const { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; } -const rrcestablishment_cause_e& init_ue_msg_ies_o::value_c::rrcestablishment_cause() const +SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - assert_choice_type("RRCEstablishmentCause", type_.to_string(), "Value"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -const five_g_s_tmsi_s& init_ue_msg_ies_o::value_c::five_g_s_tmsi() const + +const char* pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types_opts::to_string() const { - assert_choice_type("FiveG-S-TMSI", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"S-NSSAI"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types"); } -const fixed_bitstring<10, false, true>& init_ue_msg_ies_o::value_c::amf_set_id() const + +// PrivateIE-ID ::= CHOICE +void private_ie_id_c::set(types::options e) { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + type_ = e; } -const ue_context_request_e& init_ue_msg_ies_o::value_c::ue_context_request() const +uint32_t& private_ie_id_c::set_local() { - assert_choice_type("UEContextRequest", type_.to_string(), "Value"); - return c.get(); + set(types::local); + return c; } -const allowed_nssai_l& init_ue_msg_ies_o::value_c::allowed_nssai() const +void private_ie_id_c::set_global() { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); + set(types::global); } -void init_ue_msg_ies_o::value_c::destroy_() +void private_ie_id_c::to_json(json_writer& j) const { + j.start_obj(); switch (type_) { - case types::nas_pdu: - c.destroy >(); - break; - case types::user_location_info: - c.destroy(); - break; - case types::five_g_s_tmsi: - c.destroy(); - break; - case types::amf_set_id: - c.destroy >(); + case types::local: + j.write_int("local", c); break; - case types::allowed_nssai: - c.destroy(); + case types::global: break; default: - break; + log_invalid_choice_id(type_, "private_ie_id_c"); } + j.end_obj(); } -void init_ue_msg_ies_o::value_c::set(types::options e) +SRSASN_CODE private_ie_id_c::pack(bit_ref& bref) const { - destroy_(); - type_ = e; + type_.pack(bref); switch (type_) { - case types::ran_ue_ngap_id: - break; - case types::nas_pdu: - c.init >(); - break; - case types::user_location_info: - c.init(); - break; - case types::rrcestablishment_cause: - break; - case types::five_g_s_tmsi: - c.init(); - break; - case types::amf_set_id: - c.init >(); - break; - case types::ue_context_request: - break; - case types::allowed_nssai: - c.init(); + case types::local: + HANDLE_CODE(pack_integer(bref, c, (uint32_t)0u, (uint32_t)65535u, false, true)); break; - case types::nulltype: + case types::global: break; default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + log_invalid_choice_id(type_, "private_ie_id_c"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -init_ue_msg_ies_o::value_c::value_c(const init_ue_msg_ies_o::value_c& other) +SRSASN_CODE private_ie_id_c::unpack(cbit_ref& bref) { - type_ = other.type(); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::nas_pdu: - c.init(other.c.get >()); - break; - case types::user_location_info: - c.init(other.c.get()); - break; - case types::rrcestablishment_cause: - c.init(other.c.get()); - break; - case types::five_g_s_tmsi: - c.init(other.c.get()); - break; - case types::amf_set_id: - c.init(other.c.get >()); - break; - case types::ue_context_request: - c.init(other.c.get()); - break; - case types::allowed_nssai: - c.init(other.c.get()); + case types::local: + HANDLE_CODE(unpack_integer(c, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); break; - case types::nulltype: + case types::global: break; default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + log_invalid_choice_id(type_, "private_ie_id_c"); + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; } -init_ue_msg_ies_o::value_c& init_ue_msg_ies_o::value_c::operator=(const init_ue_msg_ies_o::value_c& other) + +const char* private_ie_id_c::types_opts::to_string() const { - if (this == &other) { - return *this; + static const char* options[] = {"local", "global"}; + return convert_enum_idx(options, 2, value, "private_ie_id_c::types"); +} + +// UE-associatedLogicalNG-connectionItem ::= SEQUENCE +SRSASN_CODE ue_associated_lc_ng_conn_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(amf_ue_ngap_id_present, 1)); + HANDLE_CODE(bref.pack(ran_ue_ngap_id_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (amf_ue_ngap_id_present) { + HANDLE_CODE(pack_integer(bref, amf_ue_ngap_id, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); } - set(other.type()); - switch (type_) { - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::nas_pdu: - c.set(other.c.get >()); - break; - case types::user_location_info: - c.set(other.c.get()); - break; - case types::rrcestablishment_cause: - c.set(other.c.get()); - break; - case types::five_g_s_tmsi: - c.set(other.c.get()); - break; - case types::amf_set_id: - c.set(other.c.get >()); - break; - case types::ue_context_request: - c.set(other.c.get()); - break; - case types::allowed_nssai: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + if (ran_ue_ngap_id_present) { + HANDLE_CODE(pack_integer(bref, ran_ue_ngap_id, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void init_ue_msg_ies_o::value_c::to_json(json_writer& j) const +SRSASN_CODE ue_associated_lc_ng_conn_item_s::unpack(cbit_ref& bref) { - j.start_obj(); - switch (type_) { - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::nas_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); - break; - case types::rrcestablishment_cause: - j.write_str("RRCEstablishmentCause", c.get().to_string()); - break; - case types::five_g_s_tmsi: - j.write_fieldname("FiveG-S-TMSI"); - c.get().to_json(j); - break; - case types::amf_set_id: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::ue_context_request: - j.write_str("UEContextRequest", "requested"); - break; - case types::allowed_nssai: - j.start_array("AllowedNSSAI"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(amf_ue_ngap_id_present, 1)); + HANDLE_CODE(bref.unpack(ran_ue_ngap_id_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (amf_ue_ngap_id_present) { + HANDLE_CODE(unpack_integer(amf_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); } - j.end_obj(); + if (ran_ue_ngap_id_present) { + HANDLE_CODE(unpack_integer(ran_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -SRSASN_CODE init_ue_msg_ies_o::value_c::pack(bit_ref& bref) const +void ue_associated_lc_ng_conn_item_s::to_json(json_writer& j) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::rrcestablishment_cause: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::five_g_s_tmsi: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::amf_set_id: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::ue_context_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::allowed_nssai: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; + j.start_obj(); + if (amf_ue_ngap_id_present) { + j.write_int("aMF-UE-NGAP-ID", amf_ue_ngap_id); } - return SRSASN_SUCCESS; -} -SRSASN_CODE init_ue_msg_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::rrcestablishment_cause: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::five_g_s_tmsi: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::amf_set_id: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::ue_context_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::allowed_nssai: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; + if (ran_ue_ngap_id_present) { + j.write_int("rAN-UE-NGAP-ID", ran_ue_ngap_id); } - return SRSASN_SUCCESS; + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -std::string init_ue_msg_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"INTEGER (0..4294967295)", - "OCTET STRING", - "UserLocationInformation", - "RRCEstablishmentCause", - "FiveG-S-TMSI", - "BIT STRING", - "UEContextRequest", - "AllowedNSSAI"}; - return convert_enum_idx(options, 8, value, "init_ue_msg_ies_o::value_c::types"); -} -uint8_t init_ue_msg_ies_o::value_c::types_opts::to_number() const +// UEPresence ::= ENUMERATED +const char* ue_presence_opts::to_string() const { - static const uint8_t options[] = {0}; - return map_enum_number(options, 1, value, "init_ue_msg_ies_o::value_c::types"); + static const char* options[] = {"in", "out", "unknown"}; + return convert_enum_idx(options, 3, value, "ue_presence_e"); } -template struct asn1::ngap_nr::protocol_ie_field_s; - -init_ue_msg_ies_container::init_ue_msg_ies_container() : - ran_ue_ngap_id(85, crit_e::reject), - nas_pdu(38, crit_e::reject), - user_location_info(121, crit_e::reject), - rrcestablishment_cause(90, crit_e::ignore), - five_g_s_tmsi(26, crit_e::reject), - amf_set_id(3, crit_e::ignore), - ue_context_request(112, crit_e::ignore), - allowed_nssai(0, crit_e::reject) -{} -SRSASN_CODE init_ue_msg_ies_container::pack(bit_ref& bref) const +// OverloadStartNSSAIItem ::= SEQUENCE +SRSASN_CODE overload_start_nssai_item_s::pack(bit_ref& bref) const { - uint32_t nof_ies = 4; - nof_ies += five_g_s_tmsi_present ? 1 : 0; - nof_ies += amf_set_id_present ? 1 : 0; - nof_ies += ue_context_request_present ? 1 : 0; - nof_ies += allowed_nssai_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(slice_overload_resp_present, 1)); + HANDLE_CODE(bref.pack(slice_traffic_load_reduction_ind_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(nas_pdu.pack(bref)); - HANDLE_CODE(user_location_info.pack(bref)); - HANDLE_CODE(rrcestablishment_cause.pack(bref)); - if (five_g_s_tmsi_present) { - HANDLE_CODE(five_g_s_tmsi.pack(bref)); - } - if (amf_set_id_present) { - HANDLE_CODE(amf_set_id.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, slice_overload_list, 1, 1024, true)); + if (slice_overload_resp_present) { + HANDLE_CODE(slice_overload_resp.pack(bref)); } - if (ue_context_request_present) { - HANDLE_CODE(ue_context_request.pack(bref)); + if (slice_traffic_load_reduction_ind_present) { + HANDLE_CODE(pack_integer(bref, slice_traffic_load_reduction_ind, (uint8_t)1u, (uint8_t)99u, false, true)); } - if (allowed_nssai_present) { - HANDLE_CODE(allowed_nssai.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE init_ue_msg_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE overload_start_nssai_item_s::unpack(cbit_ref& bref) { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(slice_overload_resp_present, 1)); + HANDLE_CODE(bref.unpack(slice_traffic_load_reduction_ind_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 38: - nof_mandatory_ies--; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); - break; - case 121: - nof_mandatory_ies--; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - case 90: - nof_mandatory_ies--; - rrcestablishment_cause.id = c.id; - rrcestablishment_cause.crit = c.crit; - rrcestablishment_cause.value = c.value.rrcestablishment_cause(); - break; - case 26: - five_g_s_tmsi_present = true; - five_g_s_tmsi.id = c.id; - five_g_s_tmsi.crit = c.crit; - five_g_s_tmsi.value = c.value.five_g_s_tmsi(); - break; - case 3: - amf_set_id_present = true; - amf_set_id.id = c.id; - amf_set_id.crit = c.crit; - amf_set_id.value = c.value.amf_set_id(); - break; - case 112: - ue_context_request_present = true; - ue_context_request.id = c.id; - ue_context_request.crit = c.crit; - ue_context_request.value = c.value.ue_context_request(); - break; - case 0: - allowed_nssai_present = true; - allowed_nssai.id = c.id; - allowed_nssai.crit = c.crit; - allowed_nssai.value = c.value.allowed_nssai(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } + HANDLE_CODE(unpack_dyn_seq_of(slice_overload_list, bref, 1, 1024, true)); + if (slice_overload_resp_present) { + HANDLE_CODE(slice_overload_resp.unpack(bref)); } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; + if (slice_traffic_load_reduction_ind_present) { + HANDLE_CODE(unpack_integer(slice_traffic_load_reduction_ind, bref, (uint8_t)1u, (uint8_t)99u, false, true)); } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + return SRSASN_SUCCESS; } -void init_ue_msg_ies_container::to_json(json_writer& j) const +void overload_start_nssai_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - nas_pdu.to_json(j); - j.write_fieldname(""); - user_location_info.to_json(j); - j.write_fieldname(""); - rrcestablishment_cause.to_json(j); - if (five_g_s_tmsi_present) { - j.write_fieldname(""); - five_g_s_tmsi.to_json(j); + j.start_array("sliceOverloadList"); + for (const auto& e1 : slice_overload_list) { + e1.to_json(j); } - if (amf_set_id_present) { - j.write_fieldname(""); - amf_set_id.to_json(j); + j.end_array(); + if (slice_overload_resp_present) { + j.write_fieldname("sliceOverloadResponse"); + slice_overload_resp.to_json(j); } - if (ue_context_request_present) { - j.write_fieldname(""); - ue_context_request.to_json(j); + if (slice_traffic_load_reduction_ind_present) { + j.write_int("sliceTrafficLoadReductionIndication", slice_traffic_load_reduction_ind); } - if (allowed_nssai_present) { - j.write_fieldname(""); - allowed_nssai.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } j.end_obj(); } -// InitialUEMessage ::= SEQUENCE -SRSASN_CODE init_ue_msg_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToModifyItemModCfm ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_cfm_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); - bref.align_bytes_zero(); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_ind_unsuccessful_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE init_ue_msg_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_cfm_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - bref.align_bytes(); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_ind_unsuccessful_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } return SRSASN_SUCCESS; } -void init_ue_msg_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_modify_item_mod_cfm_s::to_json(json_writer& j) const { - j.start_array(); j.start_obj(); - j.start_obj("InitialUEMessage"); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceModifyIndicationUnsuccessfulTransfer", + pdu_session_res_modify_ind_unsuccessful_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } j.end_obj(); - j.end_array(); } -// VolumeTimedReport-Item ::= SEQUENCE -SRSASN_CODE volume_timed_report_item_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToModifyItemModRes ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_res_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(start_time_stamp.pack(bref)); - HANDLE_CODE(end_time_stamp.pack(bref)); - HANDLE_CODE(pack_integer(bref, usage_count_ul, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); - HANDLE_CODE(pack_integer(bref, usage_count_dl, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE volume_timed_report_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_res_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(start_time_stamp.unpack(bref)); - HANDLE_CODE(end_time_stamp.unpack(bref)); - HANDLE_CODE(unpack_integer(usage_count_ul, bref, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); - HANDLE_CODE(unpack_integer(usage_count_dl, bref, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void volume_timed_report_item_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_modify_item_mod_res_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("startTimeStamp", start_time_stamp.to_string()); - j.write_str("endTimeStamp", end_time_stamp.to_string()); - j.write_int("usageCountUL", usage_count_ul); - j.write_int("usageCountDL", usage_count_dl); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceModifyUnsuccessfulTransfer", pdu_session_res_modify_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22511,45 +22011,38 @@ void volume_timed_report_item_s::to_json(json_writer& j) const j.end_obj(); } -// QoSFlowsUsageReport-Item ::= SEQUENCE -SRSASN_CODE qo_sflows_usage_report_item_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToSetupItemPSReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_setup_item_ps_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(rat_type.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, qo_sflows_timed_report_list, 1, 2, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_setup_failed_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qo_sflows_usage_report_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_setup_item_ps_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(rat_type.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(qo_sflows_timed_report_list, bref, 1, 2, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_setup_failed_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qo_sflows_usage_report_item_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_setup_item_ps_req_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - j.write_str("rATType", rat_type.to_string()); - j.start_array("qoSFlowsTimedReportList"); - for (const auto& e1 : qo_sflows_timed_report_list) { - e1.to_json(j); - } - j.end_array(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pathSwitchRequestSetupFailedTransfer", path_switch_request_setup_failed_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22557,48 +22050,38 @@ void qo_sflows_usage_report_item_s::to_json(json_writer& j) const j.end_obj(); } -std::string qo_sflows_usage_report_item_s::rat_type_opts::to_string() const -{ - static const char* options[] = {"nr", "eutra"}; - return convert_enum_idx(options, 2, value, "qo_sflows_usage_report_item_s::rat_type_e_"); -} - -// PDUSessionUsageReport ::= SEQUENCE -SRSASN_CODE pdu_session_usage_report_s::pack(bit_ref& bref) const +// PDUSessionResourceFailedToSetupItemSURes ::= SEQUENCE +SRSASN_CODE pdu_session_res_failed_to_setup_item_su_res_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(rat_type.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, pdu_session_timed_report_list, 1, 2, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_usage_report_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_failed_to_setup_item_su_res_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(rat_type.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(pdu_session_timed_report_list, bref, 1, 2, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_usage_report_s::to_json(json_writer& j) const +void pdu_session_res_failed_to_setup_item_su_res_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("rATType", rat_type.to_string()); - j.start_array("pDUSessionTimedReportList"); - for (const auto& e1 : pdu_session_timed_report_list) { - e1.to_json(j); - } - j.end_array(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22606,172 +22089,109 @@ void pdu_session_usage_report_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdu_session_usage_report_s::rat_type_opts::to_string() const -{ - static const char* options[] = {"nr", "eutra"}; - return convert_enum_idx(options, 2, value, "pdu_session_usage_report_s::rat_type_e_"); -} - -// NotificationCause ::= ENUMERATED -std::string notif_cause_opts::to_string() const -{ - static const char* options[] = {"fulfilled", "not-fulfilled"}; - return convert_enum_idx(options, 2, value, "notif_cause_e"); -} - -// QosFlowAddOrModifyRequestItem ::= SEQUENCE -SRSASN_CODE qos_flow_add_or_modify_request_item_s::pack(bit_ref& bref) const +// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(qos_flow_level_qos_params_present, 1)); - HANDLE_CODE(bref.pack(erab_id_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - if (qos_flow_level_qos_params_present) { - HANDLE_CODE(qos_flow_level_qos_params.pack(bref)); - } - if (erab_id_present) { - HANDLE_CODE(pack_integer(bref, erab_id, (uint8_t)0u, (uint8_t)15u, true, true)); - } + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_add_or_modify_request_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(qos_flow_level_qos_params_present, 1)); - HANDLE_CODE(bref.unpack(erab_id_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - if (qos_flow_level_qos_params_present) { - HANDLE_CODE(qos_flow_level_qos_params.unpack(bref)); - } - if (erab_id_present) { - HANDLE_CODE(unpack_integer(erab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); - } + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); } return SRSASN_SUCCESS; } -void qos_flow_add_or_modify_request_item_s::to_json(json_writer& j) const +void pdu_session_res_item_cxt_rel_cpl_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - if (qos_flow_level_qos_params_present) { - j.write_fieldname("qosFlowLevelQosParameters"); - qos_flow_level_qos_params.to_json(j); - } - if (erab_id_present) { - j.write_int("e-RAB-ID", erab_id); - } + j.write_int("pDUSessionID", pdu_session_id); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); } j.end_obj(); } -// SecondaryRATUsageInformation ::= SEQUENCE -SRSASN_CODE secondary_ratusage_info_s::pack(bit_ref& bref) const +// PDUSessionResourceItemCxtRelReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(pdu_session_usage_report_present, 1)); - HANDLE_CODE(bref.pack(qos_flows_usage_report_list_present, 1)); - HANDLE_CODE(bref.pack(ie_ext_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); - if (pdu_session_usage_report_present) { - HANDLE_CODE(pdu_session_usage_report.pack(bref)); - } - if (qos_flows_usage_report_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flows_usage_report_list, 1, 64, true)); - } - if (ie_ext_present) { - HANDLE_CODE(ie_ext.pack(bref)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE secondary_ratusage_info_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(pdu_session_usage_report_present, 1)); - HANDLE_CODE(bref.unpack(qos_flows_usage_report_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_ext_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - if (pdu_session_usage_report_present) { - HANDLE_CODE(pdu_session_usage_report.unpack(bref)); - } - if (qos_flows_usage_report_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flows_usage_report_list, bref, 1, 64, true)); - } - if (ie_ext_present) { - HANDLE_CODE(ie_ext.unpack(bref)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void secondary_ratusage_info_s::to_json(json_writer& j) const +void pdu_session_res_item_cxt_rel_req_s::to_json(json_writer& j) const { j.start_obj(); - if (pdu_session_usage_report_present) { - j.write_fieldname("pDUSessionUsageReport"); - pdu_session_usage_report.to_json(j); - } - if (qos_flows_usage_report_list_present) { - j.start_array("qosFlowsUsageReportList"); - for (const auto& e1 : qos_flows_usage_report_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_ext_present) { - j.write_fieldname("iE-Extension"); - ie_ext.to_json(j); + j.write_int("pDUSessionID", pdu_session_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } j.end_obj(); } -// UL-NGU-UP-TNLModifyItem ::= SEQUENCE -SRSASN_CODE ul_ngu_up_tnl_modify_item_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyItemModCfm ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); - HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_confirm_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ul_ngu_up_tnl_modify_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); - HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_confirm_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void ul_ngu_up_tnl_modify_item_s::to_json(json_writer& j) const +void pdu_session_res_modify_item_mod_cfm_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("uL-NGU-UP-TNLInformation"); - ul_ngu_up_tnl_info.to_json(j); - j.write_fieldname("dL-NGU-UP-TNLInformation"); - dl_ngu_up_tnl_info.to_json(j); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceModifyConfirmTransfer", pdu_session_res_modify_confirm_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22779,40 +22199,38 @@ void ul_ngu_up_tnl_modify_item_s::to_json(json_writer& j) const j.end_obj(); } -// UPTransportLayerInformationPairItem ::= SEQUENCE -SRSASN_CODE up_transport_layer_info_pair_item_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyItemModInd ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_item_mod_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); - HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_ind_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE up_transport_layer_info_pair_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_ind_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); - HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_ind_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void up_transport_layer_info_pair_item_s::to_json(json_writer& j) const +void pdu_session_res_modify_item_mod_ind_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("uL-NGU-UP-TNLInformation"); - ul_ngu_up_tnl_info.to_json(j); - j.write_fieldname("dL-NGU-UP-TNLInformation"); - dl_ngu_up_tnl_info.to_json(j); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceModifyIndicationTransfer", pdu_session_res_modify_ind_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22820,98 +22238,126 @@ void up_transport_layer_info_pair_item_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceReleaseResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_release_resp_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {144}; - return map_enum_number(options, 1, idx, "id"); -} -bool pdu_session_res_release_resp_transfer_ext_ies_o::is_id_valid(const uint32_t& id) -{ - return 144 == id; -} -crit_e pdu_session_res_release_resp_transfer_ext_ies_o::get_crit(const uint32_t& id) +// PDUSessionResourceModifyItemModReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_item_mod_req_s::pack(bit_ref& bref) const { - if (id == 144) { - return crit_e::ignore; + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(nas_pdu_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.pack(bref)); } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -pdu_session_res_release_resp_transfer_ext_ies_o::ext_c -pdu_session_res_release_resp_transfer_ext_ies_o::get_ext(const uint32_t& id) -{ - ext_c ret{}; - if (id != 144) { - asn1::log_error("The id=%d is not recognized", id); + HANDLE_CODE(pdu_session_res_modify_request_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } - return ret; + + return SRSASN_SUCCESS; } -presence_e pdu_session_res_release_resp_transfer_ext_ies_o::get_presence(const uint32_t& id) +SRSASN_CODE pdu_session_res_modify_item_mod_req_s::unpack(cbit_ref& bref) { - if (id == 144) { - return presence_e::optional; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.unpack(bref)); + } + HANDLE_CODE(pdu_session_res_modify_request_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -// Extension ::= OPEN TYPE -void pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_item_mod_req_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("SecondaryRATUsageInformation"); - c.to_json(j); + j.write_int("pDUSessionID", pdu_session_id); + if (nas_pdu_present) { + j.write_str("nAS-PDU", nas_pdu.to_string()); + } + j.write_str("pDUSessionResourceModifyRequestTransfer", pdu_session_res_modify_request_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } j.end_obj(); } -SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const + +// PDUSessionResourceModifyItemModRes ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_item_mod_res_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_resp_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_res_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_modify_resp_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + return SRSASN_SUCCESS; } - -std::string pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::types_opts::to_string() const +void pdu_session_res_modify_item_mod_res_s::to_json(json_writer& j) const { - static const char* options[] = {"SecondaryRATUsageInformation"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::types"); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceModifyResponseTransfer", pdu_session_res_modify_resp_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -// QosFlowAcceptedItem ::= SEQUENCE -SRSASN_CODE qos_flow_accepted_item_s::pack(bit_ref& bref) const +// PDUSessionResourceNotifyItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_notify_item_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_notify_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_accepted_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_notify_item_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_notify_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_accepted_item_s::to_json(json_writer& j) const +void pdu_session_res_notify_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceNotifyTransfer", pdu_session_res_notify_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22919,35 +22365,38 @@ void qos_flow_accepted_item_s::to_json(json_writer& j) const j.end_obj(); } -// QosFlowAddOrModifyResponseItem ::= SEQUENCE -SRSASN_CODE qos_flow_add_or_modify_resp_item_s::pack(bit_ref& bref) const +// PDUSessionResourceReleasedItemNot ::= SEQUENCE +SRSASN_CODE pdu_session_res_released_item_not_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_notify_released_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_add_or_modify_resp_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_released_item_not_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_notify_released_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_add_or_modify_resp_item_s::to_json(json_writer& j) const +void pdu_session_res_released_item_not_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceNotifyReleasedTransfer", pdu_session_res_notify_released_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22955,35 +22404,38 @@ void qos_flow_add_or_modify_resp_item_s::to_json(json_writer& j) const j.end_obj(); } -// QosFlowModifyConfirmItem ::= SEQUENCE -SRSASN_CODE qos_flow_modify_confirm_item_s::pack(bit_ref& bref) const +// PDUSessionResourceReleasedItemPSAck ::= SEQUENCE +SRSASN_CODE pdu_session_res_released_item_ps_ack_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_modify_confirm_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_released_item_ps_ack_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_modify_confirm_item_s::to_json(json_writer& j) const +void pdu_session_res_released_item_ps_ack_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pathSwitchRequestUnsuccessfulTransfer", path_switch_request_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -22991,38 +22443,38 @@ void qos_flow_modify_confirm_item_s::to_json(json_writer& j) const j.end_obj(); } -// QosFlowNotifyItem ::= SEQUENCE -SRSASN_CODE qos_flow_notify_item_s::pack(bit_ref& bref) const +// PDUSessionResourceReleasedItemPSFail ::= SEQUENCE +SRSASN_CODE pdu_session_res_released_item_ps_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(notif_cause.pack(bref)); + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_unsuccessful_transfer.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_notify_item_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_released_item_ps_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - HANDLE_CODE(notif_cause.unpack(bref)); + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_unsuccessful_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_notify_item_s::to_json(json_writer& j) const +void pdu_session_res_released_item_ps_fail_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - j.write_str("notificationCause", notif_cause.to_string()); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pathSwitchRequestUnsuccessfulTransfer", path_switch_request_unsuccessful_transfer.to_string()); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -23030,4302 +22482,4624 @@ void qos_flow_notify_item_s::to_json(json_writer& j) const j.end_obj(); } -// DL-NGU-TNLInformationReused ::= ENUMERATED -std::string dl_ngu_tnl_info_reused_opts::to_string() const +// PDUSessionResourceReleasedItemRelRes ::= SEQUENCE +SRSASN_CODE pdu_session_res_released_item_rel_res_s::pack(bit_ref& bref) const { - static const char* options[] = {"true"}; - return convert_enum_idx(options, 1, value, "dl_ngu_tnl_info_reused_e"); -} + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); -// OverloadAction ::= ENUMERATED -std::string overload_action_opts::to_string() const -{ - static const char* options[] = {"reject-non-emergency-mo-dt", - "reject-rrc-cr-signalling", - "permit-emergency-sessions-and-mobile-terminated-services-only", - "permit-high-priority-sessions-and-mobile-terminated-services-only"}; - return convert_enum_idx(options, 4, value, "overload_action_e"); -} + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_release_resp_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } -// PDUSessionResourceModifyIndicationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_modify_ind_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {144, 156}; - return map_enum_number(options, 2, idx, "id"); + return SRSASN_SUCCESS; } -bool pdu_session_res_modify_ind_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pdu_session_res_released_item_rel_res_s::unpack(cbit_ref& bref) { - static const uint32_t options[] = {144, 156}; - for (const auto& o : options) { - if (o == id) { - return true; - } + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_release_resp_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return false; + + return SRSASN_SUCCESS; } -crit_e pdu_session_res_modify_ind_transfer_ext_ies_o::get_crit(const uint32_t& id) +void pdu_session_res_released_item_rel_res_s::to_json(json_writer& j) const { - switch (id) { - case 144: - return crit_e::ignore; - case 156: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceReleaseResponseTransfer", pdu_session_res_release_resp_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } - return {}; + j.end_obj(); } -pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c -pdu_session_res_modify_ind_transfer_ext_ies_o::get_ext(const uint32_t& id) + +// PDUSessionResourceSecondaryRATUsageItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_secondary_ratusage_item_s::pack(bit_ref& bref) const { - ext_c ret{}; - switch (id) { - case 144: - ret.set(ext_c::types::secondary_ratusage_info); - break; - case 156: - ret.set(ext_c::types::security_result); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(secondary_rat_data_usage_report_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } - return ret; + + return SRSASN_SUCCESS; } -presence_e pdu_session_res_modify_ind_transfer_ext_ies_o::get_presence(const uint32_t& id) +SRSASN_CODE pdu_session_res_secondary_ratusage_item_s::unpack(cbit_ref& bref) { - switch (id) { - case 144: - return presence_e::optional; - case 156: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(secondary_rat_data_usage_report_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return {}; -} -// Extension ::= OPEN TYPE -secondary_ratusage_info_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::secondary_ratusage_info() -{ - assert_choice_type("SecondaryRATUsageInformation", type_.to_string(), "Extension"); - return c.get(); -} -security_result_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::security_result() -{ - assert_choice_type("SecurityResult", type_.to_string(), "Extension"); - return c.get(); + return SRSASN_SUCCESS; } -const secondary_ratusage_info_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::secondary_ratusage_info() const +void pdu_session_res_secondary_ratusage_item_s::to_json(json_writer& j) const { - assert_choice_type("SecondaryRATUsageInformation", type_.to_string(), "Extension"); - return c.get(); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("secondaryRATDataUsageReportTransfer", secondary_rat_data_usage_report_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const security_result_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::security_result() const + +// PDUSessionResourceSetupItemSUReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_item_su_req_s::pack(bit_ref& bref) const { - assert_choice_type("SecurityResult", type_.to_string(), "Extension"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(pdu_session_nas_pdu_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + if (pdu_session_nas_pdu_present) { + HANDLE_CODE(pdu_session_nas_pdu.pack(bref)); + } + HANDLE_CODE(s_nssai.pack(bref)); + HANDLE_CODE(pdu_session_res_setup_request_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::destroy_() +SRSASN_CODE pdu_session_res_setup_item_su_req_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::secondary_ratusage_info: - c.destroy(); - break; - case types::security_result: - c.destroy(); - break; - default: - break; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(pdu_session_nas_pdu_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + if (pdu_session_nas_pdu_present) { + HANDLE_CODE(pdu_session_nas_pdu.unpack(bref)); + } + HANDLE_CODE(s_nssai.unpack(bref)); + HANDLE_CODE(pdu_session_res_setup_request_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + + return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::set(types::options e) +void pdu_session_res_setup_item_su_req_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::secondary_ratusage_info: - c.init(); - break; - case types::security_result: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + if (pdu_session_nas_pdu_present) { + j.write_str("pDUSessionNAS-PDU", pdu_session_nas_pdu.to_string()); + } + j.write_fieldname("s-NSSAI"); + s_nssai.to_json(j); + j.write_str("pDUSessionResourceSetupRequestTransfer", pdu_session_res_setup_request_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } + j.end_obj(); } -pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::ext_c( - const pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& other) + +// PDUSessionResourceSetupItemSURes ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_item_su_res_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::secondary_ratusage_info: - c.init(other.c.get()); - break; - case types::security_result: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_resp_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } + + return SRSASN_SUCCESS; } -pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c:: - operator=(const pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& other) +SRSASN_CODE pdu_session_res_setup_item_su_res_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::secondary_ratusage_info: - c.set(other.c.get()); - break; - case types::security_result: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_setup_resp_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +void pdu_session_res_setup_item_su_res_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::secondary_ratusage_info: - j.write_fieldname("SecondaryRATUsageInformation"); - c.get().to_json(j); - break; - case types::security_result: - j.write_fieldname("SecurityResult"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceSetupResponseTransfer", pdu_session_res_setup_resp_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const + +// PDUSessionResourceSwitchedItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_switched_item_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::secondary_ratusage_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::security_result: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); - return SRSASN_ERROR_ENCODE_FAIL; + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_ack_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_switched_item_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::secondary_ratusage_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::security_result: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); - return SRSASN_ERROR_DECODE_FAIL; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_ack_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + return SRSASN_SUCCESS; } - -std::string pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::types_opts::to_string() const +void pdu_session_res_switched_item_s::to_json(json_writer& j) const { - static const char* options[] = {"SecondaryRATUsageInformation", "SecurityResult"}; - return convert_enum_idx(options, 2, value, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::types"); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pathSwitchRequestAcknowledgeTransfer", path_switch_request_ack_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -// PDUSessionResourceModifyRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_modify_request_transfer_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceToBeSwitchedDLItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_to_be_switched_dl_item_s::pack(bit_ref& bref) const { - static const uint32_t options[] = {130, 140, 129, 135, 137, 126}; - return map_enum_number(options, 6, idx, "id"); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool pdu_session_res_modify_request_transfer_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pdu_session_res_to_be_switched_dl_item_s::unpack(cbit_ref& bref) { - static const uint32_t options[] = {130, 140, 129, 135, 137, 126}; - for (const auto& o : options) { - if (o == id) { - return true; - } + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(path_switch_request_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return false; + + return SRSASN_SUCCESS; } -crit_e pdu_session_res_modify_request_transfer_ies_o::get_crit(const uint32_t& id) +void pdu_session_res_to_be_switched_dl_item_s::to_json(json_writer& j) const { - switch (id) { - case 130: - return crit_e::reject; - case 140: - return crit_e::reject; - case 129: - return crit_e::reject; - case 135: - return crit_e::reject; - case 137: - return crit_e::reject; - case 126: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pathSwitchRequestTransfer", path_switch_request_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } - return {}; + j.end_obj(); } -pdu_session_res_modify_request_transfer_ies_o::value_c -pdu_session_res_modify_request_transfer_ies_o::get_value(const uint32_t& id) + +// PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE +SRSASN_CODE pdu_session_res_to_release_item_rel_cmd_s::pack(bit_ref& bref) const { - value_c ret{}; - switch (id) { - case 130: - ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); - break; - case 140: - ret.set(value_c::types::ul_ngu_up_tnl_modify_list); - break; - case 129: - ret.set(value_c::types::network_instance); - break; - case 135: - ret.set(value_c::types::qos_flow_add_or_modify_request_list); - break; - case 137: - ret.set(value_c::types::qos_flow_to_release_list); - break; - case 126: - ret.set(value_c::types::add_ul_ngu_up_tnl_info); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_release_cmd_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } - return ret; + + return SRSASN_SUCCESS; } -presence_e pdu_session_res_modify_request_transfer_ies_o::get_presence(const uint32_t& id) +SRSASN_CODE pdu_session_res_to_release_item_rel_cmd_s::unpack(cbit_ref& bref) { - switch (id) { - case 130: - return presence_e::optional; - case 140: - return presence_e::optional; - case 129: - return presence_e::optional; - case 135: - return presence_e::optional; - case 137: - return presence_e::optional; - case 126: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pdu_session_res_release_cmd_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } - return {}; + + return SRSASN_SUCCESS; +} +void pdu_session_res_to_release_item_rel_cmd_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.write_str("pDUSessionResourceReleaseCommandTransfer", pdu_session_res_release_cmd_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -// Value ::= OPEN TYPE -pdu_session_aggregate_maximum_bit_rate_s& -pdu_session_res_modify_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() +// ResetAll ::= ENUMERATED +const char* reset_all_opts::to_string() const { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"reset-all"}; + return convert_enum_idx(options, 1, value, "reset_all_e"); } -ul_ngu_up_tnl_modify_list_l& pdu_session_res_modify_request_transfer_ies_o::value_c::ul_ngu_up_tnl_modify_list() + +// SupportedTAItem ::= SEQUENCE +SRSASN_CODE supported_ta_item_s::pack(bit_ref& bref) const { - assert_choice_type("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(tac.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, broadcast_plmn_list, 1, 12, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -uint16_t& pdu_session_res_modify_request_transfer_ies_o::value_c::network_instance() +SRSASN_CODE supported_ta_item_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(tac.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(broadcast_plmn_list, bref, 1, 12, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -qos_flow_add_or_modify_request_list_l& -pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_add_or_modify_request_list() +void supported_ta_item_s::to_json(json_writer& j) const { - assert_choice_type("QosFlowAddOrModifyRequestList", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_str("tAC", tac.to_string()); + j.start_array("broadcastPLMNList"); + for (const auto& e1 : broadcast_plmn_list) { + e1.to_json(j); + } + j.end_array(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -qos_flow_list_with_cause_l& pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_to_release_list() + +// TAIListForPagingItem ::= SEQUENCE +SRSASN_CODE tai_list_for_paging_item_s::pack(bit_ref& bref) const { - assert_choice_type("QosFlowListWithCause", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(tai.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -up_transport_layer_info_list_l& pdu_session_res_modify_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() +SRSASN_CODE tai_list_for_paging_item_s::unpack(cbit_ref& bref) { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(tai.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const pdu_session_aggregate_maximum_bit_rate_s& -pdu_session_res_modify_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() const +void tai_list_for_paging_item_s::to_json(json_writer& j) const { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("tAI"); + tai.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const ul_ngu_up_tnl_modify_list_l& -pdu_session_res_modify_request_transfer_ies_o::value_c::ul_ngu_up_tnl_modify_list() const + +// UE-NGAP-ID-pair ::= SEQUENCE +SRSASN_CODE ue_ngap_id_pair_s::pack(bit_ref& bref) const { - assert_choice_type("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, amf_ue_ngap_id, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + HANDLE_CODE(pack_integer(bref, ran_ue_ngap_id, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const uint16_t& pdu_session_res_modify_request_transfer_ies_o::value_c::network_instance() const +SRSASN_CODE ue_ngap_id_pair_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(amf_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + HANDLE_CODE(unpack_integer(ran_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const qos_flow_add_or_modify_request_list_l& -pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_add_or_modify_request_list() const +void ue_ngap_id_pair_s::to_json(json_writer& j) const { - assert_choice_type("QosFlowAddOrModifyRequestList", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_int("aMF-UE-NGAP-ID", amf_ue_ngap_id); + j.write_int("rAN-UE-NGAP-ID", ran_ue_ngap_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const qos_flow_list_with_cause_l& -pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_to_release_list() const + +// UEPresenceInAreaOfInterestItem ::= SEQUENCE +SRSASN_CODE ue_presence_in_area_of_interest_item_s::pack(bit_ref& bref) const { - assert_choice_type("QosFlowListWithCause", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, location_report_ref_id, (uint8_t)1u, (uint8_t)64u, true, true)); + HANDLE_CODE(uepresence.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const up_transport_layer_info_list_l& -pdu_session_res_modify_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() const +SRSASN_CODE ue_presence_in_area_of_interest_item_s::unpack(cbit_ref& bref) { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(location_report_ref_id, bref, (uint8_t)1u, (uint8_t)64u, true, true)); + HANDLE_CODE(uepresence.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -void pdu_session_res_modify_request_transfer_ies_o::value_c::destroy_() +void ue_presence_in_area_of_interest_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("locationReportingReferenceID", location_report_ref_id); + j.write_str("uEPresence", uepresence.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// CancelAllWarningMessages ::= ENUMERATED +const char* cancel_all_warning_msgs_opts::to_string() const +{ + static const char* options[] = {"true"}; + return convert_enum_idx(options, 1, value, "cancel_all_warning_msgs_e"); +} + +// ConcurrentWarningMessageInd ::= ENUMERATED +const char* concurrent_warning_msg_ind_opts::to_string() const +{ + static const char* options[] = {"true"}; + return convert_enum_idx(options, 1, value, "concurrent_warning_msg_ind_e"); +} + +// HandoverFlag ::= ENUMERATED +const char* ho_flag_opts::to_string() const +{ + static const char* options[] = {"handover-preparation"}; + return convert_enum_idx(options, 1, value, "ho_flag_e"); +} + +// IMSVoiceSupportIndicator ::= ENUMERATED +const char* ims_voice_support_ind_opts::to_string() const +{ + static const char* options[] = {"supported", "not-supported"}; + return convert_enum_idx(options, 2, value, "ims_voice_support_ind_e"); +} + +// PWSFailedCellIDList ::= CHOICE +void pws_failed_cell_id_list_c::destroy_() { switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.destroy(); - break; - case types::ul_ngu_up_tnl_modify_list: - c.destroy(); - break; - case types::qos_flow_add_or_modify_request_list: - c.destroy(); + case types::eutra_cgi_pws_failed_list: + c.destroy(); break; - case types::qos_flow_to_release_list: - c.destroy(); + case types::nr_cgi_pws_failed_list: + c.destroy(); break; - case types::add_ul_ngu_up_tnl_info: - c.destroy(); + case types::choice_exts: + c.destroy >(); break; default: break; } } -void pdu_session_res_modify_request_transfer_ies_o::value_c::set(types::options e) +void pws_failed_cell_id_list_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.init(); - break; - case types::ul_ngu_up_tnl_modify_list: - c.init(); - break; - case types::network_instance: - break; - case types::qos_flow_add_or_modify_request_list: - c.init(); + case types::eutra_cgi_pws_failed_list: + c.init(); break; - case types::qos_flow_to_release_list: - c.init(); + case types::nr_cgi_pws_failed_list: + c.init(); break; - case types::add_ul_ngu_up_tnl_info: - c.init(); + case types::choice_exts: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); } } -pdu_session_res_modify_request_transfer_ies_o::value_c::value_c( - const pdu_session_res_modify_request_transfer_ies_o::value_c& other) +pws_failed_cell_id_list_c::pws_failed_cell_id_list_c(const pws_failed_cell_id_list_c& other) { type_ = other.type(); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.init(other.c.get()); - break; - case types::ul_ngu_up_tnl_modify_list: - c.init(other.c.get()); - break; - case types::network_instance: - c.init(other.c.get()); - break; - case types::qos_flow_add_or_modify_request_list: - c.init(other.c.get()); + case types::eutra_cgi_pws_failed_list: + c.init(other.c.get()); break; - case types::qos_flow_to_release_list: - c.init(other.c.get()); + case types::nr_cgi_pws_failed_list: + c.init(other.c.get()); break; - case types::add_ul_ngu_up_tnl_info: - c.init(other.c.get()); + case types::choice_exts: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); } } -pdu_session_res_modify_request_transfer_ies_o::value_c& pdu_session_res_modify_request_transfer_ies_o::value_c:: - operator=(const pdu_session_res_modify_request_transfer_ies_o::value_c& other) +pws_failed_cell_id_list_c& pws_failed_cell_id_list_c::operator=(const pws_failed_cell_id_list_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - c.set(other.c.get()); - break; - case types::ul_ngu_up_tnl_modify_list: - c.set(other.c.get()); - break; - case types::network_instance: - c.set(other.c.get()); - break; - case types::qos_flow_add_or_modify_request_list: - c.set(other.c.get()); + case types::eutra_cgi_pws_failed_list: + c.set(other.c.get()); break; - case types::qos_flow_to_release_list: - c.set(other.c.get()); + case types::nr_cgi_pws_failed_list: + c.set(other.c.get()); break; - case types::add_ul_ngu_up_tnl_info: - c.set(other.c.get()); + case types::choice_exts: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); } return *this; } -void pdu_session_res_modify_request_transfer_ies_o::value_c::to_json(json_writer& j) const +eutra_cgi_list_l& pws_failed_cell_id_list_c::set_eutra_cgi_pws_failed_list() +{ + set(types::eutra_cgi_pws_failed_list); + return c.get(); +} +nr_cgi_list_l& pws_failed_cell_id_list_c::set_nr_cgi_pws_failed_list() +{ + set(types::nr_cgi_pws_failed_list); + return c.get(); +} +protocol_ie_single_container_s& pws_failed_cell_id_list_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void pws_failed_cell_id_list_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - j.write_fieldname("PDUSessionAggregateMaximumBitRate"); - c.get().to_json(j); - break; - case types::ul_ngu_up_tnl_modify_list: - j.start_array("UL-NGU-UP-TNLModifyList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::network_instance: - j.write_int("INTEGER (1..256,...)", c.get()); - break; - case types::qos_flow_add_or_modify_request_list: - j.start_array("QosFlowAddOrModifyRequestList"); - for (const auto& e1 : c.get()) { + case types::eutra_cgi_pws_failed_list: + j.start_array("eUTRA-CGI-PWSFailedList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::qos_flow_to_release_list: - j.start_array("QosFlowListWithCause"); - for (const auto& e1 : c.get()) { + case types::nr_cgi_pws_failed_list: + j.start_array("nR-CGI-PWSFailedList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::add_ul_ngu_up_tnl_info: - j.start_array("UPTransportLayerInformationList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pws_failed_cell_id_list_c::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); + type_.pack(bref); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ul_ngu_up_tnl_modify_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 4, true)); - break; - case types::network_instance: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::qos_flow_add_or_modify_request_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); + case types::eutra_cgi_pws_failed_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::qos_flow_to_release_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); + case types::nr_cgi_pws_failed_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16384, true)); break; - case types::add_ul_ngu_up_tnl_info: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 3, true)); + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_failed_cell_id_list_c::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::pdu_session_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); + case types::eutra_cgi_pws_failed_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::ul_ngu_up_tnl_modify_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 4, true)); + case types::nr_cgi_pws_failed_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16384, true)); break; - case types::network_instance: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::qos_flow_add_or_modify_request_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); - break; - case types::qos_flow_to_release_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); - break; - case types::add_ul_ngu_up_tnl_info: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 3, true)); + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_modify_request_transfer_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"PDUSessionAggregateMaximumBitRate", - "UL-NGU-UP-TNLModifyList", - "INTEGER (1..256,...)", - "QosFlowAddOrModifyRequestList", - "QosFlowListWithCause", - "UPTransportLayerInformationList"}; - return convert_enum_idx(options, 6, value, "pdu_session_res_modify_request_transfer_ies_o::value_c::types"); -} -uint8_t pdu_session_res_modify_request_transfer_ies_o::value_c::types_opts::to_number() const +const char* pws_failed_cell_id_list_c::types_opts::to_string() const { - if (value == network_instance) { - return 1; - } - invalid_enum_number(value, "pdu_session_res_modify_request_transfer_ies_o::value_c::types"); - return 0; + static const char* options[] = {"eUTRA-CGI-PWSFailedList", "nR-CGI-PWSFailedList", "choice-Extensions"}; + return convert_enum_idx(options, 3, value, "pws_failed_cell_id_list_c::types"); } -// PDUSessionResourceModifyResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_modify_resp_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {154}; - return map_enum_number(options, 1, idx, "id"); -} -bool pdu_session_res_modify_resp_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +// PagingOrigin ::= ENUMERATED +const char* paging_origin_opts::to_string() const { - return 154 == id; + static const char* options[] = {"non-3gpp"}; + return convert_enum_idx(options, 1, value, "paging_origin_e"); } -crit_e pdu_session_res_modify_resp_transfer_ext_ies_o::get_crit(const uint32_t& id) +int8_t paging_origin_opts::to_number() const { - if (id == 154) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; + static const int8_t options[] = {-3}; + return map_enum_number(options, 1, value, "paging_origin_e"); } -pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c -pdu_session_res_modify_resp_transfer_ext_ies_o::get_ext(const uint32_t& id) + +// PagingPriority ::= ENUMERATED +const char* paging_prio_opts::to_string() const { - ext_c ret{}; - if (id != 154) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; + static const char* options[] = { + "priolevel1", "priolevel2", "priolevel3", "priolevel4", "priolevel5", "priolevel6", "priolevel7", "priolevel8"}; + return convert_enum_idx(options, 8, value, "paging_prio_e"); } -presence_e pdu_session_res_modify_resp_transfer_ext_ies_o::get_presence(const uint32_t& id) +uint8_t paging_prio_opts::to_number() const { - if (id == 154) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; + static const uint8_t options[] = {1, 2, 3, 4, 5, 6, 7, 8}; + return map_enum_number(options, 8, value, "paging_prio_e"); } -// Extension ::= OPEN TYPE -void pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +// PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} +template +SRSASN_CODE private_ie_field_s::pack(bit_ref& bref) const { - j.start_obj(); - j.start_array("UPTransportLayerInformationPairList"); - for (const auto& e1 : c) { - e1.to_json(j); - } - j.end_array(); - j.end_obj(); + HANDLE_CODE(id.pack(bref)); + HANDLE_CODE(crit.pack(bref)); + HANDLE_CODE(value.pack(bref)); + + return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +template +SRSASN_CODE private_ie_field_s::unpack(cbit_ref& bref) { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); + HANDLE_CODE(id.unpack(bref)); + HANDLE_CODE(crit.unpack(bref)); + HANDLE_CODE(value.unpack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +template +void private_ie_field_s::to_json(json_writer& j) const { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); - return SRSASN_SUCCESS; + j.start_obj(); + j.write_fieldname("id"); + id.to_json(j); + j.write_str("criticality", crit.to_string()); + j.end_obj(); } -std::string pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::types_opts::to_string() const +// RRCState ::= ENUMERATED +const char* rrc_state_opts::to_string() const { - static const char* options[] = {"UPTransportLayerInformationPairList"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::types"); + static const char* options[] = {"inactive", "connected"}; + return convert_enum_idx(options, 2, value, "rrc_state_e"); } -// PDUSessionResourceNotifyReleasedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_notify_released_transfer_ext_ies_o::idx_to_id(uint32_t idx) +// ResetType ::= CHOICE +void reset_type_c::destroy_() { - static const uint32_t options[] = {144}; - return map_enum_number(options, 1, idx, "id"); + switch (type_) { + case types::part_of_ng_interface: + c.destroy(); + break; + case types::choice_exts: + c.destroy >(); + break; + default: + break; + } } -bool pdu_session_res_notify_released_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +void reset_type_c::set(types::options e) { - return 144 == id; + destroy_(); + type_ = e; + switch (type_) { + case types::ng_interface: + break; + case types::part_of_ng_interface: + c.init(); + break; + case types::choice_exts: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); + } } -crit_e pdu_session_res_notify_released_transfer_ext_ies_o::get_crit(const uint32_t& id) +reset_type_c::reset_type_c(const reset_type_c& other) { - if (id == 144) { - return crit_e::ignore; + type_ = other.type(); + switch (type_) { + case types::ng_interface: + c.init(other.c.get()); + break; + case types::part_of_ng_interface: + c.init(other.c.get()); + break; + case types::choice_exts: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); } - asn1::log_error("The id=%d is not recognized", id); - return {}; } -pdu_session_res_notify_released_transfer_ext_ies_o::ext_c -pdu_session_res_notify_released_transfer_ext_ies_o::get_ext(const uint32_t& id) +reset_type_c& reset_type_c::operator=(const reset_type_c& other) { - ext_c ret{}; - if (id != 144) { - asn1::log_error("The id=%d is not recognized", id); + if (this == &other) { + return *this; } - return ret; + set(other.type()); + switch (type_) { + case types::ng_interface: + c.set(other.c.get()); + break; + case types::part_of_ng_interface: + c.set(other.c.get()); + break; + case types::choice_exts: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); + } + + return *this; } -presence_e pdu_session_res_notify_released_transfer_ext_ies_o::get_presence(const uint32_t& id) +reset_all_e& reset_type_c::set_ng_interface() { - if (id == 144) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; + set(types::ng_interface); + return c.get(); } - -// Extension ::= OPEN TYPE -void pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +ue_associated_lc_ng_conn_list_l& reset_type_c::set_part_of_ng_interface() +{ + set(types::part_of_ng_interface); + return c.get(); +} +protocol_ie_single_container_s& reset_type_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void reset_type_c::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("SecondaryRATUsageInformation"); - c.to_json(j); + switch (type_) { + case types::ng_interface: + j.write_str("nG-Interface", "reset-all"); + break; + case types::part_of_ng_interface: + j.start_array("partOfNG-Interface"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); + } j.end_obj(); } -SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +SRSASN_CODE reset_type_c::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); + type_.pack(bref); + switch (type_) { + case types::ng_interface: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::part_of_ng_interface: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65536, true)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +SRSASN_CODE reset_type_c::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::ng_interface: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::part_of_ng_interface: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65536, true)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "reset_type_c"); + return SRSASN_ERROR_DECODE_FAIL; + } return SRSASN_SUCCESS; } -std::string pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::types_opts::to_string() const +const char* reset_type_c::types_opts::to_string() const { - static const char* options[] = {"SecondaryRATUsageInformation"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::types"); + static const char* options[] = {"nG-Interface", "partOfNG-Interface", "choice-Extensions"}; + return convert_enum_idx(options, 3, value, "reset_type_c::types"); } -// PDUSessionResourceNotifyTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_notify_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {144}; - return map_enum_number(options, 1, idx, "id"); -} -bool pdu_session_res_notify_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +// UE-NGAP-IDs ::= CHOICE +void ue_ngap_ids_c::destroy_() { - return 144 == id; + switch (type_) { + case types::ue_ngap_id_pair: + c.destroy(); + break; + case types::choice_exts: + c.destroy >(); + break; + default: + break; + } } -crit_e pdu_session_res_notify_transfer_ext_ies_o::get_crit(const uint32_t& id) +void ue_ngap_ids_c::set(types::options e) { - if (id == 144) { - return crit_e::ignore; + destroy_(); + type_ = e; + switch (type_) { + case types::ue_ngap_id_pair: + c.init(); + break; + case types::amf_ue_ngap_id: + break; + case types::choice_exts: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); } - asn1::log_error("The id=%d is not recognized", id); - return {}; } -pdu_session_res_notify_transfer_ext_ies_o::ext_c pdu_session_res_notify_transfer_ext_ies_o::get_ext(const uint32_t& id) +ue_ngap_ids_c::ue_ngap_ids_c(const ue_ngap_ids_c& other) { - ext_c ret{}; - if (id != 144) { - asn1::log_error("The id=%d is not recognized", id); + type_ = other.type(); + switch (type_) { + case types::ue_ngap_id_pair: + c.init(other.c.get()); + break; + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::choice_exts: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); } - return ret; } -presence_e pdu_session_res_notify_transfer_ext_ies_o::get_presence(const uint32_t& id) +ue_ngap_ids_c& ue_ngap_ids_c::operator=(const ue_ngap_ids_c& other) { - if (id == 144) { - return presence_e::optional; + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::ue_ngap_id_pair: + c.set(other.c.get()); + break; + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::choice_exts: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -// Extension ::= OPEN TYPE -void pdu_session_res_notify_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("SecondaryRATUsageInformation"); - c.to_json(j); - j.end_obj(); + return *this; } -SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +ue_ngap_id_pair_s& ue_ngap_ids_c::set_ue_ngap_id_pair() { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; + set(types::ue_ngap_id_pair); + return c.get(); } -SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +uint64_t& ue_ngap_ids_c::set_amf_ue_ngap_id() { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; + set(types::amf_ue_ngap_id); + return c.get(); } - -std::string pdu_session_res_notify_transfer_ext_ies_o::ext_c::types_opts::to_string() const +protocol_ie_single_container_s& ue_ngap_ids_c::set_choice_exts() { - static const char* options[] = {"SecondaryRATUsageInformation"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_notify_transfer_ext_ies_o::ext_c::types"); + set(types::choice_exts); + return c.get >(); } - -// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_resp_transfer_s::pack(bit_ref& bref) const +void ue_ngap_ids_c::to_json(json_writer& j) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + j.start_obj(); + switch (type_) { + case types::ue_ngap_id_pair: + j.write_fieldname("uE-NGAP-ID-pair"); + c.get().to_json(j); + break; + case types::amf_ue_ngap_id: + j.write_int("aMF-UE-NGAP-ID", c.get()); + break; + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); } - - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE pdu_session_res_release_resp_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_ngap_ids_c::pack(bit_ref& bref) const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + type_.pack(bref); + switch (type_) { + case types::ue_ngap_id_pair: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_release_resp_transfer_s::to_json(json_writer& j) const +SRSASN_CODE ue_ngap_ids_c::unpack(cbit_ref& bref) { - j.start_obj(); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::ue_ngap_id_pair: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ue_ngap_ids_c"); + return SRSASN_ERROR_DECODE_FAIL; } - j.end_obj(); + return SRSASN_SUCCESS; } -// PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t path_switch_request_ack_transfer_ext_ies_o::idx_to_id(uint32_t idx) +const char* ue_ngap_ids_c::types_opts::to_string() const { - static const uint32_t options[] = {154}; - return map_enum_number(options, 1, idx, "id"); + static const char* options[] = {"uE-NGAP-ID-pair", "aMF-UE-NGAP-ID", "choice-Extensions"}; + return convert_enum_idx(options, 3, value, "ue_ngap_ids_c::types"); } -bool path_switch_request_ack_transfer_ext_ies_o::is_id_valid(const uint32_t& id) + +// UEPagingIdentity ::= CHOICE +void ue_paging_id_c::destroy_() { - return 154 == id; + switch (type_) { + case types::five_g_s_tmsi: + c.destroy(); + break; + case types::choice_exts: + c.destroy >(); + break; + default: + break; + } } -crit_e path_switch_request_ack_transfer_ext_ies_o::get_crit(const uint32_t& id) +void ue_paging_id_c::set(types::options e) { - if (id == 154) { - return crit_e::ignore; + destroy_(); + type_ = e; + switch (type_) { + case types::five_g_s_tmsi: + c.init(); + break; + case types::choice_exts: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); } - asn1::log_error("The id=%d is not recognized", id); - return {}; } -path_switch_request_ack_transfer_ext_ies_o::ext_c -path_switch_request_ack_transfer_ext_ies_o::get_ext(const uint32_t& id) +ue_paging_id_c::ue_paging_id_c(const ue_paging_id_c& other) { - ext_c ret{}; - if (id != 154) { - asn1::log_error("The id=%d is not recognized", id); + type_ = other.type(); + switch (type_) { + case types::five_g_s_tmsi: + c.init(other.c.get()); + break; + case types::choice_exts: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); } - return ret; } -presence_e path_switch_request_ack_transfer_ext_ies_o::get_presence(const uint32_t& id) +ue_paging_id_c& ue_paging_id_c::operator=(const ue_paging_id_c& other) { - if (id == 154) { - return presence_e::optional; + if (this == &other) { + return *this; } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} - -// Extension ::= OPEN TYPE -void path_switch_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("UPTransportLayerInformationPairList"); - for (const auto& e1 : c) { - e1.to_json(j); + set(other.type()); + switch (type_) { + case types::five_g_s_tmsi: + c.set(other.c.get()); + break; + case types::choice_exts: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); } - j.end_array(); - j.end_obj(); -} -SRSASN_CODE path_switch_request_ack_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); - return SRSASN_SUCCESS; -} -SRSASN_CODE path_switch_request_ack_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); - return SRSASN_SUCCESS; -} - -std::string path_switch_request_ack_transfer_ext_ies_o::ext_c::types_opts::to_string() const -{ - static const char* options[] = {"UPTransportLayerInformationPairList"}; - return convert_enum_idx(options, 1, value, "path_switch_request_ack_transfer_ext_ies_o::ext_c::types"); -} -// PathSwitchRequestTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t path_switch_request_transfer_ext_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {155}; - return map_enum_number(options, 1, idx, "id"); -} -bool path_switch_request_transfer_ext_ies_o::is_id_valid(const uint32_t& id) -{ - return 155 == id; -} -crit_e path_switch_request_transfer_ext_ies_o::get_crit(const uint32_t& id) -{ - if (id == 155) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; + return *this; } -path_switch_request_transfer_ext_ies_o::ext_c path_switch_request_transfer_ext_ies_o::get_ext(const uint32_t& id) +five_g_s_tmsi_s& ue_paging_id_c::set_five_g_s_tmsi() { - ext_c ret{}; - if (id != 155) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; + set(types::five_g_s_tmsi); + return c.get(); } -presence_e path_switch_request_transfer_ext_ies_o::get_presence(const uint32_t& id) +protocol_ie_single_container_s& ue_paging_id_c::set_choice_exts() { - if (id == 155) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; + set(types::choice_exts); + return c.get >(); } - -// Extension ::= OPEN TYPE -void path_switch_request_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +void ue_paging_id_c::to_json(json_writer& j) const { j.start_obj(); - j.start_array("QosFlowPerTNLInformationList"); - for (const auto& e1 : c) { - e1.to_json(j); + switch (type_) { + case types::five_g_s_tmsi: + j.write_fieldname("fiveG-S-TMSI"); + c.get().to_json(j); + break; + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); } - j.end_array(); j.end_obj(); } -SRSASN_CODE path_switch_request_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); - return SRSASN_SUCCESS; -} -SRSASN_CODE path_switch_request_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); - return SRSASN_SUCCESS; -} - -std::string path_switch_request_transfer_ext_ies_o::ext_c::types_opts::to_string() const -{ - static const char* options[] = {"QosFlowPerTNLInformationList"}; - return convert_enum_idx(options, 1, value, "path_switch_request_transfer_ext_ies_o::ext_c::types"); -} - -// SliceOverloadItem ::= SEQUENCE -SRSASN_CODE slice_overload_item_s::pack(bit_ref& bref) const +SRSASN_CODE ue_paging_id_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(s_nssai.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + type_.pack(bref); + switch (type_) { + case types::five_g_s_tmsi: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE slice_overload_item_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_paging_id_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(s_nssai.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::five_g_s_tmsi: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ue_paging_id_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void slice_overload_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("s-NSSAI"); - s_nssai.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} -// UserPlaneSecurityInformation ::= SEQUENCE -SRSASN_CODE user_plane_security_info_s::pack(bit_ref& bref) const +const char* ue_paging_id_c::types_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(security_result.pack(bref)); - HANDLE_CODE(security_ind.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"fiveG-S-TMSI", "choice-Extensions"}; + return convert_enum_idx(options, 2, value, "ue_paging_id_c::types"); } -SRSASN_CODE user_plane_security_info_s::unpack(cbit_ref& bref) +uint8_t ue_paging_id_c::types_opts::to_number() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(security_result.unpack(bref)); - HANDLE_CODE(security_ind.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + static const uint8_t options[] = {5}; + return map_enum_number(options, 1, value, "ue_paging_id_c::types"); } -void user_plane_security_info_s::to_json(json_writer& j) const + +// UERetentionInformation ::= ENUMERATED +const char* ue_retention_info_opts::to_string() const { - j.start_obj(); - j.write_fieldname("securityResult"); - security_result.to_json(j); - j.write_fieldname("securityIndication"); - security_ind.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"ues-retained"}; + return convert_enum_idx(options, 1, value, "ue_retention_info_e"); } -// OverloadResponse ::= CHOICE -void overload_resp_c::destroy_() +// WarningAreaList ::= CHOICE +void warning_area_list_c::destroy_() { switch (type_) { + case types::eutra_cgi_list_for_warning: + c.destroy(); + break; + case types::nr_cgi_list_for_warning: + c.destroy(); + break; + case types::tai_list_for_warning: + c.destroy(); + break; + case types::emergency_area_id_list: + c.destroy(); + break; case types::choice_exts: - c.destroy >(); + c.destroy >(); break; default: break; } } -void overload_resp_c::set(types::options e) +void warning_area_list_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::overload_action: + case types::eutra_cgi_list_for_warning: + c.init(); + break; + case types::nr_cgi_list_for_warning: + c.init(); + break; + case types::tai_list_for_warning: + c.init(); + break; + case types::emergency_area_id_list: + c.init(); break; case types::choice_exts: - c.init >(); + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); } } -overload_resp_c::overload_resp_c(const overload_resp_c& other) +warning_area_list_c::warning_area_list_c(const warning_area_list_c& other) { type_ = other.type(); switch (type_) { - case types::overload_action: - c.init(other.c.get()); + case types::eutra_cgi_list_for_warning: + c.init(other.c.get()); + break; + case types::nr_cgi_list_for_warning: + c.init(other.c.get()); + break; + case types::tai_list_for_warning: + c.init(other.c.get()); + break; + case types::emergency_area_id_list: + c.init(other.c.get()); break; case types::choice_exts: - c.init(other.c.get >()); + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); } } -overload_resp_c& overload_resp_c::operator=(const overload_resp_c& other) +warning_area_list_c& warning_area_list_c::operator=(const warning_area_list_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::overload_action: - c.set(other.c.get()); + case types::eutra_cgi_list_for_warning: + c.set(other.c.get()); + break; + case types::nr_cgi_list_for_warning: + c.set(other.c.get()); + break; + case types::tai_list_for_warning: + c.set(other.c.get()); + break; + case types::emergency_area_id_list: + c.set(other.c.get()); break; case types::choice_exts: - c.set(other.c.get >()); + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); } return *this; } -void overload_resp_c::to_json(json_writer& j) const +eutra_cgi_list_for_warning_l& warning_area_list_c::set_eutra_cgi_list_for_warning() +{ + set(types::eutra_cgi_list_for_warning); + return c.get(); +} +nr_cgi_list_for_warning_l& warning_area_list_c::set_nr_cgi_list_for_warning() +{ + set(types::nr_cgi_list_for_warning); + return c.get(); +} +tai_list_for_warning_l& warning_area_list_c::set_tai_list_for_warning() +{ + set(types::tai_list_for_warning); + return c.get(); +} +emergency_area_id_list_l& warning_area_list_c::set_emergency_area_id_list() +{ + set(types::emergency_area_id_list); + return c.get(); +} +protocol_ie_single_container_s& warning_area_list_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void warning_area_list_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::overload_action: - j.write_str("overloadAction", c.get().to_string()); + case types::eutra_cgi_list_for_warning: + j.start_array("eUTRA-CGIListForWarning"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::nr_cgi_list_for_warning: + j.start_array("nR-CGIListForWarning"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::tai_list_for_warning: + j.start_array("tAIListForWarning"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::emergency_area_id_list: + j.start_array("emergencyAreaIDList"); + for (const auto& e1 : c.get()) { + j.write_str(e1.to_string()); + } + j.end_array(); break; case types::choice_exts: j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); + c.get >().to_json(j); break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); } j.end_obj(); } -SRSASN_CODE overload_resp_c::pack(bit_ref& bref) const +SRSASN_CODE warning_area_list_c::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::overload_action: - HANDLE_CODE(c.get().pack(bref)); + case types::eutra_cgi_list_for_warning: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); + break; + case types::nr_cgi_list_for_warning: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); + break; + case types::tai_list_for_warning: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); + break; + case types::emergency_area_id_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); break; case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE overload_resp_c::unpack(cbit_ref& bref) +SRSASN_CODE warning_area_list_c::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::overload_action: - HANDLE_CODE(c.get().unpack(bref)); + case types::eutra_cgi_list_for_warning: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); + break; + case types::nr_cgi_list_for_warning: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); + break; + case types::tai_list_for_warning: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); + break; + case types::emergency_area_id_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); break; case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "overload_resp_c"); + log_invalid_choice_id(type_, "warning_area_list_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string overload_resp_c::types_opts::to_string() const +const char* warning_area_list_c::types_opts::to_string() const { - static const char* options[] = {"overloadAction", "choice-Extensions"}; - return convert_enum_idx(options, 2, value, "overload_resp_c::types"); + static const char* options[] = {"eUTRA-CGIListForWarning", + "nR-CGIListForWarning", + "tAIListForWarning", + "emergencyAreaIDList", + "choice-Extensions"}; + return convert_enum_idx(options, 5, value, "warning_area_list_c::types"); } -// PDUSessionResourceItemCxtRelCpl-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_item_cxt_rel_cpl_ext_ies_o::idx_to_id(uint32_t idx) +// LocationReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t location_report_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {145}; - return map_enum_number(options, 1, idx, "id"); + static const uint32_t options[] = {10, 85, 121, 116, 33, 149}; + return map_enum_number(options, 6, idx, "id"); } -bool pdu_session_res_item_cxt_rel_cpl_ext_ies_o::is_id_valid(const uint32_t& id) +bool location_report_ies_o::is_id_valid(const uint32_t& id) { - return 145 == id; + static const uint32_t options[] = {10, 85, 121, 116, 33, 149}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -crit_e pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_crit(const uint32_t& id) +crit_e location_report_ies_o::get_crit(const uint32_t& id) { - if (id == 145) { - return crit_e::ignore; + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 121: + return crit_e::ignore; + case 116: + return crit_e::ignore; + case 33: + return crit_e::ignore; + case 149: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - asn1::log_error("The id=%d is not recognized", id); return {}; } -pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c -pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_ext(const uint32_t& id) +location_report_ies_o::value_c location_report_ies_o::get_value(const uint32_t& id) { - ext_c ret{}; - if (id != 145) { - asn1::log_error("The id=%d is not recognized", id); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 121: + ret.set(value_c::types::user_location_info); + break; + case 116: + ret.set(value_c::types::ue_presence_in_area_of_interest_list); + break; + case 33: + ret.set(value_c::types::location_report_request_type); + break; + case 149: + ret.set(value_c::types::ps_cell_info); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_presence(const uint32_t& id) +presence_e location_report_ies_o::get_presence(const uint32_t& id) { - if (id == 145) { - return presence_e::optional; + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 121: + return presence_e::mandatory; + case 116: + return presence_e::optional; + case 33: + return presence_e::mandatory; + case 149: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); } - asn1::log_error("The id=%d is not recognized", id); return {}; } -// Extension ::= OPEN TYPE -void pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("OCTET STRING", c.to_string()); - j.end_obj(); -} -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; -} - -std::string pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::types_opts::to_string() const +// Value ::= OPEN TYPE +void location_report_ies_o::value_c::destroy_() { - static const char* options[] = {"OCTET STRING"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_item_cxt_rel_cpl_ext_ies_o::ext_c::types"); + switch (type_) { + case types::user_location_info: + c.destroy(); + break; + case types::ue_presence_in_area_of_interest_list: + c.destroy(); + break; + case types::location_report_request_type: + c.destroy(); + break; + case types::ps_cell_info: + c.destroy(); + break; + default: + break; + } } - -// PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::pack(bit_ref& bref) const +void location_report_ies_o::value_c::set(types::options e) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_ng_uuptnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_modify_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_modify_confirm_list, 1, 64, true)); - HANDLE_CODE(ulngu_up_tnl_info.pack(bref)); - if (add_ng_uuptnl_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, add_ng_uuptnl_info, 1, 3, true)); - } - if (qos_flow_failed_to_modify_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_modify_list, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::user_location_info: + c.init(); + break; + case types::ue_presence_in_area_of_interest_list: + c.init(); + break; + case types::location_report_request_type: + c.init(); + break; + case types::ps_cell_info: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::unpack(cbit_ref& bref) +location_report_ies_o::value_c::value_c(const location_report_ies_o::value_c& other) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(add_ng_uuptnl_info_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_failed_to_modify_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_modify_confirm_list, bref, 1, 64, true)); - HANDLE_CODE(ulngu_up_tnl_info.unpack(bref)); - if (add_ng_uuptnl_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(add_ng_uuptnl_info, bref, 1, 3, true)); + type_ = other.type(); + switch (type_) { + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); + break; + case types::ue_presence_in_area_of_interest_list: + c.init(other.c.get()); + break; + case types::location_report_request_type: + c.init(other.c.get()); + break; + case types::ps_cell_info: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); } - if (qos_flow_failed_to_modify_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_modify_list, bref, 1, 64, true)); +} +location_report_ies_o::value_c& location_report_ies_o::value_c::operator=(const location_report_ies_o::value_c& other) +{ + if (this == &other) { + return *this; } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + set(other.type()); + switch (type_) { + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); + break; + case types::ue_presence_in_area_of_interest_list: + c.set(other.c.get()); + break; + case types::location_report_request_type: + c.set(other.c.get()); + break; + case types::ps_cell_info: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -void pdu_session_res_modify_confirm_transfer_s::to_json(json_writer& j) const +uint64_t& location_report_ies_o::value_c::amf_ue_ngap_id() { - j.start_obj(); - j.start_array("qosFlowModifyConfirmList"); - for (const auto& e1 : qos_flow_modify_confirm_list) { - e1.to_json(j); - } - j.end_array(); - j.write_fieldname("uLNGU-UP-TNLInformation"); - ulngu_up_tnl_info.to_json(j); - if (add_ng_uuptnl_info_present) { - j.start_array("additionalNG-UUPTNLInformation"); - for (const auto& e1 : add_ng_uuptnl_info) { - e1.to_json(j); - } - j.end_array(); - } - if (qos_flow_failed_to_modify_list_present) { - j.start_array("qosFlowFailedToModifyList"); - for (const auto& e1 : qos_flow_failed_to_modify_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ext_field_s; - -pdu_session_res_modify_ind_transfer_ext_ies_container::pdu_session_res_modify_ind_transfer_ext_ies_container() : - secondary_ratusage_info(144, crit_e::ignore), - security_result(156, crit_e::ignore) -{} -SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_container::pack(bit_ref& bref) const +uint64_t& location_report_ies_o::value_c::ran_ue_ngap_id() { - uint32_t nof_ies = 0; - nof_ies += secondary_ratusage_info_present ? 1 : 0; - nof_ies += security_result_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (secondary_ratusage_info_present) { - HANDLE_CODE(secondary_ratusage_info.pack(bref)); - } - if (security_result_present) { - HANDLE_CODE(security_result.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_container::unpack(cbit_ref& bref) +user_location_info_c& location_report_ies_o::value_c::user_location_info() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 1u, 65535u, true); - - for (; nof_ies > 0; --nof_ies) { - protocol_ext_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 144: - secondary_ratusage_info_present = true; - secondary_ratusage_info.id = c.id; - secondary_ratusage_info.crit = c.crit; - secondary_ratusage_info.ext = c.ext_value.secondary_ratusage_info(); - break; - case 156: - security_result_present = true; - security_result.id = c.id; - security_result.crit = c.crit; - security_result.ext = c.ext_value.security_result(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); } -void pdu_session_res_modify_ind_transfer_ext_ies_container::to_json(json_writer& j) const +ue_presence_in_area_of_interest_list_l& location_report_ies_o::value_c::ue_presence_in_area_of_interest_list() { - j.start_obj(); - if (secondary_ratusage_info_present) { - j.write_fieldname(""); - secondary_ratusage_info.to_json(j); - } - if (security_result_present) { - j.write_fieldname(""); - security_result.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ue_presence_in_area_of_interest_list, type_, "Value"); + return c.get(); } - -// PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_ind_transfer_s::pack(bit_ref& bref) const +location_report_request_type_s& location_report_ies_o::value_c::location_report_request_type() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_modify_ind_transfer_s::unpack(cbit_ref& bref) +ngran_cgi_c& location_report_ies_o::value_c::ps_cell_info() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(dlqos_flow_per_tnl_info.unpack(bref)); - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); } -void pdu_session_res_modify_ind_transfer_s::to_json(json_writer& j) const +const uint64_t& location_report_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& location_report_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const user_location_info_c& location_report_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const ue_presence_in_area_of_interest_list_l& +location_report_ies_o::value_c::ue_presence_in_area_of_interest_list() const +{ + assert_choice_type(types::ue_presence_in_area_of_interest_list, type_, "Value"); + return c.get(); +} +const location_report_request_type_s& location_report_ies_o::value_c::location_report_request_type() const +{ + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); +} +const ngran_cgi_c& location_report_ies_o::value_c::ps_cell_info() const +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +void location_report_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("dLQosFlowPerTNLInformation"); - dlqos_flow_per_tnl_info.to_json(j); - if (add_dl_qos_flow_per_tnl_info_present) { - j.start_array("additionalDLQosFlowPerTNLInformation"); - for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); + break; + case types::ue_presence_in_area_of_interest_list: + j.start_array("UEPresenceInAreaOfInterestList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::location_report_request_type: + j.write_fieldname("LocationReportingRequestType"); + c.get().to_json(j); + break; + case types::ps_cell_info: + j.write_fieldname("NGRAN-CGI"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); } j.end_obj(); } - -// PDUSessionResourceModifyIndicationUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_ind_unsuccessful_transfer_s::pack(bit_ref& bref) const +SRSASN_CODE location_report_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_presence_in_area_of_interest_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ps_cell_info: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_unsuccessful_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE location_report_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_presence_in_area_of_interest_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ps_cell_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_unsuccessful_transfer_s::to_json(json_writer& j) const + +const char* location_report_ies_o::value_c::types_opts::to_string() const { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "UserLocationInformation", + "UEPresenceInAreaOfInterestList", + "LocationReportingRequestType", + "NGRAN-CGI"}; + return convert_enum_idx(options, 6, value, "location_report_ies_o::value_c::types"); } -// PDUSessionResourceModifyItemModReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION -uint32_t pdu_session_res_modify_item_mod_req_ext_ies_o::idx_to_id(uint32_t idx) +// LocationReportingControlIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t location_report_ctrl_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {148}; - return map_enum_number(options, 1, idx, "id"); + static const uint32_t options[] = {10, 85, 33}; + return map_enum_number(options, 3, idx, "id"); } -bool pdu_session_res_modify_item_mod_req_ext_ies_o::is_id_valid(const uint32_t& id) +bool location_report_ctrl_ies_o::is_id_valid(const uint32_t& id) { - return 148 == id; + static const uint32_t options[] = {10, 85, 33}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -crit_e pdu_session_res_modify_item_mod_req_ext_ies_o::get_crit(const uint32_t& id) +crit_e location_report_ctrl_ies_o::get_crit(const uint32_t& id) { - if (id == 148) { - return crit_e::reject; + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 33: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - asn1::log_error("The id=%d is not recognized", id); return {}; } -pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c -pdu_session_res_modify_item_mod_req_ext_ies_o::get_ext(const uint32_t& id) +location_report_ctrl_ies_o::value_c location_report_ctrl_ies_o::get_value(const uint32_t& id) { - ext_c ret{}; - if (id != 148) { - asn1::log_error("The id=%d is not recognized", id); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 33: + ret.set(value_c::types::location_report_request_type); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_modify_item_mod_req_ext_ies_o::get_presence(const uint32_t& id) +presence_e location_report_ctrl_ies_o::get_presence(const uint32_t& id) { - if (id == 148) { - return presence_e::optional; + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 33: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); } - asn1::log_error("The id=%d is not recognized", id); return {}; } -// Extension ::= OPEN TYPE -void pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::to_json(json_writer& j) const +// Value ::= OPEN TYPE +void location_report_ctrl_ies_o::value_c::destroy_() { - j.start_obj(); - j.write_fieldname("S-NSSAI"); - c.to_json(j); - j.end_obj(); + switch (type_) { + case types::location_report_request_type: + c.destroy(); + break; + default: + break; + } } -SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::pack(bit_ref& bref) const +void location_report_ctrl_ies_o::value_c::set(types::options e) { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::location_report_request_type: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + } } -SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::unpack(cbit_ref& bref) +location_report_ctrl_ies_o::value_c::value_c(const location_report_ctrl_ies_o::value_c& other) { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; + type_ = other.type(); + switch (type_) { + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::location_report_request_type: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + } } - -std::string pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types_opts::to_string() const +location_report_ctrl_ies_o::value_c& +location_report_ctrl_ies_o::value_c::operator=(const location_report_ctrl_ies_o::value_c& other) { - static const char* options[] = {"S-NSSAI"}; - return convert_enum_idx(options, 1, value, "pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types"); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -pdu_session_res_modify_request_transfer_ies_container::pdu_session_res_modify_request_transfer_ies_container() : - pdu_session_aggregate_maximum_bit_rate(130, crit_e::reject), - ul_ngu_up_tnl_modify_list(140, crit_e::reject), - network_instance(129, crit_e::reject), - qos_flow_add_or_modify_request_list(135, crit_e::reject), - qos_flow_to_release_list(137, crit_e::reject), - add_ul_ngu_up_tnl_info(126, crit_e::reject) -{} -SRSASN_CODE pdu_session_res_modify_request_transfer_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += pdu_session_aggregate_maximum_bit_rate_present ? 1 : 0; - nof_ies += ul_ngu_up_tnl_modify_list_present ? 1 : 0; - nof_ies += network_instance_present ? 1 : 0; - nof_ies += qos_flow_add_or_modify_request_list_present ? 1 : 0; - nof_ies += qos_flow_to_release_list_present ? 1 : 0; - nof_ies += add_ul_ngu_up_tnl_info_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - if (pdu_session_aggregate_maximum_bit_rate_present) { - HANDLE_CODE(pdu_session_aggregate_maximum_bit_rate.pack(bref)); - } - if (ul_ngu_up_tnl_modify_list_present) { - HANDLE_CODE(ul_ngu_up_tnl_modify_list.pack(bref)); - } - if (network_instance_present) { - HANDLE_CODE(network_instance.pack(bref)); - } - if (qos_flow_add_or_modify_request_list_present) { - HANDLE_CODE(qos_flow_add_or_modify_request_list.pack(bref)); - } - if (qos_flow_to_release_list_present) { - HANDLE_CODE(qos_flow_to_release_list.pack(bref)); + if (this == &other) { + return *this; } - if (add_ul_ngu_up_tnl_info_present) { - HANDLE_CODE(add_ul_ngu_up_tnl_info.pack(bref)); + set(other.type()); + switch (type_) { + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::location_report_request_type: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -SRSASN_CODE pdu_session_res_modify_request_transfer_ies_container::unpack(cbit_ref& bref) +uint64_t& location_report_ctrl_ies_o::value_c::amf_ue_ngap_id() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 130: - pdu_session_aggregate_maximum_bit_rate_present = true; - pdu_session_aggregate_maximum_bit_rate.id = c.id; - pdu_session_aggregate_maximum_bit_rate.crit = c.crit; - pdu_session_aggregate_maximum_bit_rate.value = c.value.pdu_session_aggregate_maximum_bit_rate(); - break; - case 140: - ul_ngu_up_tnl_modify_list_present = true; - ul_ngu_up_tnl_modify_list.id = c.id; - ul_ngu_up_tnl_modify_list.crit = c.crit; - ul_ngu_up_tnl_modify_list.value = c.value.ul_ngu_up_tnl_modify_list(); - break; - case 129: - network_instance_present = true; - network_instance.id = c.id; - network_instance.crit = c.crit; - network_instance.value = c.value.network_instance(); - break; - case 135: - qos_flow_add_or_modify_request_list_present = true; - qos_flow_add_or_modify_request_list.id = c.id; - qos_flow_add_or_modify_request_list.crit = c.crit; - qos_flow_add_or_modify_request_list.value = c.value.qos_flow_add_or_modify_request_list(); - break; - case 137: - qos_flow_to_release_list_present = true; - qos_flow_to_release_list.id = c.id; - qos_flow_to_release_list.crit = c.crit; - qos_flow_to_release_list.value = c.value.qos_flow_to_release_list(); - break; - case 126: - add_ul_ngu_up_tnl_info_present = true; - add_ul_ngu_up_tnl_info.id = c.id; - add_ul_ngu_up_tnl_info.crit = c.crit; - add_ul_ngu_up_tnl_info.value = c.value.add_ul_ngu_up_tnl_info(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -void pdu_session_res_modify_request_transfer_ies_container::to_json(json_writer& j) const +uint64_t& location_report_ctrl_ies_o::value_c::ran_ue_ngap_id() { - j.start_obj(); - if (pdu_session_aggregate_maximum_bit_rate_present) { - j.write_fieldname(""); - pdu_session_aggregate_maximum_bit_rate.to_json(j); - } - if (ul_ngu_up_tnl_modify_list_present) { - j.write_fieldname(""); - ul_ngu_up_tnl_modify_list.to_json(j); - } - if (network_instance_present) { - j.write_fieldname(""); - network_instance.to_json(j); - } - if (qos_flow_add_or_modify_request_list_present) { - j.write_fieldname(""); - qos_flow_add_or_modify_request_list.to_json(j); - } - if (qos_flow_to_release_list_present) { - j.write_fieldname(""); - qos_flow_to_release_list.to_json(j); - } - if (add_ul_ngu_up_tnl_info_present) { - j.write_fieldname(""); - add_ul_ngu_up_tnl_info.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } - -// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_request_transfer_s::pack(bit_ref& bref) const +location_report_request_type_s& location_report_ctrl_ies_o::value_c::location_report_request_type() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_modify_request_transfer_s::unpack(cbit_ref& bref) +const uint64_t& location_report_ctrl_ies_o::value_c::amf_ue_ngap_id() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -void pdu_session_res_modify_request_transfer_s::to_json(json_writer& j) const +const uint64_t& location_report_ctrl_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const location_report_request_type_s& location_report_ctrl_ies_o::value_c::location_report_request_type() const +{ + assert_choice_type(types::location_report_request_type, type_, "Value"); + return c.get(); +} +void location_report_ctrl_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::location_report_request_type: + j.write_fieldname("LocationReportingRequestType"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + } j.end_obj(); } - -// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::pack(bit_ref& bref) const +SRSASN_CODE location_report_ctrl_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dl_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_add_or_modify_resp_list_present, 1)); - HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_failed_to_add_or_modify_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (dl_ngu_up_tnl_info_present) { - HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); - } - if (ul_ngu_up_tnl_info_present) { - HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); - } - if (qos_flow_add_or_modify_resp_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_add_or_modify_resp_list, 1, 64, true)); - } - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); - } - if (qos_flow_failed_to_add_or_modify_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_add_or_modify_list, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE location_report_ctrl_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dl_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_add_or_modify_resp_list_present, 1)); - HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_failed_to_add_or_modify_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (dl_ngu_up_tnl_info_present) { - HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); - } - if (ul_ngu_up_tnl_info_present) { - HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); - } - if (qos_flow_add_or_modify_resp_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_add_or_modify_resp_list, bref, 1, 64, true)); - } - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); - } - if (qos_flow_failed_to_add_or_modify_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_add_or_modify_list, bref, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::location_report_request_type: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_transfer_s::to_json(json_writer& j) const + +const char* location_report_ctrl_ies_o::value_c::types_opts::to_string() const { - j.start_obj(); - if (dl_ngu_up_tnl_info_present) { - j.write_fieldname("dL-NGU-UP-TNLInformation"); - dl_ngu_up_tnl_info.to_json(j); - } - if (ul_ngu_up_tnl_info_present) { - j.write_fieldname("uL-NGU-UP-TNLInformation"); - ul_ngu_up_tnl_info.to_json(j); - } - if (qos_flow_add_or_modify_resp_list_present) { - j.start_array("qosFlowAddOrModifyResponseList"); - for (const auto& e1 : qos_flow_add_or_modify_resp_list) { - e1.to_json(j); - } - j.end_array(); - } - if (add_dl_qos_flow_per_tnl_info_present) { - j.start_array("additionalDLQosFlowPerTNLInformation"); - for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { - e1.to_json(j); - } - j.end_array(); - } - if (qos_flow_failed_to_add_or_modify_list_present) { - j.start_array("qosFlowFailedToAddOrModifyList"); - for (const auto& e1 : qos_flow_failed_to_add_or_modify_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - } - j.end_obj(); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "LocationReportingRequestType"}; + return convert_enum_idx(options, 3, value, "location_report_ctrl_ies_o::value_c::types"); } -// PDUSessionResourceModifyUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_unsuccessful_transfer_s::pack(bit_ref& bref) const +// LocationReportingFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t location_report_fail_ind_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {10, 85, 15}; + return map_enum_number(options, 3, idx, "id"); } -SRSASN_CODE pdu_session_res_modify_unsuccessful_transfer_s::unpack(cbit_ref& bref) +bool location_report_fail_ind_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.unpack(bref)); + static const uint32_t options[] = {10, 85, 15}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + return false; +} +crit_e location_report_fail_ind_ies_o::get_crit(const uint32_t& id) +{ + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 15: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -void pdu_session_res_modify_unsuccessful_transfer_s::to_json(json_writer& j) const +location_report_fail_ind_ies_o::value_c location_report_fail_ind_ies_o::get_value(const uint32_t& id) { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname("criticalityDiagnostics"); - crit_diagnostics.to_json(j); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 15: + ret.set(value_c::types::cause); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + return ret; +} +presence_e location_report_fail_ind_ies_o::get_presence(const uint32_t& id) +{ + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 15: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } -// PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_notify_released_transfer_s::pack(bit_ref& bref) const +// Value ::= OPEN TYPE +void location_report_fail_ind_ies_o::value_c::destroy_() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + switch (type_) { + case types::cause: + c.destroy(); + break; + default: + break; } - - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_released_transfer_s::unpack(cbit_ref& bref) +void location_report_fail_ind_ies_o::value_c::set(types::options e) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + destroy_(); + type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::cause: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -void pdu_session_res_notify_released_transfer_s::to_json(json_writer& j) const +location_report_fail_ind_ies_o::value_c::value_c(const location_report_fail_ind_ies_o::value_c& other) { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + type_ = other.type(); + switch (type_) { + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::cause: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); } - j.end_obj(); } - -// PDUSessionResourceNotifyTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_notify_transfer_s::pack(bit_ref& bref) const +location_report_fail_ind_ies_o::value_c& +location_report_fail_ind_ies_o::value_c::operator=(const location_report_fail_ind_ies_o::value_c& other) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(qos_flow_notify_list_present, 1)); - HANDLE_CODE(bref.pack(qos_flow_released_list_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (qos_flow_notify_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_notify_list, 1, 64, true)); - } - if (qos_flow_released_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_released_list, 1, 64, true)); + if (this == &other) { + return *this; } - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + set(other.type()); + switch (type_) { + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::cause: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -SRSASN_CODE pdu_session_res_notify_transfer_s::unpack(cbit_ref& bref) +uint64_t& location_report_fail_ind_ies_o::value_c::amf_ue_ngap_id() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(qos_flow_notify_list_present, 1)); - HANDLE_CODE(bref.unpack(qos_flow_released_list_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (qos_flow_notify_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_notify_list, bref, 1, 64, true)); - } - if (qos_flow_released_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_released_list, bref, 1, 64, true)); - } - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -void pdu_session_res_notify_transfer_s::to_json(json_writer& j) const +uint64_t& location_report_fail_ind_ies_o::value_c::ran_ue_ngap_id() { - j.start_obj(); - if (qos_flow_notify_list_present) { - j.start_array("qosFlowNotifyList"); - for (const auto& e1 : qos_flow_notify_list) { - e1.to_json(j); - } - j.end_array(); - } - if (qos_flow_released_list_present) { - j.start_array("qosFlowReleasedList"); - for (const auto& e1 : qos_flow_released_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - } - j.end_obj(); -} - -// PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_cmd_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_release_cmd_transfer_s::unpack(cbit_ref& bref) +cause_c& location_report_fail_ind_ies_o::value_c::cause() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } -void pdu_session_res_release_cmd_transfer_s::to_json(json_writer& j) const +const uint64_t& location_report_fail_ind_ies_o::value_c::amf_ue_ngap_id() const { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } - -// PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE -SRSASN_CODE path_switch_request_ack_transfer_s::pack(bit_ref& bref) const +const uint64_t& location_report_fail_ind_ies_o::value_c::ran_ue_ngap_id() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.pack(security_ind_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (ul_ngu_up_tnl_info_present) { - HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); - } - if (security_ind_present) { - HANDLE_CODE(security_ind.pack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE path_switch_request_ack_transfer_s::unpack(cbit_ref& bref) +const cause_c& location_report_fail_ind_ies_o::value_c::cause() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); - HANDLE_CODE(bref.unpack(security_ind_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (ul_ngu_up_tnl_info_present) { - HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); - } - if (security_ind_present) { - HANDLE_CODE(security_ind.unpack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } -void path_switch_request_ack_transfer_s::to_json(json_writer& j) const +void location_report_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - if (ul_ngu_up_tnl_info_present) { - j.write_fieldname("uL-NGU-UP-TNLInformation"); - ul_ngu_up_tnl_info.to_json(j); - } - if (security_ind_present) { - j.write_fieldname("securityIndication"); - security_ind.to_json(j); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); } j.end_obj(); } - -// PathSwitchRequestSetupFailedTransfer ::= SEQUENCE -SRSASN_CODE path_switch_request_setup_failed_transfer_s::pack(bit_ref& bref) const +SRSASN_CODE location_report_fail_ind_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::cause: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_setup_failed_transfer_s::unpack(cbit_ref& bref) +SRSASN_CODE location_report_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void path_switch_request_setup_failed_transfer_s::to_json(json_writer& j) const + +const char* location_report_fail_ind_ies_o::value_c::types_opts::to_string() const { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause"}; + return convert_enum_idx(options, 3, value, "location_report_fail_ind_ies_o::value_c::types"); } -// PathSwitchRequestTransfer ::= SEQUENCE -SRSASN_CODE path_switch_request_transfer_s::pack(bit_ref& bref) const +// NASNonDeliveryIndication-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t nas_non_delivery_ind_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dl_ngu_tnl_info_reused_present, 1)); - HANDLE_CODE(bref.pack(user_plane_security_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); - if (dl_ngu_tnl_info_reused_present) { - HANDLE_CODE(dl_ngu_tnl_info_reused.pack(bref)); - } - if (user_plane_security_info_present) { - HANDLE_CODE(user_plane_security_info.pack(bref)); - } - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_accepted_list, 1, 64, true)); - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {10, 85, 38, 15}; + return map_enum_number(options, 4, idx, "id"); } -SRSASN_CODE path_switch_request_transfer_s::unpack(cbit_ref& bref) +bool nas_non_delivery_ind_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dl_ngu_tnl_info_reused_present, 1)); - HANDLE_CODE(bref.unpack(user_plane_security_info_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); - if (dl_ngu_tnl_info_reused_present) { - HANDLE_CODE(dl_ngu_tnl_info_reused.unpack(bref)); - } - if (user_plane_security_info_present) { - HANDLE_CODE(user_plane_security_info.unpack(bref)); - } - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_accepted_list, bref, 1, 64, true)); - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + static const uint32_t options[] = {10, 85, 38, 15}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -void path_switch_request_transfer_s::to_json(json_writer& j) const +crit_e nas_non_delivery_ind_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - j.write_fieldname("dL-NGU-UP-TNLInformation"); - dl_ngu_up_tnl_info.to_json(j); - if (dl_ngu_tnl_info_reused_present) { - j.write_str("dL-NGU-TNLInformationReused", "true"); - } - if (user_plane_security_info_present) { - j.write_fieldname("userPlaneSecurityInformation"); - user_plane_security_info.to_json(j); - } - j.start_array("qosFlowAcceptedList"); - for (const auto& e1 : qos_flow_accepted_list) { - e1.to_json(j); - } - j.end_array(); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 38: + return crit_e::ignore; + case 15: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } - -// PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE -SRSASN_CODE path_switch_request_unsuccessful_transfer_s::pack(bit_ref& bref) const +nas_non_delivery_ind_ies_o::value_c nas_non_delivery_ind_ies_o::get_value(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(cause.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 38: + ret.set(value_c::types::nas_pdu); + break; + case 15: + ret.set(value_c::types::cause); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return ret; } -SRSASN_CODE path_switch_request_unsuccessful_transfer_s::unpack(cbit_ref& bref) +presence_e nas_non_delivery_ind_ies_o::get_presence(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(cause.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 38: + return presence_e::mandatory; + case 15: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -void path_switch_request_unsuccessful_transfer_s::to_json(json_writer& j) const + +// Value ::= OPEN TYPE +void nas_non_delivery_ind_ies_o::value_c::destroy_() { - j.start_obj(); - j.write_fieldname("cause"); - cause.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::nas_pdu: + c.destroy >(); + break; + case types::cause: + c.destroy(); + break; + default: + break; } - j.end_obj(); } - -// PrivateIE-ID ::= CHOICE -void private_ie_id_c::destroy_() {} -void private_ie_id_c::set(types::options e) +void nas_non_delivery_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; + switch (type_) { + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::nas_pdu: + c.init >(); + break; + case types::cause: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + } } -private_ie_id_c::private_ie_id_c(const private_ie_id_c& other) +nas_non_delivery_ind_ies_o::value_c::value_c(const nas_non_delivery_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::local: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::global: + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::cause: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "private_ie_id_c"); + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); } } -private_ie_id_c& private_ie_id_c::operator=(const private_ie_id_c& other) +nas_non_delivery_ind_ies_o::value_c& +nas_non_delivery_ind_ies_o::value_c::operator=(const nas_non_delivery_ind_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::local: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::global: + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::cause: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "private_ie_id_c"); + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); } return *this; } -void private_ie_id_c::to_json(json_writer& j) const +uint64_t& nas_non_delivery_ind_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& nas_non_delivery_ind_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +cause_c& nas_non_delivery_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& nas_non_delivery_ind_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& nas_non_delivery_ind_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const cause_c& nas_non_delivery_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +void nas_non_delivery_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::local: - j.write_int("local", c.get()); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::global: + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::nas_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "private_ie_id_c"); + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE private_ie_id_c::pack(bit_ref& bref) const +SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::pack(bit_ref& bref) const { - type_.pack(bref); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::local: - HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)65535u, false, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::global: + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::nas_pdu: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "private_ie_id_c"); + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE private_ie_id_c::unpack(cbit_ref& bref) +SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::local: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)65535u, false, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::global: + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::nas_pdu: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "private_ie_id_c"); + log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string private_ie_id_c::types_opts::to_string() const +const char* nas_non_delivery_ind_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"local", "global"}; - return convert_enum_idx(options, 2, value, "private_ie_id_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "Cause"}; + return convert_enum_idx(options, 4, value, "nas_non_delivery_ind_ies_o::value_c::types"); } -// SecondaryRATDataUsageReportTransfer ::= SEQUENCE -SRSASN_CODE secondary_rat_data_usage_report_transfer_s::pack(bit_ref& bref) const +// NGResetAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ng_reset_ack_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(secondary_ratusage_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (secondary_ratusage_info_present) { - HANDLE_CODE(secondary_ratusage_info.pack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {111, 19}; + return map_enum_number(options, 2, idx, "id"); } -SRSASN_CODE secondary_rat_data_usage_report_transfer_s::unpack(cbit_ref& bref) +bool ng_reset_ack_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(secondary_ratusage_info_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (secondary_ratusage_info_present) { - HANDLE_CODE(secondary_ratusage_info.unpack(bref)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + static const uint32_t options[] = {111, 19}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -void secondary_rat_data_usage_report_transfer_s::to_json(json_writer& j) const +crit_e ng_reset_ack_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - if (secondary_ratusage_info_present) { - j.write_fieldname("secondaryRATUsageInformation"); - secondary_ratusage_info.to_json(j); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (id) { + case 111: + return crit_e::ignore; + case 19: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } - -// UE-associatedLogicalNG-connectionItem ::= SEQUENCE -SRSASN_CODE ue_associated_lc_ng_conn_item_s::pack(bit_ref& bref) const +ng_reset_ack_ies_o::value_c ng_reset_ack_ies_o::get_value(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(amf_ue_ngap_id_present, 1)); - HANDLE_CODE(bref.pack(ran_ue_ngap_id_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - if (amf_ue_ngap_id_present) { - HANDLE_CODE(pack_integer(bref, amf_ue_ngap_id, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - } - if (ran_ue_ngap_id_present) { - HANDLE_CODE(pack_integer(bref, ran_ue_ngap_id, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + value_c ret{}; + switch (id) { + case 111: + ret.set(value_c::types::ue_associated_lc_ng_conn_list); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return ret; } -SRSASN_CODE ue_associated_lc_ng_conn_item_s::unpack(cbit_ref& bref) +presence_e ng_reset_ack_ies_o::get_presence(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(amf_ue_ngap_id_present, 1)); - HANDLE_CODE(bref.unpack(ran_ue_ngap_id_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - if (amf_ue_ngap_id_present) { - HANDLE_CODE(unpack_integer(amf_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - } - if (ran_ue_ngap_id_present) { - HANDLE_CODE(unpack_integer(ran_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + switch (id) { + case 111: + return presence_e::optional; + case 19: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -void ue_associated_lc_ng_conn_item_s::to_json(json_writer& j) const + +// Value ::= OPEN TYPE +void ng_reset_ack_ies_o::value_c::destroy_() { - j.start_obj(); - if (amf_ue_ngap_id_present) { - j.write_int("aMF-UE-NGAP-ID", amf_ue_ngap_id); - } - if (ran_ue_ngap_id_present) { - j.write_int("rAN-UE-NGAP-ID", ran_ue_ngap_id); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + default: + break; } - j.end_obj(); } - -// UEPresence ::= ENUMERATED -std::string ue_presence_opts::to_string() const +void ng_reset_ack_ies_o::value_c::set(types::options e) { - static const char* options[] = {"in", "out", "unknown"}; - return convert_enum_idx(options, 3, value, "ue_presence_e"); + destroy_(); + type_ = e; + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + c.init(); + break; + case types::crit_diagnostics: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + } } - -// OverloadStartNSSAIItem ::= SEQUENCE -SRSASN_CODE overload_start_nssai_item_s::pack(bit_ref& bref) const +ng_reset_ack_ies_o::value_c::value_c(const ng_reset_ack_ies_o::value_c& other) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(slice_overload_resp_present, 1)); - HANDLE_CODE(bref.pack(slice_traffic_load_reduction_ind_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_dyn_seq_of(bref, slice_overload_list, 1, 1024, true)); - if (slice_overload_resp_present) { - HANDLE_CODE(slice_overload_resp.pack(bref)); - } - if (slice_traffic_load_reduction_ind_present) { - HANDLE_CODE(pack_integer(bref, slice_traffic_load_reduction_ind, (uint8_t)1u, (uint8_t)99u, false, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + type_ = other.type(); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE overload_start_nssai_item_s::unpack(cbit_ref& bref) +ng_reset_ack_ies_o::value_c& ng_reset_ack_ies_o::value_c::operator=(const ng_reset_ack_ies_o::value_c& other) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(slice_overload_resp_present, 1)); - HANDLE_CODE(bref.unpack(slice_traffic_load_reduction_ind_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_dyn_seq_of(slice_overload_list, bref, 1, 1024, true)); - if (slice_overload_resp_present) { - HANDLE_CODE(slice_overload_resp.unpack(bref)); - } - if (slice_traffic_load_reduction_ind_present) { - HANDLE_CODE(unpack_integer(slice_traffic_load_reduction_ind, bref, (uint8_t)1u, (uint8_t)99u, false, true)); + if (this == &other) { + return *this; } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + set(other.type()); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -void overload_start_nssai_item_s::to_json(json_writer& j) const +ue_associated_lc_ng_conn_list_l& ng_reset_ack_ies_o::value_c::ue_associated_lc_ng_conn_list() { - j.start_obj(); - j.start_array("sliceOverloadList"); - for (const auto& e1 : slice_overload_list) { - e1.to_json(j); - } - j.end_array(); - if (slice_overload_resp_present) { - j.write_fieldname("sliceOverloadResponse"); - slice_overload_resp.to_json(j); - } - if (slice_traffic_load_reduction_ind_present) { - j.write_int("sliceTrafficLoadReductionIndication", slice_traffic_load_reduction_ind); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ue_associated_lc_ng_conn_list, type_, "Value"); + return c.get(); } - -// PDUSessionResourceFailedToModifyItemModCfm ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_cfm_s::pack(bit_ref& bref) const +crit_diagnostics_s& ng_reset_ack_ies_o::value_c::crit_diagnostics() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_ind_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_cfm_s::unpack(cbit_ref& bref) +const ue_associated_lc_ng_conn_list_l& ng_reset_ack_ies_o::value_c::ue_associated_lc_ng_conn_list() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_ind_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_associated_lc_ng_conn_list, type_, "Value"); + return c.get(); } -void pdu_session_res_failed_to_modify_item_mod_cfm_s::to_json(json_writer& j) const +const crit_diagnostics_s& ng_reset_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ng_reset_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyIndicationUnsuccessfulTransfer", - pdu_session_res_modify_ind_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + j.start_array("UE-associatedLogicalNG-connectionList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); } j.end_obj(); } - -// PDUSessionResourceFailedToModifyItemModRes ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_res_s::pack(bit_ref& bref) const +SRSASN_CODE ng_reset_ack_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65536, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_failed_to_modify_item_mod_res_s::unpack(cbit_ref& bref) +SRSASN_CODE ng_reset_ack_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::ue_associated_lc_ng_conn_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65536, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_failed_to_modify_item_mod_res_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyUnsuccessfulTransfer", pdu_session_res_modify_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} -// PDUSessionResourceFailedToSetupItemPSReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_setup_item_ps_req_s::pack(bit_ref& bref) const +const char* ng_reset_ack_ies_o::value_c::types_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_setup_failed_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"UE-associatedLogicalNG-connectionList", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 2, value, "ng_reset_ack_ies_o::value_c::types"); } -SRSASN_CODE pdu_session_res_failed_to_setup_item_ps_req_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_setup_failed_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - return SRSASN_SUCCESS; +// NGResetIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ng_reset_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {15, 88}; + return map_enum_number(options, 2, idx, "id"); } -void pdu_session_res_failed_to_setup_item_ps_req_s::to_json(json_writer& j) const +bool ng_reset_ies_o::is_id_valid(const uint32_t& id) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pathSwitchRequestSetupFailedTransfer", path_switch_request_setup_failed_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + static const uint32_t options[] = {15, 88}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - j.end_obj(); + return false; } - -// PDUSessionResourceFailedToSetupItemSURes ::= SEQUENCE -SRSASN_CODE pdu_session_res_failed_to_setup_item_su_res_s::pack(bit_ref& bref) const +crit_e ng_reset_ies_o::get_crit(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + switch (id) { + case 15: + return crit_e::ignore; + case 88: + return crit_e::reject; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -SRSASN_CODE pdu_session_res_failed_to_setup_item_su_res_s::unpack(cbit_ref& bref) +ng_reset_ies_o::value_c ng_reset_ies_o::get_value(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + value_c ret{}; + switch (id) { + case 15: + ret.set(value_c::types::cause); + break; + case 88: + ret.set(value_c::types::reset_type); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return ret; } -void pdu_session_res_failed_to_setup_item_su_res_s::to_json(json_writer& j) const +presence_e ng_reset_ies_o::get_presence(const uint32_t& id) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceSetupUnsuccessfulTransfer", pdu_session_res_setup_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (id) { + case 15: + return presence_e::mandatory; + case 88: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } -// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::pack(bit_ref& bref) const +// Value ::= OPEN TYPE +void ng_reset_ies_o::value_c::destroy_() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + switch (type_) { + case types::cause: + c.destroy(); + break; + case types::reset_type: + c.destroy(); + break; + default: + break; } - - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::unpack(cbit_ref& bref) +void ng_reset_ies_o::value_c::set(types::options e) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + destroy_(); + type_ = e; + switch (type_) { + case types::cause: + c.init(); + break; + case types::reset_type: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -void pdu_session_res_item_cxt_rel_cpl_s::to_json(json_writer& j) const +ng_reset_ies_o::value_c::value_c(const ng_reset_ies_o::value_c& other) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + type_ = other.type(); + switch (type_) { + case types::cause: + c.init(other.c.get()); + break; + case types::reset_type: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); } - j.end_obj(); } - -// PDUSessionResourceItemCxtRelReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::pack(bit_ref& bref) const +ng_reset_ies_o::value_c& ng_reset_ies_o::value_c::operator=(const ng_reset_ies_o::value_c& other) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::cause: + c.set(other.c.get()); + break; + case types::reset_type: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::unpack(cbit_ref& bref) +cause_c& ng_reset_ies_o::value_c::cause() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } -void pdu_session_res_item_cxt_rel_req_s::to_json(json_writer& j) const +reset_type_c& ng_reset_ies_o::value_c::reset_type() { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::reset_type, type_, "Value"); + return c.get(); } - -// PDUSessionResourceModifyItemModCfm ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::pack(bit_ref& bref) const +const cause_c& ng_reset_ies_o::value_c::cause() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_confirm_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::unpack(cbit_ref& bref) +const reset_type_c& ng_reset_ies_o::value_c::reset_type() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_confirm_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::reset_type, type_, "Value"); + return c.get(); } -void pdu_session_res_modify_item_mod_cfm_s::to_json(json_writer& j) const +void ng_reset_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyConfirmTransfer", pdu_session_res_modify_confirm_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); + break; + case types::reset_type: + j.write_fieldname("ResetType"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); } j.end_obj(); } - -// PDUSessionResourceModifyItemModInd ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_ind_s::pack(bit_ref& bref) const +SRSASN_CODE ng_reset_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_ind_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::cause: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::reset_type: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_item_mod_ind_s::unpack(cbit_ref& bref) +SRSASN_CODE ng_reset_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_ind_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::reset_type: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_modify_item_mod_ind_s::to_json(json_writer& j) const + +const char* ng_reset_ies_o::value_c::types_opts::to_string() const { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyIndicationTransfer", pdu_session_res_modify_ind_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"Cause", "ResetType"}; + return convert_enum_idx(options, 2, value, "ng_reset_ies_o::value_c::types"); } -// PDUSessionResourceModifyItemModReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_req_s::pack(bit_ref& bref) const +// NGSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ng_setup_fail_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(nas_pdu_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.pack(bref)); - } - HANDLE_CODE(pdu_session_res_modify_request_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {15, 107, 19}; + return map_enum_number(options, 3, idx, "id"); } -SRSASN_CODE pdu_session_res_modify_item_mod_req_s::unpack(cbit_ref& bref) +bool ng_setup_fail_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(nas_pdu_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.unpack(bref)); - } - HANDLE_CODE(pdu_session_res_modify_request_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + static const uint32_t options[] = {15, 107, 19}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -void pdu_session_res_modify_item_mod_req_s::to_json(json_writer& j) const +crit_e ng_setup_fail_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - if (nas_pdu_present) { - j.write_str("nAS-PDU", nas_pdu.to_string()); - } - j.write_str("pDUSessionResourceModifyRequestTransfer", pdu_session_res_modify_request_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); + switch (id) { + case 15: + return crit_e::ignore; + case 107: + return crit_e::ignore; + case 19: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } - -// PDUSessionResourceModifyItemModRes ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_res_s::pack(bit_ref& bref) const +ng_setup_fail_ies_o::value_c ng_setup_fail_ies_o::get_value(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_resp_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + value_c ret{}; + switch (id) { + case 15: + ret.set(value_c::types::cause); + break; + case 107: + ret.set(value_c::types::time_to_wait); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return ret; } -SRSASN_CODE pdu_session_res_modify_item_mod_res_s::unpack(cbit_ref& bref) +presence_e ng_setup_fail_ies_o::get_presence(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_resp_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + switch (id) { + case 15: + return presence_e::mandatory; + case 107: + return presence_e::optional; + case 19: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); } + return {}; +} - return SRSASN_SUCCESS; +// Value ::= OPEN TYPE +void ng_setup_fail_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::cause: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + default: + break; + } } -void pdu_session_res_modify_item_mod_res_s::to_json(json_writer& j) const +void ng_setup_fail_ies_o::value_c::set(types::options e) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyResponseTransfer", pdu_session_res_modify_resp_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + destroy_(); + type_ = e; + switch (type_) { + case types::cause: + c.init(); + break; + case types::time_to_wait: + break; + case types::crit_diagnostics: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); } - j.end_obj(); } - -// PDUSessionResourceNotifyItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_notify_item_s::pack(bit_ref& bref) const +ng_setup_fail_ies_o::value_c::value_c(const ng_setup_fail_ies_o::value_c& other) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_notify_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + type_ = other.type(); + switch (type_) { + case types::cause: + c.init(other.c.get()); + break; + case types::time_to_wait: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_item_s::unpack(cbit_ref& bref) +ng_setup_fail_ies_o::value_c& ng_setup_fail_ies_o::value_c::operator=(const ng_setup_fail_ies_o::value_c& other) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_notify_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::cause: + c.set(other.c.get()); + break; + case types::time_to_wait: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -void pdu_session_res_notify_item_s::to_json(json_writer& j) const +cause_c& ng_setup_fail_ies_o::value_c::cause() { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceNotifyTransfer", pdu_session_res_notify_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } - -// PDUSessionResourceReleasedItemNot ::= SEQUENCE -SRSASN_CODE pdu_session_res_released_item_not_s::pack(bit_ref& bref) const +time_to_wait_e& ng_setup_fail_ies_o::value_c::time_to_wait() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_notify_released_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_released_item_not_s::unpack(cbit_ref& bref) +crit_diagnostics_s& ng_setup_fail_ies_o::value_c::crit_diagnostics() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_notify_released_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); } -void pdu_session_res_released_item_not_s::to_json(json_writer& j) const +const cause_c& ng_setup_fail_ies_o::value_c::cause() const { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceNotifyReleasedTransfer", pdu_session_res_notify_released_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::cause, type_, "Value"); + return c.get(); } - -// PDUSessionResourceReleasedItemPSAck ::= SEQUENCE -SRSASN_CODE pdu_session_res_released_item_ps_ack_s::pack(bit_ref& bref) const +const time_to_wait_e& ng_setup_fail_ies_o::value_c::time_to_wait() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_released_item_ps_ack_s::unpack(cbit_ref& bref) +const crit_diagnostics_s& ng_setup_fail_ies_o::value_c::crit_diagnostics() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); } -void pdu_session_res_released_item_ps_ack_s::to_json(json_writer& j) const +void ng_setup_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pathSwitchRequestUnsuccessfulTransfer", path_switch_request_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); + break; + case types::time_to_wait: + j.write_str("TimeToWait", c.get().to_string()); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); } j.end_obj(); } - -// PDUSessionResourceReleasedItemPSFail ::= SEQUENCE -SRSASN_CODE pdu_session_res_released_item_ps_fail_s::pack(bit_ref& bref) const +SRSASN_CODE ng_setup_fail_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_unsuccessful_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::cause: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::time_to_wait: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_released_item_ps_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE ng_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_unsuccessful_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::time_to_wait: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_released_item_ps_fail_s::to_json(json_writer& j) const + +const char* ng_setup_fail_ies_o::value_c::types_opts::to_string() const { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pathSwitchRequestUnsuccessfulTransfer", path_switch_request_unsuccessful_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 3, value, "ng_setup_fail_ies_o::value_c::types"); } -// PDUSessionResourceReleasedItemRelRes ::= SEQUENCE -SRSASN_CODE pdu_session_res_released_item_rel_res_s::pack(bit_ref& bref) const +// NGSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ng_setup_request_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_release_resp_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + static const uint32_t options[] = {27, 82, 102, 21, 147}; + return map_enum_number(options, 5, idx, "id"); +} +bool ng_setup_request_ies_o::is_id_valid(const uint32_t& id) +{ + static const uint32_t options[] = {27, 82, 102, 21, 147}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -SRSASN_CODE pdu_session_res_released_item_rel_res_s::unpack(cbit_ref& bref) +crit_e ng_setup_request_ies_o::get_crit(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_release_resp_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + switch (id) { + case 27: + return crit_e::reject; + case 82: + return crit_e::ignore; + case 102: + return crit_e::reject; + case 21: + return crit_e::ignore; + case 147: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -void pdu_session_res_released_item_rel_res_s::to_json(json_writer& j) const +ng_setup_request_ies_o::value_c ng_setup_request_ies_o::get_value(const uint32_t& id) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceReleaseResponseTransfer", pdu_session_res_release_resp_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + value_c ret{}; + switch (id) { + case 27: + ret.set(value_c::types::global_ran_node_id); + break; + case 82: + ret.set(value_c::types::ran_node_name); + break; + case 102: + ret.set(value_c::types::supported_ta_list); + break; + case 21: + ret.set(value_c::types::default_paging_drx); + break; + case 147: + ret.set(value_c::types::ue_retention_info); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return ret; } - -// PDUSessionResourceSecondaryRATUsageItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_secondary_ratusage_item_s::pack(bit_ref& bref) const +presence_e ng_setup_request_ies_o::get_presence(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(secondary_rat_data_usage_report_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + switch (id) { + case 27: + return presence_e::mandatory; + case 82: + return presence_e::optional; + case 102: + return presence_e::mandatory; + case 21: + return presence_e::mandatory; + case 147: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return {}; } -SRSASN_CODE pdu_session_res_secondary_ratusage_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(secondary_rat_data_usage_report_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); +// Value ::= OPEN TYPE +void ng_setup_request_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::global_ran_node_id: + c.destroy(); + break; + case types::ran_node_name: + c.destroy >(); + break; + case types::supported_ta_list: + c.destroy(); + break; + default: + break; } - - return SRSASN_SUCCESS; } -void pdu_session_res_secondary_ratusage_item_s::to_json(json_writer& j) const +void ng_setup_request_ies_o::value_c::set(types::options e) { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("secondaryRATDataUsageReportTransfer", secondary_rat_data_usage_report_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + destroy_(); + type_ = e; + switch (type_) { + case types::global_ran_node_id: + c.init(); + break; + case types::ran_node_name: + c.init >(); + break; + case types::supported_ta_list: + c.init(); + break; + case types::default_paging_drx: + break; + case types::ue_retention_info: + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); } - j.end_obj(); } - -// PDUSessionResourceSetupItemSUReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_item_su_req_s::pack(bit_ref& bref) const +ng_setup_request_ies_o::value_c::value_c(const ng_setup_request_ies_o::value_c& other) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(pdu_session_nas_pdu_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - if (pdu_session_nas_pdu_present) { - HANDLE_CODE(pdu_session_nas_pdu.pack(bref)); - } - HANDLE_CODE(s_nssai.pack(bref)); - HANDLE_CODE(pdu_session_res_setup_request_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + type_ = other.type(); + switch (type_) { + case types::global_ran_node_id: + c.init(other.c.get()); + break; + case types::ran_node_name: + c.init(other.c.get >()); + break; + case types::supported_ta_list: + c.init(other.c.get()); + break; + case types::default_paging_drx: + c.init(other.c.get()); + break; + case types::ue_retention_info: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_item_su_req_s::unpack(cbit_ref& bref) +ng_setup_request_ies_o::value_c& +ng_setup_request_ies_o::value_c::operator=(const ng_setup_request_ies_o::value_c& other) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(pdu_session_nas_pdu_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - if (pdu_session_nas_pdu_present) { - HANDLE_CODE(pdu_session_nas_pdu.unpack(bref)); + if (this == &other) { + return *this; } - HANDLE_CODE(s_nssai.unpack(bref)); - HANDLE_CODE(pdu_session_res_setup_request_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + set(other.type()); + switch (type_) { + case types::global_ran_node_id: + c.set(other.c.get()); + break; + case types::ran_node_name: + c.set(other.c.get >()); + break; + case types::supported_ta_list: + c.set(other.c.get()); + break; + case types::default_paging_drx: + c.set(other.c.get()); + break; + case types::ue_retention_info: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); } - return SRSASN_SUCCESS; + return *this; } -void pdu_session_res_setup_item_su_req_s::to_json(json_writer& j) const +global_ran_node_id_c& ng_setup_request_ies_o::value_c::global_ran_node_id() { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - if (pdu_session_nas_pdu_present) { - j.write_str("pDUSessionNAS-PDU", pdu_session_nas_pdu.to_string()); - } - j.write_fieldname("s-NSSAI"); - s_nssai.to_json(j); - j.write_str("pDUSessionResourceSetupRequestTransfer", pdu_session_res_setup_request_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); } - -// PDUSessionResourceSetupItemSURes ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_item_su_res_s::pack(bit_ref& bref) const +printable_string<1, 150, true, true>& ng_setup_request_ies_o::value_c::ran_node_name() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_resp_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_node_name, type_, "Value"); + return c.get >(); } -SRSASN_CODE pdu_session_res_setup_item_su_res_s::unpack(cbit_ref& bref) +supported_ta_list_l& ng_setup_request_ies_o::value_c::supported_ta_list() { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_setup_resp_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::supported_ta_list, type_, "Value"); + return c.get(); } -void pdu_session_res_setup_item_su_res_s::to_json(json_writer& j) const +paging_drx_e& ng_setup_request_ies_o::value_c::default_paging_drx() { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceSetupResponseTransfer", pdu_session_res_setup_resp_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); } - -// PDUSessionResourceSwitchedItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_switched_item_s::pack(bit_ref& bref) const +ue_retention_info_e& ng_setup_request_ies_o::value_c::ue_retention_info() { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_ack_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_switched_item_s::unpack(cbit_ref& bref) +const global_ran_node_id_c& ng_setup_request_ies_o::value_c::global_ran_node_id() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_ack_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); } -void pdu_session_res_switched_item_s::to_json(json_writer& j) const +const printable_string<1, 150, true, true>& ng_setup_request_ies_o::value_c::ran_node_name() const { - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pathSwitchRequestAcknowledgeTransfer", path_switch_request_ack_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ran_node_name, type_, "Value"); + return c.get >(); } - -// PDUSessionResourceToBeSwitchedDLItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_to_be_switched_dl_item_s::pack(bit_ref& bref) const +const supported_ta_list_l& ng_setup_request_ies_o::value_c::supported_ta_list() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::supported_ta_list, type_, "Value"); + return c.get(); } -SRSASN_CODE pdu_session_res_to_be_switched_dl_item_s::unpack(cbit_ref& bref) +const paging_drx_e& ng_setup_request_ies_o::value_c::default_paging_drx() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(path_switch_request_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); } -void pdu_session_res_to_be_switched_dl_item_s::to_json(json_writer& j) const +const ue_retention_info_e& ng_setup_request_ies_o::value_c::ue_retention_info() const +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +void ng_setup_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pathSwitchRequestTransfer", path_switch_request_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (type_) { + case types::global_ran_node_id: + j.write_fieldname("GlobalRANNodeID"); + c.get().to_json(j); + break; + case types::ran_node_name: + j.write_str("PrintableString", c.get >().to_string()); + break; + case types::supported_ta_list: + j.start_array("SupportedTAList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::default_paging_drx: + j.write_str("PagingDRX", c.get().to_string()); + break; + case types::ue_retention_info: + j.write_str("UERetentionInformation", "ues-retained"); + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); } j.end_obj(); } - -// PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE -SRSASN_CODE pdu_session_res_to_release_item_rel_cmd_s::pack(bit_ref& bref) const +SRSASN_CODE ng_setup_request_ies_o::value_c::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_release_cmd_transfer.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::global_ran_node_id: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ran_node_name: + HANDLE_CODE((c.get >().pack(bref))); + break; + case types::supported_ta_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::default_paging_drx: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_retention_info: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_to_release_item_rel_cmd_s::unpack(cbit_ref& bref) +SRSASN_CODE ng_setup_request_ies_o::value_c::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_release_cmd_transfer.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::global_ran_node_id: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ran_node_name: + HANDLE_CODE((c.get >().unpack(bref))); + break; + case types::supported_ta_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::default_paging_drx: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_retention_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void pdu_session_res_to_release_item_rel_cmd_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceReleaseCommandTransfer", pdu_session_res_release_cmd_transfer.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} -// ResetAll ::= ENUMERATED -std::string reset_all_opts::to_string() const +const char* ng_setup_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"reset-all"}; - return convert_enum_idx(options, 1, value, "reset_all_e"); + static const char* options[] = { + "GlobalRANNodeID", "PrintableString", "SupportedTAList", "PagingDRX", "UERetentionInformation"}; + return convert_enum_idx(options, 5, value, "ng_setup_request_ies_o::value_c::types"); } -// SupportedTAItem ::= SEQUENCE -SRSASN_CODE supported_ta_item_s::pack(bit_ref& bref) const +// NGSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ng_setup_resp_ies_o::idx_to_id(uint32_t idx) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(tac.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, broadcast_plmn_list, 1, 12, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; + static const uint32_t options[] = {1, 96, 86, 80, 19, 147}; + return map_enum_number(options, 6, idx, "id"); } -SRSASN_CODE supported_ta_item_s::unpack(cbit_ref& bref) +bool ng_setup_resp_ies_o::is_id_valid(const uint32_t& id) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(tac.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(broadcast_plmn_list, bref, 1, 12, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + static const uint32_t options[] = {1, 96, 86, 80, 19, 147}; + for (const auto& o : options) { + if (o == id) { + return true; + } } - - return SRSASN_SUCCESS; + return false; } -void supported_ta_item_s::to_json(json_writer& j) const +crit_e ng_setup_resp_ies_o::get_crit(const uint32_t& id) { - j.start_obj(); - j.write_str("tAC", tac.to_string()); - j.start_array("broadcastPLMNList"); - for (const auto& e1 : broadcast_plmn_list) { - e1.to_json(j); - } - j.end_array(); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (id) { + case 1: + return crit_e::reject; + case 96: + return crit_e::reject; + case 86: + return crit_e::ignore; + case 80: + return crit_e::reject; + case 19: + return crit_e::ignore; + case 147: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return {}; } - -// TAIListForPagingItem ::= SEQUENCE -SRSASN_CODE tai_list_for_paging_item_s::pack(bit_ref& bref) const +ng_setup_resp_ies_o::value_c ng_setup_resp_ies_o::get_value(const uint32_t& id) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(tai.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE tai_list_for_paging_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(tai.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void tai_list_for_paging_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("tAI"); - tai.to_json(j); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// UE-NGAP-ID-pair ::= SEQUENCE -SRSASN_CODE ue_ngap_id_pair_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, amf_ue_ngap_id, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - HANDLE_CODE(pack_integer(bref, ran_ue_ngap_id, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_ngap_id_pair_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(amf_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - HANDLE_CODE(unpack_integer(ran_ue_ngap_id, bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_ngap_id_pair_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("aMF-UE-NGAP-ID", amf_ue_ngap_id); - j.write_int("rAN-UE-NGAP-ID", ran_ue_ngap_id); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -// UEPresenceInAreaOfInterestItem ::= SEQUENCE -SRSASN_CODE ue_presence_in_area_of_interest_item_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(pack_integer(bref, location_report_ref_id, (uint8_t)1u, (uint8_t)64u, true, true)); - HANDLE_CODE(uepresence.pack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_presence_in_area_of_interest_item_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(unpack_integer(location_report_ref_id, bref, (uint8_t)1u, (uint8_t)64u, true, true)); - HANDLE_CODE(uepresence.unpack(bref)); - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + value_c ret{}; + switch (id) { + case 1: + ret.set(value_c::types::amf_name); + break; + case 96: + ret.set(value_c::types::served_guami_list); + break; + case 86: + ret.set(value_c::types::relative_amf_capacity); + break; + case 80: + ret.set(value_c::types::plmn_support_list); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + case 147: + ret.set(value_c::types::ue_retention_info); + break; + default: + asn1::log_error("The id=%d is not recognized", id); } - - return SRSASN_SUCCESS; + return ret; } -void ue_presence_in_area_of_interest_item_s::to_json(json_writer& j) const +presence_e ng_setup_resp_ies_o::get_presence(const uint32_t& id) { - j.start_obj(); - j.write_int("locationReportingReferenceID", location_report_ref_id); - j.write_str("uEPresence", uepresence.to_string()); - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); + switch (id) { + case 1: + return presence_e::mandatory; + case 96: + return presence_e::mandatory; + case 86: + return presence_e::mandatory; + case 80: + return presence_e::mandatory; + case 19: + return presence_e::optional; + case 147: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); -} - -// CancelAllWarningMessages ::= ENUMERATED -std::string cancel_all_warning_msgs_opts::to_string() const -{ - static const char* options[] = {"true"}; - return convert_enum_idx(options, 1, value, "cancel_all_warning_msgs_e"); -} - -// ConcurrentWarningMessageInd ::= ENUMERATED -std::string concurrent_warning_msg_ind_opts::to_string() const -{ - static const char* options[] = {"true"}; - return convert_enum_idx(options, 1, value, "concurrent_warning_msg_ind_e"); -} - -// HandoverFlag ::= ENUMERATED -std::string ho_flag_opts::to_string() const -{ - static const char* options[] = {"handover-preparation"}; - return convert_enum_idx(options, 1, value, "ho_flag_e"); -} - -// IMSVoiceSupportIndicator ::= ENUMERATED -std::string ims_voice_support_ind_opts::to_string() const -{ - static const char* options[] = {"supported", "not-supported"}; - return convert_enum_idx(options, 2, value, "ims_voice_support_ind_e"); + return {}; } -// PWSFailedCellIDList ::= CHOICE -void pws_failed_cell_id_list_c::destroy_() +// Value ::= OPEN TYPE +void ng_setup_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::eutra_cgi_pws_failed_list: - c.destroy(); + case types::amf_name: + c.destroy >(); break; - case types::nr_cgi_pws_failed_list: - c.destroy(); + case types::served_guami_list: + c.destroy(); break; - case types::choice_exts: - c.destroy >(); + case types::plmn_support_list: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void pws_failed_cell_id_list_c::set(types::options e) +void ng_setup_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::eutra_cgi_pws_failed_list: - c.init(); + case types::amf_name: + c.init >(); break; - case types::nr_cgi_pws_failed_list: - c.init(); + case types::served_guami_list: + c.init(); break; - case types::choice_exts: - c.init >(); + case types::relative_amf_capacity: + break; + case types::plmn_support_list: + c.init(); + break; + case types::crit_diagnostics: + c.init(); + break; + case types::ue_retention_info: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); } } -pws_failed_cell_id_list_c::pws_failed_cell_id_list_c(const pws_failed_cell_id_list_c& other) +ng_setup_resp_ies_o::value_c::value_c(const ng_setup_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::eutra_cgi_pws_failed_list: - c.init(other.c.get()); + case types::amf_name: + c.init(other.c.get >()); break; - case types::nr_cgi_pws_failed_list: - c.init(other.c.get()); + case types::served_guami_list: + c.init(other.c.get()); break; - case types::choice_exts: - c.init(other.c.get >()); + case types::relative_amf_capacity: + c.init(other.c.get()); + break; + case types::plmn_support_list: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::ue_retention_info: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); } } -pws_failed_cell_id_list_c& pws_failed_cell_id_list_c::operator=(const pws_failed_cell_id_list_c& other) +ng_setup_resp_ies_o::value_c& ng_setup_resp_ies_o::value_c::operator=(const ng_setup_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::eutra_cgi_pws_failed_list: - c.set(other.c.get()); + case types::amf_name: + c.set(other.c.get >()); break; - case types::nr_cgi_pws_failed_list: - c.set(other.c.get()); + case types::served_guami_list: + c.set(other.c.get()); break; - case types::choice_exts: - c.set(other.c.get >()); + case types::relative_amf_capacity: + c.set(other.c.get()); + break; + case types::plmn_support_list: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::ue_retention_info: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); } return *this; } -void pws_failed_cell_id_list_c::to_json(json_writer& j) const +printable_string<1, 150, true, true>& ng_setup_resp_ies_o::value_c::amf_name() +{ + assert_choice_type(types::amf_name, type_, "Value"); + return c.get >(); +} +served_guami_list_l& ng_setup_resp_ies_o::value_c::served_guami_list() +{ + assert_choice_type(types::served_guami_list, type_, "Value"); + return c.get(); +} +uint16_t& ng_setup_resp_ies_o::value_c::relative_amf_capacity() +{ + assert_choice_type(types::relative_amf_capacity, type_, "Value"); + return c.get(); +} +plmn_support_list_l& ng_setup_resp_ies_o::value_c::plmn_support_list() +{ + assert_choice_type(types::plmn_support_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ng_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +ue_retention_info_e& ng_setup_resp_ies_o::value_c::ue_retention_info() +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& ng_setup_resp_ies_o::value_c::amf_name() const +{ + assert_choice_type(types::amf_name, type_, "Value"); + return c.get >(); +} +const served_guami_list_l& ng_setup_resp_ies_o::value_c::served_guami_list() const +{ + assert_choice_type(types::served_guami_list, type_, "Value"); + return c.get(); +} +const uint16_t& ng_setup_resp_ies_o::value_c::relative_amf_capacity() const +{ + assert_choice_type(types::relative_amf_capacity, type_, "Value"); + return c.get(); +} +const plmn_support_list_l& ng_setup_resp_ies_o::value_c::plmn_support_list() const +{ + assert_choice_type(types::plmn_support_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ng_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const ue_retention_info_e& ng_setup_resp_ies_o::value_c::ue_retention_info() const +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +void ng_setup_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::eutra_cgi_pws_failed_list: - j.start_array("eUTRA-CGI-PWSFailedList"); - for (const auto& e1 : c.get()) { + case types::amf_name: + j.write_str("PrintableString", c.get >().to_string()); + break; + case types::served_guami_list: + j.start_array("ServedGUAMIList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::nr_cgi_pws_failed_list: - j.start_array("nR-CGI-PWSFailedList"); - for (const auto& e1 : c.get()) { + case types::relative_amf_capacity: + j.write_int("INTEGER (0..255)", c.get()); + break; + case types::plmn_support_list: + j.start_array("PLMNSupportList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + case types::ue_retention_info: + j.write_str("UERetentionInformation", "ues-retained"); break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pws_failed_cell_id_list_c::pack(bit_ref& bref) const +SRSASN_CODE ng_setup_resp_ies_o::value_c::pack(bit_ref& bref) const { - type_.pack(bref); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::eutra_cgi_pws_failed_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::amf_name: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::nr_cgi_pws_failed_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16384, true)); + case types::served_guami_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); + case types::relative_amf_capacity: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)255u, false, true)); + break; + case types::plmn_support_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 12, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_retention_info: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pws_failed_cell_id_list_c::unpack(cbit_ref& bref) +SRSASN_CODE ng_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::eutra_cgi_pws_failed_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::amf_name: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::nr_cgi_pws_failed_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16384, true)); + case types::served_guami_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); + case types::relative_amf_capacity: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)255u, false, true)); + break; + case types::plmn_support_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 12, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_retention_info: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pws_failed_cell_id_list_c"); + log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pws_failed_cell_id_list_c::types_opts::to_string() const +const char* ng_setup_resp_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"eUTRA-CGI-PWSFailedList", "nR-CGI-PWSFailedList", "choice-Extensions"}; - return convert_enum_idx(options, 3, value, "pws_failed_cell_id_list_c::types"); -} - -// PagingOrigin ::= ENUMERATED -std::string paging_origin_opts::to_string() const -{ - static const char* options[] = {"non-3gpp"}; - return convert_enum_idx(options, 1, value, "paging_origin_e"); + static const char* options[] = {"PrintableString", + "ServedGUAMIList", + "INTEGER (0..255)", + "PLMNSupportList", + "CriticalityDiagnostics", + "UERetentionInformation"}; + return convert_enum_idx(options, 6, value, "ng_setup_resp_ies_o::value_c::types"); } -int8_t paging_origin_opts::to_number() const +uint8_t ng_setup_resp_ies_o::value_c::types_opts::to_number() const { - static const int8_t options[] = {-3}; - return map_enum_number(options, 1, value, "paging_origin_e"); + if (value == relative_amf_capacity) { + return 0; + } + invalid_enum_number(value, "ng_setup_resp_ies_o::value_c::types"); + return 0; } -// PagingPriority ::= ENUMERATED -std::string paging_prio_opts::to_string() const -{ - static const char* options[] = { - "priolevel1", "priolevel2", "priolevel3", "priolevel4", "priolevel5", "priolevel6", "priolevel7", "priolevel8"}; - return convert_enum_idx(options, 8, value, "paging_prio_e"); -} -uint8_t paging_prio_opts::to_number() const +// OverloadStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t overload_start_ies_o::idx_to_id(uint32_t idx) { - static const uint8_t options[] = {1, 2, 3, 4, 5, 6, 7, 8}; - return map_enum_number(options, 8, value, "paging_prio_e"); + static const uint32_t options[] = {2, 9, 49}; + return map_enum_number(options, 3, idx, "id"); } - -// PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} -template -SRSASN_CODE private_ie_field_s::pack(bit_ref& bref) const +bool overload_start_ies_o::is_id_valid(const uint32_t& id) { - HANDLE_CODE(id.pack(bref)); - HANDLE_CODE(crit.pack(bref)); - HANDLE_CODE(value.pack(bref)); - - return SRSASN_SUCCESS; + static const uint32_t options[] = {2, 9, 49}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -template -SRSASN_CODE private_ie_field_s::unpack(cbit_ref& bref) +crit_e overload_start_ies_o::get_crit(const uint32_t& id) { - HANDLE_CODE(id.unpack(bref)); - HANDLE_CODE(crit.unpack(bref)); - HANDLE_CODE(value.unpack(bref)); - - return SRSASN_SUCCESS; + switch (id) { + case 2: + return crit_e::reject; + case 9: + return crit_e::ignore; + case 49: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -template -void private_ie_field_s::to_json(json_writer& j) const +overload_start_ies_o::value_c overload_start_ies_o::get_value(const uint32_t& id) { - j.start_obj(); - j.write_fieldname("id"); - id.to_json(j); - j.write_str("criticality", crit.to_string()); - j.end_obj(); + value_c ret{}; + switch (id) { + case 2: + ret.set(value_c::types::amf_overload_resp); + break; + case 9: + ret.set(value_c::types::amf_traffic_load_reduction_ind); + break; + case 49: + ret.set(value_c::types::overload_start_nssai_list); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } - -// RRCState ::= ENUMERATED -std::string rrc_state_opts::to_string() const +presence_e overload_start_ies_o::get_presence(const uint32_t& id) { - static const char* options[] = {"inactive", "connected"}; - return convert_enum_idx(options, 2, value, "rrc_state_e"); + switch (id) { + case 2: + return presence_e::optional; + case 9: + return presence_e::optional; + case 49: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -// ResetType ::= CHOICE -void reset_type_c::destroy_() +// Value ::= OPEN TYPE +void overload_start_ies_o::value_c::destroy_() { switch (type_) { - case types::part_of_ng_interface: - c.destroy(); + case types::amf_overload_resp: + c.destroy(); break; - case types::choice_exts: - c.destroy >(); + case types::overload_start_nssai_list: + c.destroy(); break; default: break; } } -void reset_type_c::set(types::options e) +void overload_start_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ng_interface: + case types::amf_overload_resp: + c.init(); break; - case types::part_of_ng_interface: - c.init(); + case types::amf_traffic_load_reduction_ind: break; - case types::choice_exts: - c.init >(); + case types::overload_start_nssai_list: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); } } -reset_type_c::reset_type_c(const reset_type_c& other) +overload_start_ies_o::value_c::value_c(const overload_start_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ng_interface: - c.init(other.c.get()); + case types::amf_overload_resp: + c.init(other.c.get()); break; - case types::part_of_ng_interface: - c.init(other.c.get()); + case types::amf_traffic_load_reduction_ind: + c.init(other.c.get()); break; - case types::choice_exts: - c.init(other.c.get >()); + case types::overload_start_nssai_list: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); } } -reset_type_c& reset_type_c::operator=(const reset_type_c& other) +overload_start_ies_o::value_c& overload_start_ies_o::value_c::operator=(const overload_start_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ng_interface: - c.set(other.c.get()); + case types::amf_overload_resp: + c.set(other.c.get()); break; - case types::part_of_ng_interface: - c.set(other.c.get()); + case types::amf_traffic_load_reduction_ind: + c.set(other.c.get()); break; - case types::choice_exts: - c.set(other.c.get >()); + case types::overload_start_nssai_list: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); } return *this; } -void reset_type_c::to_json(json_writer& j) const +overload_resp_c& overload_start_ies_o::value_c::amf_overload_resp() +{ + assert_choice_type(types::amf_overload_resp, type_, "Value"); + return c.get(); +} +uint8_t& overload_start_ies_o::value_c::amf_traffic_load_reduction_ind() +{ + assert_choice_type(types::amf_traffic_load_reduction_ind, type_, "Value"); + return c.get(); +} +overload_start_nssai_list_l& overload_start_ies_o::value_c::overload_start_nssai_list() +{ + assert_choice_type(types::overload_start_nssai_list, type_, "Value"); + return c.get(); +} +const overload_resp_c& overload_start_ies_o::value_c::amf_overload_resp() const +{ + assert_choice_type(types::amf_overload_resp, type_, "Value"); + return c.get(); +} +const uint8_t& overload_start_ies_o::value_c::amf_traffic_load_reduction_ind() const +{ + assert_choice_type(types::amf_traffic_load_reduction_ind, type_, "Value"); + return c.get(); +} +const overload_start_nssai_list_l& overload_start_ies_o::value_c::overload_start_nssai_list() const +{ + assert_choice_type(types::overload_start_nssai_list, type_, "Value"); + return c.get(); +} +void overload_start_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ng_interface: - j.write_str("nG-Interface", "reset-all"); + case types::amf_overload_resp: + j.write_fieldname("OverloadResponse"); + c.get().to_json(j); break; - case types::part_of_ng_interface: - j.start_array("partOfNG-Interface"); - for (const auto& e1 : c.get()) { + case types::amf_traffic_load_reduction_ind: + j.write_int("INTEGER (1..99)", c.get()); + break; + case types::overload_start_nssai_list: + j.start_array("OverloadStartNSSAIList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE reset_type_c::pack(bit_ref& bref) const +SRSASN_CODE overload_start_ies_o::value_c::pack(bit_ref& bref) const { - type_.pack(bref); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ng_interface: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_overload_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case types::part_of_ng_interface: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65536, true)); + case types::amf_traffic_load_reduction_ind: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)1u, (uint8_t)99u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); + case types::overload_start_nssai_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 1024, true)); break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE reset_type_c::unpack(cbit_ref& bref) +SRSASN_CODE overload_start_ies_o::value_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ng_interface: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_overload_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::part_of_ng_interface: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65536, true)); + case types::amf_traffic_load_reduction_ind: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)1u, (uint8_t)99u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); + case types::overload_start_nssai_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 1024, true)); break; default: - log_invalid_choice_id(type_, "reset_type_c"); + log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string reset_type_c::types_opts::to_string() const +const char* overload_start_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"nG-Interface", "partOfNG-Interface", "choice-Extensions"}; - return convert_enum_idx(options, 3, value, "reset_type_c::types"); + static const char* options[] = {"OverloadResponse", "INTEGER (1..99)", "OverloadStartNSSAIList"}; + return convert_enum_idx(options, 3, value, "overload_start_ies_o::value_c::types"); +} +uint8_t overload_start_ies_o::value_c::types_opts::to_number() const +{ + if (value == amf_traffic_load_reduction_ind) { + return 1; + } + invalid_enum_number(value, "overload_start_ies_o::value_c::types"); + return 0; } -// UE-NGAP-IDs ::= CHOICE -void ue_ngap_ids_c::destroy_() +// PDUSessionResourceModifyConfirmIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_modify_confirm_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {10, 85, 62, 131, 19}; + return map_enum_number(options, 5, idx, "id"); +} +bool pdu_session_res_modify_confirm_ies_o::is_id_valid(const uint32_t& id) +{ + static const uint32_t options[] = {10, 85, 62, 131, 19}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; +} +crit_e pdu_session_res_modify_confirm_ies_o::get_crit(const uint32_t& id) +{ + switch (id) { + case 10: + return crit_e::ignore; + case 85: + return crit_e::ignore; + case 62: + return crit_e::ignore; + case 131: + return crit_e::ignore; + case 19: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} +pdu_session_res_modify_confirm_ies_o::value_c pdu_session_res_modify_confirm_ies_o::get_value(const uint32_t& id) +{ + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 62: + ret.set(value_c::types::pdu_session_res_modify_list_mod_cfm); + break; + case 131: + ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_cfm); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; +} +presence_e pdu_session_res_modify_confirm_ies_o::get_presence(const uint32_t& id) +{ + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 62: + return presence_e::mandatory; + case 131: + return presence_e::optional; + case 19: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} + +// Value ::= OPEN TYPE +void pdu_session_res_modify_confirm_ies_o::value_c::destroy_() { switch (type_) { - case types::ue_ngap_id_pair: - c.destroy(); + case types::pdu_session_res_modify_list_mod_cfm: + c.destroy(); break; - case types::choice_exts: - c.destroy >(); + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void ue_ngap_ids_c::set(types::options e) +void pdu_session_res_modify_confirm_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ue_ngap_id_pair: - c.init(); - break; case types::amf_ue_ngap_id: break; - case types::choice_exts: - c.init >(); + case types::ran_ue_ngap_id: + break; + case types::pdu_session_res_modify_list_mod_cfm: + c.init(); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + c.init(); + break; + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); } } -ue_ngap_ids_c::ue_ngap_ids_c(const ue_ngap_ids_c& other) +pdu_session_res_modify_confirm_ies_o::value_c::value_c(const pdu_session_res_modify_confirm_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ue_ngap_id_pair: - c.init(other.c.get()); - break; case types::amf_ue_ngap_id: c.init(other.c.get()); break; - case types::choice_exts: - c.init(other.c.get >()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::pdu_session_res_modify_list_mod_cfm: + c.init(other.c.get()); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); } } -ue_ngap_ids_c& ue_ngap_ids_c::operator=(const ue_ngap_ids_c& other) +pdu_session_res_modify_confirm_ies_o::value_c& +pdu_session_res_modify_confirm_ies_o::value_c::operator=(const pdu_session_res_modify_confirm_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ue_ngap_id_pair: - c.set(other.c.get()); - break; case types::amf_ue_ngap_id: c.set(other.c.get()); break; - case types::choice_exts: - c.set(other.c.get >()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::pdu_session_res_modify_list_mod_cfm: + c.set(other.c.get()); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); } return *this; } -void ue_ngap_ids_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_modify_list_mod_cfm_l& +pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_modify_list_mod_cfm() +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_cfm, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_modify_list_mod_cfm_l& +pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_cfm() +{ + assert_choice_type(types::pdu_session_res_failed_to_modify_list_mod_cfm, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& pdu_session_res_modify_confirm_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_modify_list_mod_cfm_l& +pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_modify_list_mod_cfm() const +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_cfm, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_modify_list_mod_cfm_l& +pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_cfm() const +{ + assert_choice_type(types::pdu_session_res_failed_to_modify_list_mod_cfm, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& pdu_session_res_modify_confirm_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void pdu_session_res_modify_confirm_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ue_ngap_id_pair: - j.write_fieldname("uE-NGAP-ID-pair"); - c.get().to_json(j); - break; case types::amf_ue_ngap_id: - j.write_int("aMF-UE-NGAP-ID", c.get()); + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_modify_list_mod_cfm: + j.start_array("PDUSessionResourceModifyListModCfm"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + j.start_array("PDUSessionResourceFailedToModifyListModCfm"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ue_ngap_ids_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_confirm_ies_o::value_c::pack(bit_ref& bref) const { - type_.pack(bref); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ue_ngap_id_pair: - HANDLE_CODE(c.get().pack(bref)); - break; case types::amf_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_modify_list_mod_cfm: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_ngap_ids_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_confirm_ies_o::value_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ue_ngap_id_pair: - HANDLE_CODE(c.get().unpack(bref)); - break; case types::amf_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_modify_list_mod_cfm: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_failed_to_modify_list_mod_cfm: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ue_ngap_ids_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_ngap_ids_c::types_opts::to_string() const +const char* pdu_session_res_modify_confirm_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"uE-NGAP-ID-pair", "aMF-UE-NGAP-ID", "choice-Extensions"}; - return convert_enum_idx(options, 3, value, "ue_ngap_ids_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceModifyListModCfm", + "PDUSessionResourceFailedToModifyListModCfm", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 5, value, "pdu_session_res_modify_confirm_ies_o::value_c::types"); } -// UEPagingIdentity ::= CHOICE -void ue_paging_id_c::destroy_() +// PDUSessionResourceModifyIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_modify_ind_ies_o::idx_to_id(uint32_t idx) { - switch (type_) { - case types::five_g_s_tmsi: - c.destroy(); - break; - case types::choice_exts: - c.destroy >(); - break; - default: - break; - } + static const uint32_t options[] = {10, 85, 63}; + return map_enum_number(options, 3, idx, "id"); } -void ue_paging_id_c::set(types::options e) +bool pdu_session_res_modify_ind_ies_o::is_id_valid(const uint32_t& id) { - destroy_(); - type_ = e; - switch (type_) { - case types::five_g_s_tmsi: - c.init(); - break; - case types::choice_exts: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_id_c"); + static const uint32_t options[] = {10, 85, 63}; + for (const auto& o : options) { + if (o == id) { + return true; + } } + return false; } -ue_paging_id_c::ue_paging_id_c(const ue_paging_id_c& other) +crit_e pdu_session_res_modify_ind_ies_o::get_crit(const uint32_t& id) { - type_ = other.type(); - switch (type_) { - case types::five_g_s_tmsi: - c.init(other.c.get()); - break; - case types::choice_exts: - c.init(other.c.get >()); - break; - case types::nulltype: - break; + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 63: + return crit_e::reject; default: - log_invalid_choice_id(type_, "ue_paging_id_c"); + asn1::log_error("The id=%d is not recognized", id); } + return {}; } -ue_paging_id_c& ue_paging_id_c::operator=(const ue_paging_id_c& other) +pdu_session_res_modify_ind_ies_o::value_c pdu_session_res_modify_ind_ies_o::get_value(const uint32_t& id) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::five_g_s_tmsi: - c.set(other.c.get()); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case types::choice_exts: - c.set(other.c.get >()); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case types::nulltype: + case 63: + ret.set(value_c::types::pdu_session_res_modify_list_mod_ind); break; default: - log_invalid_choice_id(type_, "ue_paging_id_c"); + asn1::log_error("The id=%d is not recognized", id); } - - return *this; + return ret; } -void ue_paging_id_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::five_g_s_tmsi: - j.write_fieldname("fiveG-S-TMSI"); - c.get().to_json(j); - break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ue_paging_id_c"); - } - j.end_obj(); -} -SRSASN_CODE ue_paging_id_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::five_g_s_tmsi: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_paging_id_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_paging_id_c::unpack(cbit_ref& bref) +presence_e pdu_session_res_modify_ind_ies_o::get_presence(const uint32_t& id) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::five_g_s_tmsi: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); - break; + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 63: + return presence_e::mandatory; default: - log_invalid_choice_id(type_, "ue_paging_id_c"); - return SRSASN_ERROR_DECODE_FAIL; + asn1::log_error("The id=%d is not recognized", id); } - return SRSASN_SUCCESS; -} - -std::string ue_paging_id_c::types_opts::to_string() const -{ - static const char* options[] = {"fiveG-S-TMSI", "choice-Extensions"}; - return convert_enum_idx(options, 2, value, "ue_paging_id_c::types"); -} -uint8_t ue_paging_id_c::types_opts::to_number() const -{ - static const uint8_t options[] = {5}; - return map_enum_number(options, 1, value, "ue_paging_id_c::types"); -} - -// UERetentionInformation ::= ENUMERATED -std::string ue_retention_info_opts::to_string() const -{ - static const char* options[] = {"ues-retained"}; - return convert_enum_idx(options, 1, value, "ue_retention_info_e"); + return {}; } -// WarningAreaList ::= CHOICE -void warning_area_list_c::destroy_() +// Value ::= OPEN TYPE +void pdu_session_res_modify_ind_ies_o::value_c::destroy_() { switch (type_) { - case types::eutra_cgi_list_for_warning: - c.destroy(); - break; - case types::nr_cgi_list_for_warning: - c.destroy(); - break; - case types::tai_list_for_warning: - c.destroy(); - break; - case types::emergency_area_id_list: - c.destroy(); - break; - case types::choice_exts: - c.destroy >(); + case types::pdu_session_res_modify_list_mod_ind: + c.destroy(); break; default: break; } } -void warning_area_list_c::set(types::options e) +void pdu_session_res_modify_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::eutra_cgi_list_for_warning: - c.init(); - break; - case types::nr_cgi_list_for_warning: - c.init(); - break; - case types::tai_list_for_warning: - c.init(); + case types::amf_ue_ngap_id: break; - case types::emergency_area_id_list: - c.init(); + case types::ran_ue_ngap_id: break; - case types::choice_exts: - c.init >(); + case types::pdu_session_res_modify_list_mod_ind: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); } } -warning_area_list_c::warning_area_list_c(const warning_area_list_c& other) +pdu_session_res_modify_ind_ies_o::value_c::value_c(const pdu_session_res_modify_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::eutra_cgi_list_for_warning: - c.init(other.c.get()); - break; - case types::nr_cgi_list_for_warning: - c.init(other.c.get()); - break; - case types::tai_list_for_warning: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::emergency_area_id_list: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::choice_exts: - c.init(other.c.get >()); + case types::pdu_session_res_modify_list_mod_ind: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); } } -warning_area_list_c& warning_area_list_c::operator=(const warning_area_list_c& other) +pdu_session_res_modify_ind_ies_o::value_c& +pdu_session_res_modify_ind_ies_o::value_c::operator=(const pdu_session_res_modify_ind_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::eutra_cgi_list_for_warning: - c.set(other.c.get()); - break; - case types::nr_cgi_list_for_warning: - c.set(other.c.get()); - break; - case types::tai_list_for_warning: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::emergency_area_id_list: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::choice_exts: - c.set(other.c.get >()); + case types::pdu_session_res_modify_list_mod_ind: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); } return *this; } -void warning_area_list_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_modify_ind_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_modify_ind_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_ind_ies_o::value_c::pdu_session_res_modify_list_mod_ind() +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_ind, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_ind_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_ind_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_modify_list_mod_ind_l& +pdu_session_res_modify_ind_ies_o::value_c::pdu_session_res_modify_list_mod_ind() const +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_ind, type_, "Value"); + return c.get(); +} +void pdu_session_res_modify_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::eutra_cgi_list_for_warning: - j.start_array("eUTRA-CGIListForWarning"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::nr_cgi_list_for_warning: - j.start_array("nR-CGIListForWarning"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::tai_list_for_warning: - j.start_array("tAIListForWarning"); - for (const auto& e1 : c.get()) { + case types::pdu_session_res_modify_list_mod_ind: + j.start_array("PDUSessionResourceModifyListModInd"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::emergency_area_id_list: - j.start_array("emergencyAreaIDList"); - for (const auto& e1 : c.get()) { - j.write_str(e1.to_string()); - } - j.end_array(); - break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE warning_area_list_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_ind_ies_o::value_c::pack(bit_ref& bref) const { - type_.pack(bref); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::eutra_cgi_list_for_warning: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); - break; - case types::nr_cgi_list_for_warning: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); - break; - case types::tai_list_for_warning: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::emergency_area_id_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65535, true)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); + case types::pdu_session_res_modify_list_mod_ind: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE warning_area_list_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_ind_ies_o::value_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::eutra_cgi_list_for_warning: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); - break; - case types::nr_cgi_list_for_warning: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); - break; - case types::tai_list_for_warning: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::emergency_area_id_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65535, true)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); + case types::pdu_session_res_modify_list_mod_ind: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; default: - log_invalid_choice_id(type_, "warning_area_list_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string warning_area_list_c::types_opts::to_string() const +const char* pdu_session_res_modify_ind_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"eUTRA-CGIListForWarning", - "nR-CGIListForWarning", - "tAIListForWarning", - "emergencyAreaIDList", - "choice-Extensions"}; - return convert_enum_idx(options, 5, value, "warning_area_list_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "PDUSessionResourceModifyListModInd"}; + return convert_enum_idx(options, 3, value, "pdu_session_res_modify_ind_ies_o::value_c::types"); } -// LocationReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t location_report_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceModifyRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_modify_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 121, 116, 33, 149}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {10, 85, 83, 64}; + return map_enum_number(options, 4, idx, "id"); } -bool location_report_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_modify_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 121, 116, 33, 149}; + static const uint32_t options[] = {10, 85, 83, 64}; for (const auto& o : options) { if (o == id) { return true; @@ -27333,27 +27107,23 @@ bool location_report_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e location_report_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_modify_request_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 121: - return crit_e::ignore; - case 116: - return crit_e::ignore; - case 33: - return crit_e::ignore; - case 149: + case 83: return crit_e::ignore; + case 64: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -location_report_ies_o::value_c location_report_ies_o::get_value(const uint32_t& id) +pdu_session_res_modify_request_ies_o::value_c pdu_session_res_modify_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -27363,38 +27133,28 @@ location_report_ies_o::value_c location_report_ies_o::get_value(const uint32_t& case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 121: - ret.set(value_c::types::user_location_info); - break; - case 116: - ret.set(value_c::types::ue_presence_in_area_of_interest_list); - break; - case 33: - ret.set(value_c::types::location_report_request_type); + case 83: + ret.set(value_c::types::ran_paging_prio); break; - case 149: - ret.set(value_c::types::ps_cell_info); + case 64: + ret.set(value_c::types::pdu_session_res_modify_list_mod_req); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e location_report_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_modify_request_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 121: - return presence_e::mandatory; - case 116: + case 83: return presence_e::optional; - case 33: + case 64: return presence_e::mandatory; - case 149: - return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -27402,87 +27162,17 @@ presence_e location_report_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& location_report_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& location_report_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -ue_presence_in_area_of_interest_list_l& location_report_ies_o::value_c::ue_presence_in_area_of_interest_list() -{ - assert_choice_type("UEPresenceInAreaOfInterestList", type_.to_string(), "Value"); - return c.get(); -} -location_report_request_type_s& location_report_ies_o::value_c::location_report_request_type() -{ - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); -} -ngran_cgi_c& location_report_ies_o::value_c::ps_cell_info() -{ - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& location_report_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const ue_presence_in_area_of_interest_list_l& -location_report_ies_o::value_c::ue_presence_in_area_of_interest_list() const -{ - assert_choice_type("UEPresenceInAreaOfInterestList", type_.to_string(), "Value"); - return c.get(); -} -const location_report_request_type_s& location_report_ies_o::value_c::location_report_request_type() const -{ - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); -} -const ngran_cgi_c& location_report_ies_o::value_c::ps_cell_info() const -{ - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -void location_report_ies_o::value_c::destroy_() +void pdu_session_res_modify_request_ies_o::value_c::destroy_() { switch (type_) { - case types::user_location_info: - c.destroy(); - break; - case types::ue_presence_in_area_of_interest_list: - c.destroy(); - break; - case types::location_report_request_type: - c.destroy(); - break; - case types::ps_cell_info: - c.destroy(); + case types::pdu_session_res_modify_list_mod_req: + c.destroy(); break; default: break; } } -void location_report_ies_o::value_c::set(types::options e) +void pdu_session_res_modify_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -27491,25 +27181,18 @@ void location_report_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::user_location_info: - c.init(); - break; - case types::ue_presence_in_area_of_interest_list: - c.init(); - break; - case types::location_report_request_type: - c.init(); + case types::ran_paging_prio: break; - case types::ps_cell_info: - c.init(); + case types::pdu_session_res_modify_list_mod_req: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); } } -location_report_ies_o::value_c::value_c(const location_report_ies_o::value_c& other) +pdu_session_res_modify_request_ies_o::value_c::value_c(const pdu_session_res_modify_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -27519,25 +27202,20 @@ location_report_ies_o::value_c::value_c(const location_report_ies_o::value_c& ot case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::user_location_info: - c.init(other.c.get()); - break; - case types::ue_presence_in_area_of_interest_list: - c.init(other.c.get()); - break; - case types::location_report_request_type: - c.init(other.c.get()); + case types::ran_paging_prio: + c.init(other.c.get()); break; - case types::ps_cell_info: - c.init(other.c.get()); + case types::pdu_session_res_modify_list_mod_req: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); } } -location_report_ies_o::value_c& location_report_ies_o::value_c::operator=(const location_report_ies_o::value_c& other) +pdu_session_res_modify_request_ies_o::value_c& +pdu_session_res_modify_request_ies_o::value_c::operator=(const pdu_session_res_modify_request_ies_o::value_c& other) { if (this == &other) { return *this; @@ -27550,27 +27228,63 @@ location_report_ies_o::value_c& location_report_ies_o::value_c::operator=(const case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::user_location_info: - c.set(other.c.get()); - break; - case types::ue_presence_in_area_of_interest_list: - c.set(other.c.get()); - break; - case types::location_report_request_type: - c.set(other.c.get()); + case types::ran_paging_prio: + c.set(other.c.get()); break; - case types::ps_cell_info: - c.set(other.c.get()); + case types::pdu_session_res_modify_list_mod_req: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); } return *this; } -void location_report_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_modify_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_modify_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint16_t& pdu_session_res_modify_request_ies_o::value_c::ran_paging_prio() +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +pdu_session_res_modify_list_mod_req_l& +pdu_session_res_modify_request_ies_o::value_c::pdu_session_res_modify_list_mod_req() +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_req, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_modify_request_ies_o::value_c::ran_paging_prio() const +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +const pdu_session_res_modify_list_mod_req_l& +pdu_session_res_modify_request_ies_o::value_c::pdu_session_res_modify_list_mod_req() const +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_req, type_, "Value"); + return c.get(); +} +void pdu_session_res_modify_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -27580,31 +27294,22 @@ void location_report_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); + case types::ran_paging_prio: + j.write_int("INTEGER (1..256)", c.get()); break; - case types::ue_presence_in_area_of_interest_list: - j.start_array("UEPresenceInAreaOfInterestList"); - for (const auto& e1 : c.get()) { + case types::pdu_session_res_modify_list_mod_req: + j.start_array("PDUSessionResourceModifyListModReq"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::location_report_request_type: - j.write_fieldname("LocationReportingRequestType"); - c.get().to_json(j); - break; - case types::ps_cell_info: - j.write_fieldname("NGRAN-CGI"); - c.get().to_json(j); - break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE location_report_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -27614,25 +27319,19 @@ SRSASN_CODE location_report_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_presence_in_area_of_interest_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); + case types::ran_paging_prio: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); break; - case types::location_report_request_type: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ps_cell_info: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_modify_list_mod_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -27642,45 +27341,37 @@ SRSASN_CODE location_report_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_presence_in_area_of_interest_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); - break; - case types::location_report_request_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_paging_prio: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); break; - case types::ps_cell_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_modify_list_mod_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; default: - log_invalid_choice_id(type_, "location_report_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string location_report_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_modify_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "UserLocationInformation", - "UEPresenceInAreaOfInterestList", - "LocationReportingRequestType", - "NGRAN-CGI"}; - return convert_enum_idx(options, 6, value, "location_report_ies_o::value_c::types"); + "INTEGER (1..256)", + "PDUSessionResourceModifyListModReq"}; + return convert_enum_idx(options, 4, value, "pdu_session_res_modify_request_ies_o::value_c::types"); } -// LocationReportingControlIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t location_report_ctrl_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceModifyResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_modify_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 33}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {10, 85, 65, 54, 121, 19}; + return map_enum_number(options, 6, idx, "id"); } -bool location_report_ctrl_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_modify_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 33}; + static const uint32_t options[] = {10, 85, 65, 54, 121, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -27688,21 +27379,27 @@ bool location_report_ctrl_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e location_report_ctrl_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_modify_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: - return crit_e::reject; + return crit_e::ignore; case 85: - return crit_e::reject; - case 33: + return crit_e::ignore; + case 65: + return crit_e::ignore; + case 54: + return crit_e::ignore; + case 121: + return crit_e::ignore; + case 19: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -location_report_ctrl_ies_o::value_c location_report_ctrl_ies_o::get_value(const uint32_t& id) +pdu_session_res_modify_resp_ies_o::value_c pdu_session_res_modify_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -27712,23 +27409,38 @@ location_report_ctrl_ies_o::value_c location_report_ctrl_ies_o::get_value(const case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 33: - ret.set(value_c::types::location_report_request_type); + case 65: + ret.set(value_c::types::pdu_session_res_modify_list_mod_res); + break; + case 54: + ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_res); + break; + case 121: + ret.set(value_c::types::user_location_info); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e location_report_ctrl_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_modify_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 33: - return presence_e::mandatory; + case 65: + return presence_e::optional; + case 54: + return presence_e::optional; + case 121: + return presence_e::optional; + case 19: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -27736,47 +27448,26 @@ presence_e location_report_ctrl_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_ctrl_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& location_report_ctrl_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -location_report_request_type_s& location_report_ctrl_ies_o::value_c::location_report_request_type() -{ - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ctrl_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ctrl_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const location_report_request_type_s& location_report_ctrl_ies_o::value_c::location_report_request_type() const -{ - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); -} -void location_report_ctrl_ies_o::value_c::destroy_() +void pdu_session_res_modify_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::location_report_request_type: - c.destroy(); + case types::pdu_session_res_modify_list_mod_res: + c.destroy(); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + c.destroy(); + break; + case types::user_location_info: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void location_report_ctrl_ies_o::value_c::set(types::options e) +void pdu_session_res_modify_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -27785,16 +27476,25 @@ void location_report_ctrl_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::location_report_request_type: - c.init(); + case types::pdu_session_res_modify_list_mod_res: + c.init(); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + c.init(); + break; + case types::user_location_info: + c.init(); + break; + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); } } -location_report_ctrl_ies_o::value_c::value_c(const location_report_ctrl_ies_o::value_c& other) +pdu_session_res_modify_resp_ies_o::value_c::value_c(const pdu_session_res_modify_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -27804,17 +27504,26 @@ location_report_ctrl_ies_o::value_c::value_c(const location_report_ctrl_ies_o::v case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::location_report_request_type: - c.init(other.c.get()); + case types::pdu_session_res_modify_list_mod_res: + c.init(other.c.get()); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); } } -location_report_ctrl_ies_o::value_c& location_report_ctrl_ies_o::value_c:: - operator=(const location_report_ctrl_ies_o::value_c& other) +pdu_session_res_modify_resp_ies_o::value_c& +pdu_session_res_modify_resp_ies_o::value_c::operator=(const pdu_session_res_modify_resp_ies_o::value_c& other) { if (this == &other) { return *this; @@ -27827,18 +27536,90 @@ location_report_ctrl_ies_o::value_c& location_report_ctrl_ies_o::value_c:: case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::location_report_request_type: - c.set(other.c.get()); + case types::pdu_session_res_modify_list_mod_res: + c.set(other.c.get()); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); } return *this; } -void location_report_ctrl_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_modify_resp_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_modify_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_modify_list_mod_res() +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_res, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_modify_list_mod_res_l& +pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_res() +{ + assert_choice_type(types::pdu_session_res_failed_to_modify_list_mod_res, type_, "Value"); + return c.get(); +} +user_location_info_c& pdu_session_res_modify_resp_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& pdu_session_res_modify_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_modify_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_modify_list_mod_res_l& +pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_modify_list_mod_res() const +{ + assert_choice_type(types::pdu_session_res_modify_list_mod_res, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_modify_list_mod_res_l& +pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_res() const +{ + assert_choice_type(types::pdu_session_res_failed_to_modify_list_mod_res, type_, "Value"); + return c.get(); +} +const user_location_info_c& pdu_session_res_modify_resp_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& pdu_session_res_modify_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void pdu_session_res_modify_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -27848,16 +27629,34 @@ void location_report_ctrl_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::location_report_request_type: - j.write_fieldname("LocationReportingRequestType"); - c.get().to_json(j); + case types::pdu_session_res_modify_list_mod_res: + j.start_array("PDUSessionResourceModifyListModRes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + j.start_array("PDUSessionResourceFailedToModifyListModRes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE location_report_ctrl_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -27867,16 +27666,25 @@ SRSASN_CODE location_report_ctrl_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::location_report_request_type: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_modify_list_mod_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_ctrl_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -27886,32 +27694,45 @@ SRSASN_CODE location_report_ctrl_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::location_report_request_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_modify_list_mod_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_failed_to_modify_list_mod_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "location_report_ctrl_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string location_report_ctrl_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_modify_resp_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "LocationReportingRequestType"}; - return convert_enum_idx(options, 3, value, "location_report_ctrl_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceModifyListModRes", + "PDUSessionResourceFailedToModifyListModRes", + "UserLocationInformation", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 6, value, "pdu_session_res_modify_resp_ies_o::value_c::types"); } -// LocationReportingFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t location_report_fail_ind_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_notify_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 15}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {10, 85, 66, 67, 121}; + return map_enum_number(options, 5, idx, "id"); } -bool location_report_fail_ind_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_notify_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 15}; + static const uint32_t options[] = {10, 85, 66, 67, 121}; for (const auto& o : options) { if (o == id) { return true; @@ -27919,21 +27740,25 @@ bool location_report_fail_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e location_report_fail_ind_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_notify_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 15: + case 66: + return crit_e::reject; + case 67: + return crit_e::ignore; + case 121: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -location_report_fail_ind_ies_o::value_c location_report_fail_ind_ies_o::get_value(const uint32_t& id) +pdu_session_res_notify_ies_o::value_c pdu_session_res_notify_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -27943,23 +27768,33 @@ location_report_fail_ind_ies_o::value_c location_report_fail_ind_ies_o::get_valu case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 15: - ret.set(value_c::types::cause); + case 66: + ret.set(value_c::types::pdu_session_res_notify_list); + break; + case 67: + ret.set(value_c::types::pdu_session_res_released_list_not); + break; + case 121: + ret.set(value_c::types::user_location_info); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e location_report_fail_ind_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_notify_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 15: - return presence_e::mandatory; + case 66: + return presence_e::optional; + case 67: + return presence_e::optional; + case 121: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -27967,47 +27802,23 @@ presence_e location_report_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_fail_ind_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& location_report_fail_ind_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& location_report_fail_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_fail_ind_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_fail_ind_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& location_report_fail_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -void location_report_fail_ind_ies_o::value_c::destroy_() +void pdu_session_res_notify_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::pdu_session_res_notify_list: + c.destroy(); + break; + case types::pdu_session_res_released_list_not: + c.destroy(); + break; + case types::user_location_info: + c.destroy(); break; default: break; } } -void location_report_fail_ind_ies_o::value_c::set(types::options e) +void pdu_session_res_notify_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -28016,16 +27827,22 @@ void location_report_fail_ind_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::cause: - c.init(); + case types::pdu_session_res_notify_list: + c.init(); + break; + case types::pdu_session_res_released_list_not: + c.init(); + break; + case types::user_location_info: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); } } -location_report_fail_ind_ies_o::value_c::value_c(const location_report_fail_ind_ies_o::value_c& other) +pdu_session_res_notify_ies_o::value_c::value_c(const pdu_session_res_notify_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -28035,17 +27852,23 @@ location_report_fail_ind_ies_o::value_c::value_c(const location_report_fail_ind_ case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::cause: - c.init(other.c.get()); + case types::pdu_session_res_notify_list: + c.init(other.c.get()); + break; + case types::pdu_session_res_released_list_not: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); } } -location_report_fail_ind_ies_o::value_c& location_report_fail_ind_ies_o::value_c:: - operator=(const location_report_fail_ind_ies_o::value_c& other) +pdu_session_res_notify_ies_o::value_c& +pdu_session_res_notify_ies_o::value_c::operator=(const pdu_session_res_notify_ies_o::value_c& other) { if (this == &other) { return *this; @@ -28058,18 +27881,75 @@ location_report_fail_ind_ies_o::value_c& location_report_fail_ind_ies_o::value_c case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::cause: - c.set(other.c.get()); + case types::pdu_session_res_notify_list: + c.set(other.c.get()); + break; + case types::pdu_session_res_released_list_not: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); } return *this; } -void location_report_fail_ind_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_notify_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_notify_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_notify_list_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_notify_list() +{ + assert_choice_type(types::pdu_session_res_notify_list, type_, "Value"); + return c.get(); +} +pdu_session_res_released_list_not_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_released_list_not() +{ + assert_choice_type(types::pdu_session_res_released_list_not, type_, "Value"); + return c.get(); +} +user_location_info_c& pdu_session_res_notify_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_notify_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_notify_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_notify_list_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_notify_list() const +{ + assert_choice_type(types::pdu_session_res_notify_list, type_, "Value"); + return c.get(); +} +const pdu_session_res_released_list_not_l& +pdu_session_res_notify_ies_o::value_c::pdu_session_res_released_list_not() const +{ + assert_choice_type(types::pdu_session_res_released_list_not, type_, "Value"); + return c.get(); +} +const user_location_info_c& pdu_session_res_notify_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +void pdu_session_res_notify_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -28079,16 +27959,30 @@ void location_report_fail_ind_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::pdu_session_res_notify_list: + j.start_array("PDUSessionResourceNotifyList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_released_list_not: + j.start_array("PDUSessionResourceReleasedListNot"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE location_report_fail_ind_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_notify_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -28098,16 +27992,22 @@ SRSASN_CODE location_report_fail_ind_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_notify_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_released_list_not: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_notify_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -28117,31 +28017,41 @@ SRSASN_CODE location_report_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_notify_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_released_list_not: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "location_report_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string location_report_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_notify_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause"}; - return convert_enum_idx(options, 3, value, "location_report_fail_ind_ies_o::value_c::types"); -} - -// NASNonDeliveryIndication-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t nas_non_delivery_ind_ies_o::idx_to_id(uint32_t idx) + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceNotifyList", + "PDUSessionResourceReleasedListNot", + "UserLocationInformation"}; + return convert_enum_idx(options, 5, value, "pdu_session_res_notify_ies_o::value_c::types"); +} + +// PDUSessionResourceReleaseCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_release_cmd_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 38, 15}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {10, 85, 83, 38, 79}; + return map_enum_number(options, 5, idx, "id"); } -bool nas_non_delivery_ind_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_release_cmd_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 38, 15}; + static const uint32_t options[] = {10, 85, 83, 38, 79}; for (const auto& o : options) { if (o == id) { return true; @@ -28149,23 +28059,25 @@ bool nas_non_delivery_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e nas_non_delivery_ind_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_release_cmd_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 38: + case 83: return crit_e::ignore; - case 15: + case 38: return crit_e::ignore; + case 79: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -nas_non_delivery_ind_ies_o::value_c nas_non_delivery_ind_ies_o::get_value(const uint32_t& id) +pdu_session_res_release_cmd_ies_o::value_c pdu_session_res_release_cmd_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -28175,27 +28087,32 @@ nas_non_delivery_ind_ies_o::value_c nas_non_delivery_ind_ies_o::get_value(const case 85: ret.set(value_c::types::ran_ue_ngap_id); break; + case 83: + ret.set(value_c::types::ran_paging_prio); + break; case 38: ret.set(value_c::types::nas_pdu); break; - case 15: - ret.set(value_c::types::cause); + case 79: + ret.set(value_c::types::pdu_session_res_to_release_list_rel_cmd); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e nas_non_delivery_ind_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_release_cmd_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; + case 83: + return presence_e::optional; case 38: - return presence_e::mandatory; - case 15: + return presence_e::optional; + case 79: return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); @@ -28204,60 +28121,20 @@ presence_e nas_non_delivery_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& nas_non_delivery_ind_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& nas_non_delivery_ind_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -cause_c& nas_non_delivery_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& nas_non_delivery_ind_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& nas_non_delivery_ind_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cause_c& nas_non_delivery_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -void nas_non_delivery_ind_ies_o::value_c::destroy_() +void pdu_session_res_release_cmd_ies_o::value_c::destroy_() { switch (type_) { case types::nas_pdu: c.destroy >(); break; - case types::cause: - c.destroy(); + case types::pdu_session_res_to_release_list_rel_cmd: + c.destroy(); break; default: break; } } -void nas_non_delivery_ind_ies_o::value_c::set(types::options e) +void pdu_session_res_release_cmd_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -28266,19 +28143,21 @@ void nas_non_delivery_ind_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; + case types::ran_paging_prio: + break; case types::nas_pdu: c.init >(); break; - case types::cause: - c.init(); + case types::pdu_session_res_to_release_list_rel_cmd: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); } } -nas_non_delivery_ind_ies_o::value_c::value_c(const nas_non_delivery_ind_ies_o::value_c& other) +pdu_session_res_release_cmd_ies_o::value_c::value_c(const pdu_session_res_release_cmd_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -28288,20 +28167,23 @@ nas_non_delivery_ind_ies_o::value_c::value_c(const nas_non_delivery_ind_ies_o::v case types::ran_ue_ngap_id: c.init(other.c.get()); break; + case types::ran_paging_prio: + c.init(other.c.get()); + break; case types::nas_pdu: c.init(other.c.get >()); break; - case types::cause: - c.init(other.c.get()); + case types::pdu_session_res_to_release_list_rel_cmd: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); } } -nas_non_delivery_ind_ies_o::value_c& nas_non_delivery_ind_ies_o::value_c:: - operator=(const nas_non_delivery_ind_ies_o::value_c& other) +pdu_session_res_release_cmd_ies_o::value_c& +pdu_session_res_release_cmd_ies_o::value_c::operator=(const pdu_session_res_release_cmd_ies_o::value_c& other) { if (this == &other) { return *this; @@ -28314,21 +28196,76 @@ nas_non_delivery_ind_ies_o::value_c& nas_non_delivery_ind_ies_o::value_c:: case types::ran_ue_ngap_id: c.set(other.c.get()); break; + case types::ran_paging_prio: + c.set(other.c.get()); + break; case types::nas_pdu: c.set(other.c.get >()); break; - case types::cause: - c.set(other.c.get()); + case types::pdu_session_res_to_release_list_rel_cmd: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); } return *this; } -void nas_non_delivery_ind_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_release_cmd_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_release_cmd_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint16_t& pdu_session_res_release_cmd_ies_o::value_c::ran_paging_prio() +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +unbounded_octstring& pdu_session_res_release_cmd_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +pdu_session_res_to_release_list_rel_cmd_l& +pdu_session_res_release_cmd_ies_o::value_c::pdu_session_res_to_release_list_rel_cmd() +{ + assert_choice_type(types::pdu_session_res_to_release_list_rel_cmd, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_release_cmd_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_release_cmd_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_release_cmd_ies_o::value_c::ran_paging_prio() const +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +const unbounded_octstring& pdu_session_res_release_cmd_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const pdu_session_res_to_release_list_rel_cmd_l& +pdu_session_res_release_cmd_ies_o::value_c::pdu_session_res_to_release_list_rel_cmd() const +{ + assert_choice_type(types::pdu_session_res_to_release_list_rel_cmd, type_, "Value"); + return c.get(); +} +void pdu_session_res_release_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -28338,19 +28275,25 @@ void nas_non_delivery_ind_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; + case types::ran_paging_prio: + j.write_int("INTEGER (1..256)", c.get()); + break; case types::nas_pdu: j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::pdu_session_res_to_release_list_rel_cmd: + j.start_array("PDUSessionResourceToReleaseListRelCmd"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_release_cmd_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -28360,19 +28303,22 @@ SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; + case types::ran_paging_prio: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); + break; case types::nas_pdu: HANDLE_CODE(c.get >().pack(bref)); break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_to_release_list_rel_cmd: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -28382,34 +28328,41 @@ SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; + case types::ran_paging_prio: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + break; case types::nas_pdu: HANDLE_CODE(c.get >().unpack(bref)); break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_to_release_list_rel_cmd: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; default: - log_invalid_choice_id(type_, "nas_non_delivery_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string nas_non_delivery_ind_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_release_cmd_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "Cause"}; - return convert_enum_idx(options, 4, value, "nas_non_delivery_ind_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "INTEGER (1..256)", + "OCTET STRING", + "PDUSessionResourceToReleaseListRelCmd"}; + return convert_enum_idx(options, 5, value, "pdu_session_res_release_cmd_ies_o::value_c::types"); } -// NGResetAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ng_reset_ack_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceReleaseResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_release_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {111, 19}; - return map_enum_number(options, 2, idx, "id"); + static const uint32_t options[] = {10, 85, 70, 121, 19}; + return map_enum_number(options, 5, idx, "id"); } -bool ng_reset_ack_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_release_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {111, 19}; + static const uint32_t options[] = {10, 85, 70, 121, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -28417,10 +28370,16 @@ bool ng_reset_ack_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ng_reset_ack_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_release_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 111: + case 10: + return crit_e::ignore; + case 85: + return crit_e::ignore; + case 70: + return crit_e::ignore; + case 121: return crit_e::ignore; case 19: return crit_e::ignore; @@ -28429,12 +28388,21 @@ crit_e ng_reset_ack_ies_o::get_crit(const uint32_t& id) } return {}; } -ng_reset_ack_ies_o::value_c ng_reset_ack_ies_o::get_value(const uint32_t& id) +pdu_session_res_release_resp_ies_o::value_c pdu_session_res_release_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 111: - ret.set(value_c::types::ue_associated_lc_ng_conn_list); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 70: + ret.set(value_c::types::pdu_session_res_released_list_rel_res); + break; + case 121: + ret.set(value_c::types::user_location_info); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -28444,10 +28412,16 @@ ng_reset_ack_ies_o::value_c ng_reset_ack_ies_o::get_value(const uint32_t& id) } return ret; } -presence_e ng_reset_ack_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_release_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 111: + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 70: + return presence_e::mandatory; + case 121: return presence_e::optional; case 19: return presence_e::optional; @@ -28458,31 +28432,14 @@ presence_e ng_reset_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ue_associated_lc_ng_conn_list_l& ng_reset_ack_ies_o::value_c::ue_associated_lc_ng_conn_list() -{ - assert_choice_type("UE-associatedLogicalNG-connectionList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ng_reset_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const ue_associated_lc_ng_conn_list_l& ng_reset_ack_ies_o::value_c::ue_associated_lc_ng_conn_list() const -{ - assert_choice_type("UE-associatedLogicalNG-connectionList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ng_reset_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ng_reset_ack_ies_o::value_c::destroy_() +void pdu_session_res_release_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::ue_associated_lc_ng_conn_list: - c.destroy(); + case types::pdu_session_res_released_list_rel_res: + c.destroy(); + break; + case types::user_location_info: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -28491,13 +28448,20 @@ void ng_reset_ack_ies_o::value_c::destroy_() break; } } -void ng_reset_ack_ies_o::value_c::set(types::options e) +void pdu_session_res_release_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ue_associated_lc_ng_conn_list: - c.init(); + case types::amf_ue_ngap_id: + break; + case types::ran_ue_ngap_id: + break; + case types::pdu_session_res_released_list_rel_res: + c.init(); + break; + case types::user_location_info: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -28505,15 +28469,24 @@ void ng_reset_ack_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); } } -ng_reset_ack_ies_o::value_c::value_c(const ng_reset_ack_ies_o::value_c& other) +pdu_session_res_release_resp_ies_o::value_c::value_c(const pdu_session_res_release_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ue_associated_lc_ng_conn_list: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::pdu_session_res_released_list_rel_res: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -28521,18 +28494,28 @@ ng_reset_ack_ies_o::value_c::value_c(const ng_reset_ack_ies_o::value_c& other) case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); } } -ng_reset_ack_ies_o::value_c& ng_reset_ack_ies_o::value_c::operator=(const ng_reset_ack_ies_o::value_c& other) +pdu_session_res_release_resp_ies_o::value_c& +pdu_session_res_release_resp_ies_o::value_c::operator=(const pdu_session_res_release_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ue_associated_lc_ng_conn_list: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::pdu_session_res_released_list_rel_res: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -28540,79 +28523,163 @@ ng_reset_ack_ies_o::value_c& ng_reset_ack_ies_o::value_c::operator=(const ng_res case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); } return *this; } -void ng_reset_ack_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_release_resp_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_release_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_released_list_rel_res_l& +pdu_session_res_release_resp_ies_o::value_c::pdu_session_res_released_list_rel_res() +{ + assert_choice_type(types::pdu_session_res_released_list_rel_res, type_, "Value"); + return c.get(); +} +user_location_info_c& pdu_session_res_release_resp_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& pdu_session_res_release_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_release_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_release_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_released_list_rel_res_l& +pdu_session_res_release_resp_ies_o::value_c::pdu_session_res_released_list_rel_res() const +{ + assert_choice_type(types::pdu_session_res_released_list_rel_res, type_, "Value"); + return c.get(); +} +const user_location_info_c& pdu_session_res_release_resp_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& pdu_session_res_release_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void pdu_session_res_release_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ue_associated_lc_ng_conn_list: - j.start_array("UE-associatedLogicalNG-connectionList"); - for (const auto& e1 : c.get()) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_released_list_rel_res: + j.start_array("PDUSessionResourceReleasedListRelRes"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); + break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ng_reset_ack_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_release_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ue_associated_lc_ng_conn_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 65536, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_released_list_rel_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ack_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_release_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ue_associated_lc_ng_conn_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 65536, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_released_list_rel_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ng_reset_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ng_reset_ack_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_release_resp_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"UE-associatedLogicalNG-connectionList", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 2, value, "ng_reset_ack_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceReleasedListRelRes", + "UserLocationInformation", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 5, value, "pdu_session_res_release_resp_ies_o::value_c::types"); } -// NGResetIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ng_reset_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_setup_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {15, 88}; - return map_enum_number(options, 2, idx, "id"); + static const uint32_t options[] = {10, 85, 83, 38, 74, 110}; + return map_enum_number(options, 6, idx, "id"); } -bool ng_reset_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_setup_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {15, 88}; + static const uint32_t options[] = {10, 85, 83, 38, 74, 110}; for (const auto& o : options) { if (o == id) { return true; @@ -28620,40 +28687,68 @@ bool ng_reset_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ng_reset_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_setup_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 15: + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 83: return crit_e::ignore; - case 88: + case 38: + return crit_e::reject; + case 74: return crit_e::reject; + case 110: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ng_reset_ies_o::value_c ng_reset_ies_o::get_value(const uint32_t& id) +pdu_session_res_setup_request_ies_o::value_c pdu_session_res_setup_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 15: - ret.set(value_c::types::cause); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 88: - ret.set(value_c::types::reset_type); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 83: + ret.set(value_c::types::ran_paging_prio); + break; + case 38: + ret.set(value_c::types::nas_pdu); + break; + case 74: + ret.set(value_c::types::pdu_session_res_setup_list_su_req); + break; + case 110: + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ng_reset_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_setup_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 15: + case 10: return presence_e::mandatory; - case 88: + case 85: + return presence_e::mandatory; + case 83: + return presence_e::optional; + case 38: + return presence_e::optional; + case 74: return presence_e::mandatory; + case 110: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -28661,158 +28756,281 @@ presence_e ng_reset_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& ng_reset_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -reset_type_c& ng_reset_ies_o::value_c::reset_type() -{ - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ng_reset_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const reset_type_c& ng_reset_ies_o::value_c::reset_type() const -{ - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); -} -void ng_reset_ies_o::value_c::destroy_() +void pdu_session_res_setup_request_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::nas_pdu: + c.destroy >(); break; - case types::reset_type: - c.destroy(); + case types::pdu_session_res_setup_list_su_req: + c.destroy(); break; - default: + case types::ue_aggregate_maximum_bit_rate: + c.destroy(); + break; + default: break; } } -void ng_reset_ies_o::value_c::set(types::options e) +void pdu_session_res_setup_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::cause: - c.init(); + case types::amf_ue_ngap_id: break; - case types::reset_type: - c.init(); + case types::ran_ue_ngap_id: + break; + case types::ran_paging_prio: + break; + case types::nas_pdu: + c.init >(); + break; + case types::pdu_session_res_setup_list_su_req: + c.init(); + break; + case types::ue_aggregate_maximum_bit_rate: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); } } -ng_reset_ies_o::value_c::value_c(const ng_reset_ies_o::value_c& other) +pdu_session_res_setup_request_ies_o::value_c::value_c(const pdu_session_res_setup_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::cause: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::reset_type: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::ran_paging_prio: + c.init(other.c.get()); + break; + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::pdu_session_res_setup_list_su_req: + c.init(other.c.get()); + break; + case types::ue_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); } } -ng_reset_ies_o::value_c& ng_reset_ies_o::value_c::operator=(const ng_reset_ies_o::value_c& other) +pdu_session_res_setup_request_ies_o::value_c& +pdu_session_res_setup_request_ies_o::value_c::operator=(const pdu_session_res_setup_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::cause: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::reset_type: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::ran_paging_prio: + c.set(other.c.get()); + break; + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::pdu_session_res_setup_list_su_req: + c.set(other.c.get()); + break; + case types::ue_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); } return *this; } -void ng_reset_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_setup_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_setup_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint16_t& pdu_session_res_setup_request_ies_o::value_c::ran_paging_prio() +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +unbounded_octstring& pdu_session_res_setup_request_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_request_ies_o::value_c::pdu_session_res_setup_list_su_req() +{ + assert_choice_type(types::pdu_session_res_setup_list_su_req, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bit_rate_s& pdu_session_res_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_setup_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_setup_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_setup_request_ies_o::value_c::ran_paging_prio() const +{ + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); +} +const unbounded_octstring& pdu_session_res_setup_request_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const pdu_session_res_setup_list_su_req_l& +pdu_session_res_setup_request_ies_o::value_c::pdu_session_res_setup_list_su_req() const +{ + assert_choice_type(types::pdu_session_res_setup_list_su_req, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bit_rate_s& +pdu_session_res_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +void pdu_session_res_setup_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::reset_type: - j.write_fieldname("ResetType"); - c.get().to_json(j); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::ran_paging_prio: + j.write_int("INTEGER (1..256)", c.get()); + break; + case types::nas_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::pdu_session_res_setup_list_su_req: + j.start_array("PDUSessionResourceSetupListSUReq"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::ue_aggregate_maximum_bit_rate: + j.write_fieldname("UEAggregateMaximumBitRate"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ng_reset_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::reset_type: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::ran_paging_prio: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); + break; + case types::nas_pdu: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::pdu_session_res_setup_list_su_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::reset_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::ran_paging_prio: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + break; + case types::nas_pdu: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::pdu_session_res_setup_list_su_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ng_reset_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ng_reset_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_setup_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"Cause", "ResetType"}; - return convert_enum_idx(options, 2, value, "ng_reset_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "INTEGER (1..256)", + "OCTET STRING", + "PDUSessionResourceSetupListSUReq", + "UEAggregateMaximumBitRate"}; + return convert_enum_idx(options, 6, value, "pdu_session_res_setup_request_ies_o::value_c::types"); } -// NGSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ng_setup_fail_ies_o::idx_to_id(uint32_t idx) +// PDUSessionResourceSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_setup_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {15, 107, 19}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {10, 85, 75, 58, 19}; + return map_enum_number(options, 5, idx, "id"); } -bool ng_setup_fail_ies_o::is_id_valid(const uint32_t& id) +bool pdu_session_res_setup_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {15, 107, 19}; + static const uint32_t options[] = {10, 85, 75, 58, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -28820,12 +29038,16 @@ bool ng_setup_fail_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ng_setup_fail_ies_o::get_crit(const uint32_t& id) +crit_e pdu_session_res_setup_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 15: + case 10: return crit_e::ignore; - case 107: + case 85: + return crit_e::ignore; + case 75: + return crit_e::ignore; + case 58: return crit_e::ignore; case 19: return crit_e::ignore; @@ -28834,15 +29056,21 @@ crit_e ng_setup_fail_ies_o::get_crit(const uint32_t& id) } return {}; } -ng_setup_fail_ies_o::value_c ng_setup_fail_ies_o::get_value(const uint32_t& id) +pdu_session_res_setup_resp_ies_o::value_c pdu_session_res_setup_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 15: - ret.set(value_c::types::cause); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 107: - ret.set(value_c::types::time_to_wait); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 75: + ret.set(value_c::types::pdu_session_res_setup_list_su_res); + break; + case 58: + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_su_res); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -28852,12 +29080,16 @@ ng_setup_fail_ies_o::value_c ng_setup_fail_ies_o::get_value(const uint32_t& id) } return ret; } -presence_e ng_setup_fail_ies_o::get_presence(const uint32_t& id) +presence_e pdu_session_res_setup_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 15: + case 10: return presence_e::mandatory; - case 107: + case 85: + return presence_e::mandatory; + case 75: + return presence_e::optional; + case 58: return presence_e::optional; case 19: return presence_e::optional; @@ -28868,41 +29100,14 @@ presence_e ng_setup_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& ng_setup_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& ng_setup_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ng_setup_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ng_setup_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& ng_setup_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ng_setup_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ng_setup_fail_ies_o::value_c::destroy_() +void pdu_session_res_setup_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::pdu_session_res_setup_list_su_res: + c.destroy(); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -28911,15 +29116,20 @@ void ng_setup_fail_ies_o::value_c::destroy_() break; } } -void ng_setup_fail_ies_o::value_c::set(types::options e) +void pdu_session_res_setup_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::cause: - c.init(); + case types::amf_ue_ngap_id: break; - case types::time_to_wait: + case types::ran_ue_ngap_id: + break; + case types::pdu_session_res_setup_list_su_res: + c.init(); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -28927,18 +29137,24 @@ void ng_setup_fail_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); } } -ng_setup_fail_ies_o::value_c::value_c(const ng_setup_fail_ies_o::value_c& other) +pdu_session_res_setup_resp_ies_o::value_c::value_c(const pdu_session_res_setup_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::cause: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::time_to_wait: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::pdu_session_res_setup_list_su_res: + c.init(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -28946,21 +29162,28 @@ ng_setup_fail_ies_o::value_c::value_c(const ng_setup_fail_ies_o::value_c& other) case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); } } -ng_setup_fail_ies_o::value_c& ng_setup_fail_ies_o::value_c::operator=(const ng_setup_fail_ies_o::value_c& other) +pdu_session_res_setup_resp_ies_o::value_c& +pdu_session_res_setup_resp_ies_o::value_c::operator=(const pdu_session_res_setup_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::cause: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::time_to_wait: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::pdu_session_res_setup_list_su_res: + c.set(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -28968,85 +29191,167 @@ ng_setup_fail_ies_o::value_c& ng_setup_fail_ies_o::value_c::operator=(const ng_s case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); } return *this; } -void ng_setup_fail_ies_o::value_c::to_json(json_writer& j) const +uint64_t& pdu_session_res_setup_resp_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& pdu_session_res_setup_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_setup_list_su_res() +{ + assert_choice_type(types::pdu_session_res_setup_list_su_res, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_setup_list_su_res_l& +pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_su_res() +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_su_res, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& pdu_session_res_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_setup_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_setup_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_setup_list_su_res_l& +pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_setup_list_su_res() const +{ + assert_choice_type(types::pdu_session_res_setup_list_su_res, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_setup_list_su_res_l& +pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_su_res() const +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_su_res, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& pdu_session_res_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void pdu_session_res_setup_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::time_to_wait: - j.write_str("TimeToWait", c.get().to_string()); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_setup_list_su_res: + j.start_array("PDUSessionResourceSetupListSURes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + j.start_array("PDUSessionResourceFailedToSetupListSURes"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ng_setup_fail_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::time_to_wait: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_setup_list_su_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::time_to_wait: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::pdu_session_res_setup_list_su_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_su_res: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ng_setup_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ng_setup_fail_ies_o::value_c::types_opts::to_string() const +const char* pdu_session_res_setup_resp_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 3, value, "ng_setup_fail_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceSetupListSURes", + "PDUSessionResourceFailedToSetupListSURes", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 5, value, "pdu_session_res_setup_resp_ies_o::value_c::types"); } -// NGSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ng_setup_request_ies_o::idx_to_id(uint32_t idx) +// PWSCancelRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pws_cancel_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {27, 82, 102, 21, 147}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {35, 95, 122, 14}; + return map_enum_number(options, 4, idx, "id"); } -bool ng_setup_request_ies_o::is_id_valid(const uint32_t& id) +bool pws_cancel_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {27, 82, 102, 21, 147}; + static const uint32_t options[] = {35, 95, 122, 14}; for (const auto& o : options) { if (o == id) { return true; @@ -29054,60 +29359,53 @@ bool ng_setup_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ng_setup_request_ies_o::get_crit(const uint32_t& id) +crit_e pws_cancel_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 27: + case 35: return crit_e::reject; - case 82: - return crit_e::ignore; - case 102: + case 95: return crit_e::reject; - case 21: - return crit_e::ignore; - case 147: + case 122: return crit_e::ignore; + case 14: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ng_setup_request_ies_o::value_c ng_setup_request_ies_o::get_value(const uint32_t& id) +pws_cancel_request_ies_o::value_c pws_cancel_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 27: - ret.set(value_c::types::global_ran_node_id); - break; - case 82: - ret.set(value_c::types::ran_node_name); + case 35: + ret.set(value_c::types::msg_id); break; - case 102: - ret.set(value_c::types::supported_ta_list); + case 95: + ret.set(value_c::types::serial_num); break; - case 21: - ret.set(value_c::types::default_paging_drx); + case 122: + ret.set(value_c::types::warning_area_list); break; - case 147: - ret.set(value_c::types::ue_retention_info); + case 14: + ret.set(value_c::types::cancel_all_warning_msgs); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ng_setup_request_ies_o::get_presence(const uint32_t& id) +presence_e pws_cancel_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 27: - return presence_e::mandatory; - case 82: - return presence_e::optional; - case 102: + case 35: return presence_e::mandatory; - case 21: + case 95: return presence_e::mandatory; - case 147: + case 122: + return presence_e::optional; + case 14: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -29116,248 +29414,216 @@ presence_e ng_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -global_ran_node_id_c& ng_setup_request_ies_o::value_c::global_ran_node_id() -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -printable_string<1, 150, true, true>& ng_setup_request_ies_o::value_c::ran_node_name() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -supported_ta_list_l& ng_setup_request_ies_o::value_c::supported_ta_list() -{ - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); -} -paging_drx_e& ng_setup_request_ies_o::value_c::default_paging_drx() -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -ue_retention_info_e& ng_setup_request_ies_o::value_c::ue_retention_info() -{ - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -const global_ran_node_id_c& ng_setup_request_ies_o::value_c::global_ran_node_id() const -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& ng_setup_request_ies_o::value_c::ran_node_name() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const supported_ta_list_l& ng_setup_request_ies_o::value_c::supported_ta_list() const -{ - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); -} -const paging_drx_e& ng_setup_request_ies_o::value_c::default_paging_drx() const -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const ue_retention_info_e& ng_setup_request_ies_o::value_c::ue_retention_info() const -{ - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -void ng_setup_request_ies_o::value_c::destroy_() +void pws_cancel_request_ies_o::value_c::destroy_() { switch (type_) { - case types::global_ran_node_id: - c.destroy(); + case types::msg_id: + c.destroy >(); break; - case types::ran_node_name: - c.destroy >(); + case types::serial_num: + c.destroy >(); break; - case types::supported_ta_list: - c.destroy(); + case types::warning_area_list: + c.destroy(); break; default: break; } } -void ng_setup_request_ies_o::value_c::set(types::options e) +void pws_cancel_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::global_ran_node_id: - c.init(); - break; - case types::ran_node_name: - c.init >(); + case types::msg_id: + c.init >(); break; - case types::supported_ta_list: - c.init(); + case types::serial_num: + c.init >(); break; - case types::default_paging_drx: + case types::warning_area_list: + c.init(); break; - case types::ue_retention_info: + case types::cancel_all_warning_msgs: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); } } -ng_setup_request_ies_o::value_c::value_c(const ng_setup_request_ies_o::value_c& other) +pws_cancel_request_ies_o::value_c::value_c(const pws_cancel_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::global_ran_node_id: - c.init(other.c.get()); - break; - case types::ran_node_name: - c.init(other.c.get >()); + case types::msg_id: + c.init(other.c.get >()); break; - case types::supported_ta_list: - c.init(other.c.get()); + case types::serial_num: + c.init(other.c.get >()); break; - case types::default_paging_drx: - c.init(other.c.get()); + case types::warning_area_list: + c.init(other.c.get()); break; - case types::ue_retention_info: - c.init(other.c.get()); + case types::cancel_all_warning_msgs: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); } } -ng_setup_request_ies_o::value_c& ng_setup_request_ies_o::value_c:: - operator=(const ng_setup_request_ies_o::value_c& other) +pws_cancel_request_ies_o::value_c& +pws_cancel_request_ies_o::value_c::operator=(const pws_cancel_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::global_ran_node_id: - c.set(other.c.get()); - break; - case types::ran_node_name: - c.set(other.c.get >()); + case types::msg_id: + c.set(other.c.get >()); break; - case types::supported_ta_list: - c.set(other.c.get()); + case types::serial_num: + c.set(other.c.get >()); break; - case types::default_paging_drx: - c.set(other.c.get()); + case types::warning_area_list: + c.set(other.c.get()); break; - case types::ue_retention_info: - c.set(other.c.get()); + case types::cancel_all_warning_msgs: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); } return *this; } -void ng_setup_request_ies_o::value_c::to_json(json_writer& j) const +fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +warning_area_list_c& pws_cancel_request_ies_o::value_c::warning_area_list() +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +cancel_all_warning_msgs_e& pws_cancel_request_ies_o::value_c::cancel_all_warning_msgs() +{ + assert_choice_type(types::cancel_all_warning_msgs, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const warning_area_list_c& pws_cancel_request_ies_o::value_c::warning_area_list() const +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +const cancel_all_warning_msgs_e& pws_cancel_request_ies_o::value_c::cancel_all_warning_msgs() const +{ + assert_choice_type(types::cancel_all_warning_msgs, type_, "Value"); + return c.get(); +} +void pws_cancel_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::global_ran_node_id: - j.write_fieldname("GlobalRANNodeID"); - c.get().to_json(j); - break; - case types::ran_node_name: - j.write_str("PrintableString", c.get >().to_string()); + case types::msg_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::supported_ta_list: - j.start_array("SupportedTAList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::serial_num: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::default_paging_drx: - j.write_str("PagingDRX", c.get().to_string()); + case types::warning_area_list: + j.write_fieldname("WarningAreaList"); + c.get().to_json(j); break; - case types::ue_retention_info: - j.write_str("UERetentionInformation", "ues-retained"); + case types::cancel_all_warning_msgs: + j.write_str("CancelAllWarningMessages", "true"); break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ng_setup_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pws_cancel_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::global_ran_node_id: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ran_node_name: - HANDLE_CODE((c.get >().pack(bref))); + case types::msg_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::supported_ta_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::serial_num: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::default_paging_drx: - HANDLE_CODE(c.get().pack(bref)); + case types::warning_area_list: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ue_retention_info: - HANDLE_CODE(c.get().pack(bref)); + case types::cancel_all_warning_msgs: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_cancel_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::global_ran_node_id: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ran_node_name: - HANDLE_CODE((c.get >().unpack(bref))); + case types::msg_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::supported_ta_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::serial_num: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::default_paging_drx: - HANDLE_CODE(c.get().unpack(bref)); + case types::warning_area_list: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_retention_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::cancel_all_warning_msgs: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ng_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ng_setup_request_ies_o::value_c::types_opts::to_string() const +const char* pws_cancel_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "GlobalRANNodeID", "PrintableString", "SupportedTAList", "PagingDRX", "UERetentionInformation"}; - return convert_enum_idx(options, 5, value, "ng_setup_request_ies_o::value_c::types"); + static const char* options[] = {"BIT STRING", "BIT STRING", "WarningAreaList", "CancelAllWarningMessages"}; + return convert_enum_idx(options, 4, value, "pws_cancel_request_ies_o::value_c::types"); } -// NGSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ng_setup_resp_ies_o::idx_to_id(uint32_t idx) +// PWSCancelResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pws_cancel_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {1, 96, 86, 80, 19, 147}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {35, 95, 12, 19}; + return map_enum_number(options, 4, idx, "id"); } -bool ng_setup_resp_ies_o::is_id_valid(const uint32_t& id) +bool pws_cancel_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {1, 96, 86, 80, 19, 147}; + static const uint32_t options[] = {35, 95, 12, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -29365,67 +29631,53 @@ bool ng_setup_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ng_setup_resp_ies_o::get_crit(const uint32_t& id) +crit_e pws_cancel_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 1: + case 35: return crit_e::reject; - case 96: + case 95: return crit_e::reject; - case 86: + case 12: return crit_e::ignore; - case 80: - return crit_e::reject; case 19: return crit_e::ignore; - case 147: - return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ng_setup_resp_ies_o::value_c ng_setup_resp_ies_o::get_value(const uint32_t& id) +pws_cancel_resp_ies_o::value_c pws_cancel_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 1: - ret.set(value_c::types::amf_name); - break; - case 96: - ret.set(value_c::types::served_guami_list); + case 35: + ret.set(value_c::types::msg_id); break; - case 86: - ret.set(value_c::types::relative_amf_capacity); + case 95: + ret.set(value_c::types::serial_num); break; - case 80: - ret.set(value_c::types::plmn_support_list); + case 12: + ret.set(value_c::types::broadcast_cancelled_area_list); break; case 19: ret.set(value_c::types::crit_diagnostics); break; - case 147: - ret.set(value_c::types::ue_retention_info); - break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ng_setup_resp_ies_o::get_presence(const uint32_t& id) +presence_e pws_cancel_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 1: - return presence_e::mandatory; - case 96: - return presence_e::mandatory; - case 86: + case 35: return presence_e::mandatory; - case 80: + case 95: return presence_e::mandatory; - case 19: + case 12: return presence_e::optional; - case 147: + case 19: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -29434,77 +29686,17 @@ presence_e ng_setup_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -printable_string<1, 150, true, true>& ng_setup_resp_ies_o::value_c::amf_name() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -served_guami_list_l& ng_setup_resp_ies_o::value_c::served_guami_list() -{ - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& ng_setup_resp_ies_o::value_c::relative_amf_capacity() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -plmn_support_list_l& ng_setup_resp_ies_o::value_c::plmn_support_list() -{ - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ng_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -ue_retention_info_e& ng_setup_resp_ies_o::value_c::ue_retention_info() -{ - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& ng_setup_resp_ies_o::value_c::amf_name() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const served_guami_list_l& ng_setup_resp_ies_o::value_c::served_guami_list() const -{ - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& ng_setup_resp_ies_o::value_c::relative_amf_capacity() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const plmn_support_list_l& ng_setup_resp_ies_o::value_c::plmn_support_list() const -{ - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ng_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const ue_retention_info_e& ng_setup_resp_ies_o::value_c::ue_retention_info() const -{ - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -void ng_setup_resp_ies_o::value_c::destroy_() +void pws_cancel_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::amf_name: - c.destroy >(); + case types::msg_id: + c.destroy >(); break; - case types::served_guami_list: - c.destroy(); + case types::serial_num: + c.destroy >(); break; - case types::plmn_support_list: - c.destroy(); + case types::broadcast_cancelled_area_list: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -29513,215 +29705,201 @@ void ng_setup_resp_ies_o::value_c::destroy_() break; } } -void ng_setup_resp_ies_o::value_c::set(types::options e) +void pws_cancel_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_name: - c.init >(); - break; - case types::served_guami_list: - c.init(); + case types::msg_id: + c.init >(); break; - case types::relative_amf_capacity: + case types::serial_num: + c.init >(); break; - case types::plmn_support_list: - c.init(); + case types::broadcast_cancelled_area_list: + c.init(); break; case types::crit_diagnostics: c.init(); break; - case types::ue_retention_info: - break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); } } -ng_setup_resp_ies_o::value_c::value_c(const ng_setup_resp_ies_o::value_c& other) +pws_cancel_resp_ies_o::value_c::value_c(const pws_cancel_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_name: - c.init(other.c.get >()); - break; - case types::served_guami_list: - c.init(other.c.get()); + case types::msg_id: + c.init(other.c.get >()); break; - case types::relative_amf_capacity: - c.init(other.c.get()); + case types::serial_num: + c.init(other.c.get >()); break; - case types::plmn_support_list: - c.init(other.c.get()); + case types::broadcast_cancelled_area_list: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); break; - case types::ue_retention_info: - c.init(other.c.get()); - break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); } } -ng_setup_resp_ies_o::value_c& ng_setup_resp_ies_o::value_c::operator=(const ng_setup_resp_ies_o::value_c& other) +pws_cancel_resp_ies_o::value_c& pws_cancel_resp_ies_o::value_c::operator=(const pws_cancel_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_name: - c.set(other.c.get >()); - break; - case types::served_guami_list: - c.set(other.c.get()); + case types::msg_id: + c.set(other.c.get >()); break; - case types::relative_amf_capacity: - c.set(other.c.get()); + case types::serial_num: + c.set(other.c.get >()); break; - case types::plmn_support_list: - c.set(other.c.get()); + case types::broadcast_cancelled_area_list: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); break; - case types::ue_retention_info: - c.set(other.c.get()); - break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); } return *this; } -void ng_setup_resp_ies_o::value_c::to_json(json_writer& j) const +fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +broadcast_cancelled_area_list_c& pws_cancel_resp_ies_o::value_c::broadcast_cancelled_area_list() +{ + assert_choice_type(types::broadcast_cancelled_area_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& pws_cancel_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const broadcast_cancelled_area_list_c& pws_cancel_resp_ies_o::value_c::broadcast_cancelled_area_list() const +{ + assert_choice_type(types::broadcast_cancelled_area_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& pws_cancel_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void pws_cancel_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_name: - j.write_str("PrintableString", c.get >().to_string()); - break; - case types::served_guami_list: - j.start_array("ServedGUAMIList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::msg_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::relative_amf_capacity: - j.write_int("INTEGER (0..255)", c.get()); + case types::serial_num: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::plmn_support_list: - j.start_array("PLMNSupportList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::broadcast_cancelled_area_list: + j.write_fieldname("BroadcastCancelledAreaList"); + c.get().to_json(j); break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; - case types::ue_retention_info: - j.write_str("UERetentionInformation", "ues-retained"); - break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ng_setup_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pws_cancel_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_name: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::served_guami_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::msg_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::relative_amf_capacity: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)255u, false, true)); + case types::serial_num: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::plmn_support_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 12, true)); + case types::broadcast_cancelled_area_list: + HANDLE_CODE(c.get().pack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; - case types::ue_retention_info: - HANDLE_CODE(c.get().pack(bref)); - break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_cancel_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_name: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::served_guami_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::msg_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::relative_amf_capacity: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)255u, false, true)); + case types::serial_num: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::plmn_support_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 12, true)); + case types::broadcast_cancelled_area_list: + HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_retention_info: - HANDLE_CODE(c.get().unpack(bref)); - break; default: - log_invalid_choice_id(type_, "ng_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ng_setup_resp_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"PrintableString", - "ServedGUAMIList", - "INTEGER (0..255)", - "PLMNSupportList", - "CriticalityDiagnostics", - "UERetentionInformation"}; - return convert_enum_idx(options, 6, value, "ng_setup_resp_ies_o::value_c::types"); -} -uint8_t ng_setup_resp_ies_o::value_c::types_opts::to_number() const +const char* pws_cancel_resp_ies_o::value_c::types_opts::to_string() const { - if (value == relative_amf_capacity) { - return 0; - } - invalid_enum_number(value, "ng_setup_resp_ies_o::value_c::types"); - return 0; + static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCancelledAreaList", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 4, value, "pws_cancel_resp_ies_o::value_c::types"); } -// OverloadStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t overload_start_ies_o::idx_to_id(uint32_t idx) +// PWSFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pws_fail_ind_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {2, 9, 49}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {81, 27}; + return map_enum_number(options, 2, idx, "id"); } -bool overload_start_ies_o::is_id_valid(const uint32_t& id) +bool pws_fail_ind_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {2, 9, 49}; + static const uint32_t options[] = {81, 27}; for (const auto& o : options) { if (o == id) { return true; @@ -29729,47 +29907,40 @@ bool overload_start_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e overload_start_ies_o::get_crit(const uint32_t& id) +crit_e pws_fail_ind_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 2: + case 81: + return crit_e::reject; + case 27: return crit_e::reject; - case 9: - return crit_e::ignore; - case 49: - return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -overload_start_ies_o::value_c overload_start_ies_o::get_value(const uint32_t& id) +pws_fail_ind_ies_o::value_c pws_fail_ind_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 2: - ret.set(value_c::types::amf_overload_resp); - break; - case 9: - ret.set(value_c::types::amf_traffic_load_reduction_ind); + case 81: + ret.set(value_c::types::pws_failed_cell_id_list); break; - case 49: - ret.set(value_c::types::overload_start_nssai_list); + case 27: + ret.set(value_c::types::global_ran_node_id); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e overload_start_ies_o::get_presence(const uint32_t& id) +presence_e pws_fail_ind_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 2: - return presence_e::optional; - case 9: - return presence_e::optional; - case 49: - return presence_e::optional; + case 81: + return presence_e::mandatory; + case 27: + return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); } @@ -29777,196 +29948,158 @@ presence_e overload_start_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -overload_resp_c& overload_start_ies_o::value_c::amf_overload_resp() -{ - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); -} -uint8_t& overload_start_ies_o::value_c::amf_traffic_load_reduction_ind() -{ - assert_choice_type("INTEGER (1..99)", type_.to_string(), "Value"); - return c.get(); -} -overload_start_nssai_list_l& overload_start_ies_o::value_c::overload_start_nssai_list() -{ - assert_choice_type("OverloadStartNSSAIList", type_.to_string(), "Value"); - return c.get(); -} -const overload_resp_c& overload_start_ies_o::value_c::amf_overload_resp() const -{ - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); -} -const uint8_t& overload_start_ies_o::value_c::amf_traffic_load_reduction_ind() const -{ - assert_choice_type("INTEGER (1..99)", type_.to_string(), "Value"); - return c.get(); -} -const overload_start_nssai_list_l& overload_start_ies_o::value_c::overload_start_nssai_list() const -{ - assert_choice_type("OverloadStartNSSAIList", type_.to_string(), "Value"); - return c.get(); -} -void overload_start_ies_o::value_c::destroy_() +void pws_fail_ind_ies_o::value_c::destroy_() { switch (type_) { - case types::amf_overload_resp: - c.destroy(); + case types::pws_failed_cell_id_list: + c.destroy(); break; - case types::overload_start_nssai_list: - c.destroy(); + case types::global_ran_node_id: + c.destroy(); break; default: break; } } -void overload_start_ies_o::value_c::set(types::options e) +void pws_fail_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_overload_resp: - c.init(); - break; - case types::amf_traffic_load_reduction_ind: + case types::pws_failed_cell_id_list: + c.init(); break; - case types::overload_start_nssai_list: - c.init(); + case types::global_ran_node_id: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); } } -overload_start_ies_o::value_c::value_c(const overload_start_ies_o::value_c& other) +pws_fail_ind_ies_o::value_c::value_c(const pws_fail_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_overload_resp: - c.init(other.c.get()); - break; - case types::amf_traffic_load_reduction_ind: - c.init(other.c.get()); + case types::pws_failed_cell_id_list: + c.init(other.c.get()); break; - case types::overload_start_nssai_list: - c.init(other.c.get()); + case types::global_ran_node_id: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); } } -overload_start_ies_o::value_c& overload_start_ies_o::value_c::operator=(const overload_start_ies_o::value_c& other) +pws_fail_ind_ies_o::value_c& pws_fail_ind_ies_o::value_c::operator=(const pws_fail_ind_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_overload_resp: - c.set(other.c.get()); - break; - case types::amf_traffic_load_reduction_ind: - c.set(other.c.get()); + case types::pws_failed_cell_id_list: + c.set(other.c.get()); break; - case types::overload_start_nssai_list: - c.set(other.c.get()); + case types::global_ran_node_id: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); } return *this; } -void overload_start_ies_o::value_c::to_json(json_writer& j) const +pws_failed_cell_id_list_c& pws_fail_ind_ies_o::value_c::pws_failed_cell_id_list() +{ + assert_choice_type(types::pws_failed_cell_id_list, type_, "Value"); + return c.get(); +} +global_ran_node_id_c& pws_fail_ind_ies_o::value_c::global_ran_node_id() +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +const pws_failed_cell_id_list_c& pws_fail_ind_ies_o::value_c::pws_failed_cell_id_list() const +{ + assert_choice_type(types::pws_failed_cell_id_list, type_, "Value"); + return c.get(); +} +const global_ran_node_id_c& pws_fail_ind_ies_o::value_c::global_ran_node_id() const +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +void pws_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_overload_resp: - j.write_fieldname("OverloadResponse"); - c.get().to_json(j); - break; - case types::amf_traffic_load_reduction_ind: - j.write_int("INTEGER (1..99)", c.get()); + case types::pws_failed_cell_id_list: + j.write_fieldname("PWSFailedCellIDList"); + c.get().to_json(j); break; - case types::overload_start_nssai_list: - j.start_array("OverloadStartNSSAIList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::global_ran_node_id: + j.write_fieldname("GlobalRANNodeID"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE overload_start_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pws_fail_ind_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_overload_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::amf_traffic_load_reduction_ind: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)1u, (uint8_t)99u, false, true)); + case types::pws_failed_cell_id_list: + HANDLE_CODE(c.get().pack(bref)); break; - case types::overload_start_nssai_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 1024, true)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE overload_start_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_overload_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::amf_traffic_load_reduction_ind: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)1u, (uint8_t)99u, false, true)); + case types::pws_failed_cell_id_list: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::overload_start_nssai_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 1024, true)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "overload_start_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string overload_start_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"OverloadResponse", "INTEGER (1..99)", "OverloadStartNSSAIList"}; - return convert_enum_idx(options, 3, value, "overload_start_ies_o::value_c::types"); -} -uint8_t overload_start_ies_o::value_c::types_opts::to_number() const +const char* pws_fail_ind_ies_o::value_c::types_opts::to_string() const { - if (value == amf_traffic_load_reduction_ind) { - return 1; - } - invalid_enum_number(value, "overload_start_ies_o::value_c::types"); - return 0; + static const char* options[] = {"PWSFailedCellIDList", "GlobalRANNodeID"}; + return convert_enum_idx(options, 2, value, "pws_fail_ind_ies_o::value_c::types"); } -// PDUSessionResourceModifyConfirmIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_modify_confirm_ies_o::idx_to_id(uint32_t idx) +// PWSRestartIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pws_restart_ind_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 62, 131, 19}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {16, 27, 104, 23}; + return map_enum_number(options, 4, idx, "id"); } -bool pdu_session_res_modify_confirm_ies_o::is_id_valid(const uint32_t& id) +bool pws_restart_ind_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 62, 131, 19}; + static const uint32_t options[] = {16, 27, 104, 23}; for (const auto& o : options) { if (o == id) { return true; @@ -29974,60 +30107,53 @@ bool pdu_session_res_modify_confirm_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_modify_confirm_ies_o::get_crit(const uint32_t& id) +crit_e pws_restart_ind_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 62: - return crit_e::ignore; - case 131: - return crit_e::ignore; - case 19: - return crit_e::ignore; + case 16: + return crit_e::reject; + case 27: + return crit_e::reject; + case 104: + return crit_e::reject; + case 23: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_modify_confirm_ies_o::value_c pdu_session_res_modify_confirm_ies_o::get_value(const uint32_t& id) +pws_restart_ind_ies_o::value_c pws_restart_ind_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); + case 16: + ret.set(value_c::types::cell_id_list_for_restart); break; - case 62: - ret.set(value_c::types::pdu_session_res_modify_list_mod_cfm); + case 27: + ret.set(value_c::types::global_ran_node_id); break; - case 131: - ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_cfm); + case 104: + ret.set(value_c::types::tai_list_for_restart); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 23: + ret.set(value_c::types::emergency_area_id_list_for_restart); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_modify_confirm_ies_o::get_presence(const uint32_t& id) +presence_e pws_restart_ind_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: + case 16: return presence_e::mandatory; - case 85: + case 27: return presence_e::mandatory; - case 62: + case 104: return presence_e::mandatory; - case 131: - return presence_e::optional; - case 19: + case 23: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -30036,259 +30162,229 @@ presence_e pdu_session_res_modify_confirm_ies_o::get_presence(const uint32_t& id } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_modify_list_mod_cfm_l& -pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_modify_list_mod_cfm() -{ - assert_choice_type("PDUSessionResourceModifyListModCfm", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_modify_list_mod_cfm_l& -pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_cfm() -{ - assert_choice_type("PDUSessionResourceFailedToModifyListModCfm", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& pdu_session_res_modify_confirm_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_confirm_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_modify_list_mod_cfm_l& -pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_modify_list_mod_cfm() const -{ - assert_choice_type("PDUSessionResourceModifyListModCfm", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_modify_list_mod_cfm_l& -pdu_session_res_modify_confirm_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_cfm() const -{ - assert_choice_type("PDUSessionResourceFailedToModifyListModCfm", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& pdu_session_res_modify_confirm_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_modify_confirm_ies_o::value_c::destroy_() +void pws_restart_ind_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_modify_list_mod_cfm: - c.destroy(); + case types::cell_id_list_for_restart: + c.destroy(); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - c.destroy(); + case types::global_ran_node_id: + c.destroy(); break; - case types::crit_diagnostics: - c.destroy(); + case types::tai_list_for_restart: + c.destroy(); + break; + case types::emergency_area_id_list_for_restart: + c.destroy(); break; default: break; } } -void pdu_session_res_modify_confirm_ies_o::value_c::set(types::options e) +void pws_restart_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: + case types::cell_id_list_for_restart: + c.init(); break; - case types::pdu_session_res_modify_list_mod_cfm: - c.init(); + case types::global_ran_node_id: + c.init(); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - c.init(); + case types::tai_list_for_restart: + c.init(); break; - case types::crit_diagnostics: - c.init(); + case types::emergency_area_id_list_for_restart: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); } } -pdu_session_res_modify_confirm_ies_o::value_c::value_c(const pdu_session_res_modify_confirm_ies_o::value_c& other) +pws_restart_ind_ies_o::value_c::value_c(const pws_restart_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); + case types::cell_id_list_for_restart: + c.init(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_cfm: - c.init(other.c.get()); + case types::global_ran_node_id: + c.init(other.c.get()); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - c.init(other.c.get()); + case types::tai_list_for_restart: + c.init(other.c.get()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::emergency_area_id_list_for_restart: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); } } -pdu_session_res_modify_confirm_ies_o::value_c& pdu_session_res_modify_confirm_ies_o::value_c:: - operator=(const pdu_session_res_modify_confirm_ies_o::value_c& other) +pws_restart_ind_ies_o::value_c& pws_restart_ind_ies_o::value_c::operator=(const pws_restart_ind_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); + case types::cell_id_list_for_restart: + c.set(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_cfm: - c.set(other.c.get()); + case types::global_ran_node_id: + c.set(other.c.get()); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - c.set(other.c.get()); + case types::tai_list_for_restart: + c.set(other.c.get()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::emergency_area_id_list_for_restart: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); } return *this; } -void pdu_session_res_modify_confirm_ies_o::value_c::to_json(json_writer& j) const +cell_id_list_for_restart_c& pws_restart_ind_ies_o::value_c::cell_id_list_for_restart() +{ + assert_choice_type(types::cell_id_list_for_restart, type_, "Value"); + return c.get(); +} +global_ran_node_id_c& pws_restart_ind_ies_o::value_c::global_ran_node_id() +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() +{ + assert_choice_type(types::tai_list_for_restart, type_, "Value"); + return c.get(); +} +emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() +{ + assert_choice_type(types::emergency_area_id_list_for_restart, type_, "Value"); + return c.get(); +} +const cell_id_list_for_restart_c& pws_restart_ind_ies_o::value_c::cell_id_list_for_restart() const +{ + assert_choice_type(types::cell_id_list_for_restart, type_, "Value"); + return c.get(); +} +const global_ran_node_id_c& pws_restart_ind_ies_o::value_c::global_ran_node_id() const +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +const tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() const +{ + assert_choice_type(types::tai_list_for_restart, type_, "Value"); + return c.get(); +} +const emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() const +{ + assert_choice_type(types::emergency_area_id_list_for_restart, type_, "Value"); + return c.get(); +} +void pws_restart_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::cell_id_list_for_restart: + j.write_fieldname("CellIDListForRestart"); + c.get().to_json(j); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::global_ran_node_id: + j.write_fieldname("GlobalRANNodeID"); + c.get().to_json(j); break; - case types::pdu_session_res_modify_list_mod_cfm: - j.start_array("PDUSessionResourceModifyListModCfm"); - for (const auto& e1 : c.get()) { + case types::tai_list_for_restart: + j.start_array("TAIListForRestart"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - j.start_array("PDUSessionResourceFailedToModifyListModCfm"); - for (const auto& e1 : c.get()) { - e1.to_json(j); + case types::emergency_area_id_list_for_restart: + j.start_array("EmergencyAreaIDListForRestart"); + for (const auto& e1 : c.get()) { + j.write_str(e1.to_string()); } j.end_array(); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_confirm_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE pws_restart_ind_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::cell_id_list_for_restart: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_modify_list_mod_cfm: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::tai_list_for_restart: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 2048, true)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::emergency_area_id_list_for_restart: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_confirm_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_restart_ind_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::cell_id_list_for_restart: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_modify_list_mod_cfm: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_failed_to_modify_list_mod_cfm: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::tai_list_for_restart: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 2048, true)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::emergency_area_id_list_for_restart: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_confirm_ies_o::value_c"); + log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_modify_confirm_ies_o::value_c::types_opts::to_string() const +const char* pws_restart_ind_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceModifyListModCfm", - "PDUSessionResourceFailedToModifyListModCfm", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "pdu_session_res_modify_confirm_ies_o::value_c::types"); + static const char* options[] = { + "CellIDListForRestart", "GlobalRANNodeID", "TAIListForRestart", "EmergencyAreaIDListForRestart"}; + return convert_enum_idx(options, 4, value, "pws_restart_ind_ies_o::value_c::types"); } -// PDUSessionResourceModifyIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_modify_ind_ies_o::idx_to_id(uint32_t idx) +// PagingIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t paging_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 63}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {115, 50, 103, 52, 118, 51, 11}; + return map_enum_number(options, 7, idx, "id"); } -bool pdu_session_res_modify_ind_ies_o::is_id_valid(const uint32_t& id) +bool paging_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 63}; + static const uint32_t options[] = {115, 50, 103, 52, 118, 51, 11}; for (const auto& o : options) { if (o == id) { return true; @@ -30296,47 +30392,75 @@ bool pdu_session_res_modify_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_modify_ind_ies_o::get_crit(const uint32_t& id) +crit_e paging_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 63: - return crit_e::reject; + case 115: + return crit_e::ignore; + case 50: + return crit_e::ignore; + case 103: + return crit_e::ignore; + case 52: + return crit_e::ignore; + case 118: + return crit_e::ignore; + case 51: + return crit_e::ignore; + case 11: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_modify_ind_ies_o::value_c pdu_session_res_modify_ind_ies_o::get_value(const uint32_t& id) +paging_ies_o::value_c paging_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); + case 115: + ret.set(value_c::types::ue_paging_id); break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); + case 50: + ret.set(value_c::types::paging_drx); break; - case 63: - ret.set(value_c::types::pdu_session_res_modify_list_mod_ind); + case 103: + ret.set(value_c::types::tai_list_for_paging); + break; + case 52: + ret.set(value_c::types::paging_prio); + break; + case 118: + ret.set(value_c::types::ue_radio_cap_for_paging); + break; + case 51: + ret.set(value_c::types::paging_origin); + break; + case 11: + ret.set(value_c::types::assist_data_for_paging); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_modify_ind_ies_o::get_presence(const uint32_t& id) +presence_e paging_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; - case 85: + case 115: return presence_e::mandatory; - case 63: + case 50: + return presence_e::optional; + case 103: return presence_e::mandatory; + case 52: + return presence_e::optional; + case 118: + return presence_e::optional; + case 51: + return presence_e::optional; + case 11: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -30344,186 +30468,312 @@ presence_e pdu_session_res_modify_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_modify_ind_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_modify_ind_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_modify_list_mod_ind_l& pdu_session_res_modify_ind_ies_o::value_c::pdu_session_res_modify_list_mod_ind() -{ - assert_choice_type("PDUSessionResourceModifyListModInd", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_ind_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_ind_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_modify_list_mod_ind_l& -pdu_session_res_modify_ind_ies_o::value_c::pdu_session_res_modify_list_mod_ind() const -{ - assert_choice_type("PDUSessionResourceModifyListModInd", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_modify_ind_ies_o::value_c::destroy_() +void paging_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_modify_list_mod_ind: - c.destroy(); + case types::ue_paging_id: + c.destroy(); + break; + case types::tai_list_for_paging: + c.destroy(); + break; + case types::ue_radio_cap_for_paging: + c.destroy(); + break; + case types::assist_data_for_paging: + c.destroy(); break; default: break; } } -void pdu_session_res_modify_ind_ies_o::value_c::set(types::options e) +void paging_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: + case types::ue_paging_id: + c.init(); break; - case types::ran_ue_ngap_id: + case types::paging_drx: break; - case types::pdu_session_res_modify_list_mod_ind: - c.init(); + case types::tai_list_for_paging: + c.init(); + break; + case types::paging_prio: + break; + case types::ue_radio_cap_for_paging: + c.init(); + break; + case types::paging_origin: + break; + case types::assist_data_for_paging: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); } } -pdu_session_res_modify_ind_ies_o::value_c::value_c(const pdu_session_res_modify_ind_ies_o::value_c& other) +paging_ies_o::value_c::value_c(const paging_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); + case types::ue_paging_id: + c.init(other.c.get()); break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); + case types::paging_drx: + c.init(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_ind: - c.init(other.c.get()); + case types::tai_list_for_paging: + c.init(other.c.get()); + break; + case types::paging_prio: + c.init(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.init(other.c.get()); + break; + case types::paging_origin: + c.init(other.c.get()); + break; + case types::assist_data_for_paging: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); } } -pdu_session_res_modify_ind_ies_o::value_c& pdu_session_res_modify_ind_ies_o::value_c:: - operator=(const pdu_session_res_modify_ind_ies_o::value_c& other) +paging_ies_o::value_c& paging_ies_o::value_c::operator=(const paging_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); + case types::ue_paging_id: + c.set(other.c.get()); break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); + case types::paging_drx: + c.set(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_ind: - c.set(other.c.get()); + case types::tai_list_for_paging: + c.set(other.c.get()); + break; + case types::paging_prio: + c.set(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.set(other.c.get()); + break; + case types::paging_origin: + c.set(other.c.get()); + break; + case types::assist_data_for_paging: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); } return *this; } -void pdu_session_res_modify_ind_ies_o::value_c::to_json(json_writer& j) const +ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() +{ + assert_choice_type(types::ue_paging_id, type_, "Value"); + return c.get(); +} +paging_drx_e& paging_ies_o::value_c::paging_drx() +{ + assert_choice_type(types::paging_drx, type_, "Value"); + return c.get(); +} +tai_list_for_paging_l& paging_ies_o::value_c::tai_list_for_paging() +{ + assert_choice_type(types::tai_list_for_paging, type_, "Value"); + return c.get(); +} +paging_prio_e& paging_ies_o::value_c::paging_prio() +{ + assert_choice_type(types::paging_prio, type_, "Value"); + return c.get(); +} +ue_radio_cap_for_paging_s& paging_ies_o::value_c::ue_radio_cap_for_paging() +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +paging_origin_e& paging_ies_o::value_c::paging_origin() +{ + assert_choice_type(types::paging_origin, type_, "Value"); + return c.get(); +} +assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() +{ + assert_choice_type(types::assist_data_for_paging, type_, "Value"); + return c.get(); +} +const ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() const +{ + assert_choice_type(types::ue_paging_id, type_, "Value"); + return c.get(); +} +const paging_drx_e& paging_ies_o::value_c::paging_drx() const +{ + assert_choice_type(types::paging_drx, type_, "Value"); + return c.get(); +} +const tai_list_for_paging_l& paging_ies_o::value_c::tai_list_for_paging() const +{ + assert_choice_type(types::tai_list_for_paging, type_, "Value"); + return c.get(); +} +const paging_prio_e& paging_ies_o::value_c::paging_prio() const +{ + assert_choice_type(types::paging_prio, type_, "Value"); + return c.get(); +} +const ue_radio_cap_for_paging_s& paging_ies_o::value_c::ue_radio_cap_for_paging() const +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +const paging_origin_e& paging_ies_o::value_c::paging_origin() const +{ + assert_choice_type(types::paging_origin, type_, "Value"); + return c.get(); +} +const assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() const +{ + assert_choice_type(types::assist_data_for_paging, type_, "Value"); + return c.get(); +} +void paging_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::ue_paging_id: + j.write_fieldname("UEPagingIdentity"); + c.get().to_json(j); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::paging_drx: + j.write_str("PagingDRX", c.get().to_string()); break; - case types::pdu_session_res_modify_list_mod_ind: - j.start_array("PDUSessionResourceModifyListModInd"); - for (const auto& e1 : c.get()) { + case types::tai_list_for_paging: + j.start_array("TAIListForPaging"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; + case types::paging_prio: + j.write_str("PagingPriority", c.get().to_string()); + break; + case types::ue_radio_cap_for_paging: + j.write_fieldname("UERadioCapabilityForPaging"); + c.get().to_json(j); + break; + case types::paging_origin: + j.write_str("PagingOrigin", "non-3gpp"); + break; + case types::assist_data_for_paging: + j.write_fieldname("AssistanceDataForPaging"); + c.get().to_json(j); + break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_ind_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE paging_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + case types::ue_paging_id: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::paging_drx: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_modify_list_mod_ind: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::tai_list_for_paging: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16, true)); + break; + case types::paging_prio: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::paging_origin: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::assist_data_for_paging: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE paging_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + case types::ue_paging_id: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::paging_drx: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_modify_list_mod_ind: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::tai_list_for_paging: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16, true)); + break; + case types::paging_prio: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::paging_origin: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::assist_data_for_paging: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "paging_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_modify_ind_ies_o::value_c::types_opts::to_string() const +const char* paging_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "PDUSessionResourceModifyListModInd"}; - return convert_enum_idx(options, 3, value, "pdu_session_res_modify_ind_ies_o::value_c::types"); + static const char* options[] = {"UEPagingIdentity", + "PagingDRX", + "TAIListForPaging", + "PagingPriority", + "UERadioCapabilityForPaging", + "PagingOrigin", + "AssistanceDataForPaging"}; + return convert_enum_idx(options, 7, value, "paging_ies_o::value_c::types"); } -// PDUSessionResourceModifyRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_modify_request_ies_o::idx_to_id(uint32_t idx) +// PathSwitchRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t path_switch_request_ack_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 83, 64}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {10, 85, 119, 93, 41, 77, 68, 0, 18, 91, 19, 146}; + return map_enum_number(options, 12, idx, "id"); } -bool pdu_session_res_modify_request_ies_o::is_id_valid(const uint32_t& id) +bool path_switch_request_ack_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 83, 64}; + static const uint32_t options[] = {10, 85, 119, 93, 41, 77, 68, 0, 18, 91, 19, 146}; for (const auto& o : options) { if (o == id) { return true; @@ -30531,23 +30781,39 @@ bool pdu_session_res_modify_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_modify_request_ies_o::get_crit(const uint32_t& id) +crit_e path_switch_request_ack_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: - return crit_e::reject; + return crit_e::ignore; case 85: + return crit_e::ignore; + case 119: return crit_e::reject; - case 83: + case 93: + return crit_e::reject; + case 41: + return crit_e::reject; + case 77: return crit_e::ignore; - case 64: + case 68: + return crit_e::ignore; + case 0: return crit_e::reject; + case 18: + return crit_e::ignore; + case 91: + return crit_e::ignore; + case 19: + return crit_e::ignore; + case 146: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_modify_request_ies_o::value_c pdu_session_res_modify_request_ies_o::get_value(const uint32_t& id) +path_switch_request_ack_ies_o::value_c path_switch_request_ack_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -30557,28 +30823,68 @@ pdu_session_res_modify_request_ies_o::value_c pdu_session_res_modify_request_ies case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 83: - ret.set(value_c::types::ran_paging_prio); + case 119: + ret.set(value_c::types::ue_security_cap); break; - case 64: - ret.set(value_c::types::pdu_session_res_modify_list_mod_req); + case 93: + ret.set(value_c::types::security_context); + break; + case 41: + ret.set(value_c::types::new_security_context_ind); + break; + case 77: + ret.set(value_c::types::pdu_session_res_switched_list); + break; + case 68: + ret.set(value_c::types::pdu_session_res_released_list_ps_ack); + break; + case 0: + ret.set(value_c::types::allowed_nssai); + break; + case 18: + ret.set(value_c::types::core_network_assist_info); + break; + case 91: + ret.set(value_c::types::rrc_inactive_transition_report_request); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + case 146: + ret.set(value_c::types::redirection_voice_fallback); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_modify_request_ies_o::get_presence(const uint32_t& id) +presence_e path_switch_request_ack_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 83: + case 119: return presence_e::optional; - case 64: + case 93: + return presence_e::mandatory; + case 41: + return presence_e::optional; + case 77: + return presence_e::mandatory; + case 68: + return presence_e::optional; + case 0: return presence_e::mandatory; + case 18: + return presence_e::optional; + case 91: + return presence_e::optional; + case 19: + return presence_e::optional; + case 146: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -30586,59 +30892,35 @@ presence_e pdu_session_res_modify_request_ies_o::get_presence(const uint32_t& id } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_modify_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_modify_request_ies_o::value_c::ran_ue_ngap_id() +void path_switch_request_ack_ies_o::value_c::destroy_() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + switch (type_) { + case types::ue_security_cap: + c.destroy(); + break; + case types::security_context: + c.destroy(); + break; + case types::pdu_session_res_switched_list: + c.destroy(); + break; + case types::pdu_session_res_released_list_ps_ack: + c.destroy(); + break; + case types::allowed_nssai: + c.destroy(); + break; + case types::core_network_assist_info: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + default: + break; + } } -uint16_t& pdu_session_res_modify_request_ies_o::value_c::ran_paging_prio() -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_modify_list_mod_req_l& -pdu_session_res_modify_request_ies_o::value_c::pdu_session_res_modify_list_mod_req() -{ - assert_choice_type("PDUSessionResourceModifyListModReq", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& pdu_session_res_modify_request_ies_o::value_c::ran_paging_prio() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_modify_list_mod_req_l& -pdu_session_res_modify_request_ies_o::value_c::pdu_session_res_modify_list_mod_req() const -{ - assert_choice_type("PDUSessionResourceModifyListModReq", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_modify_request_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::pdu_session_res_modify_list_mod_req: - c.destroy(); - break; - default: - break; - } -} -void pdu_session_res_modify_request_ies_o::value_c::set(types::options e) +void path_switch_request_ack_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -30647,18 +30929,40 @@ void pdu_session_res_modify_request_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::ran_paging_prio: + case types::ue_security_cap: + c.init(); break; - case types::pdu_session_res_modify_list_mod_req: - c.init(); + case types::security_context: + c.init(); + break; + case types::new_security_context_ind: + break; + case types::pdu_session_res_switched_list: + c.init(); + break; + case types::pdu_session_res_released_list_ps_ack: + c.init(); + break; + case types::allowed_nssai: + c.init(); + break; + case types::core_network_assist_info: + c.init(); + break; + case types::rrc_inactive_transition_report_request: + break; + case types::crit_diagnostics: + c.init(); + break; + case types::redirection_voice_fallback: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); } } -pdu_session_res_modify_request_ies_o::value_c::value_c(const pdu_session_res_modify_request_ies_o::value_c& other) +path_switch_request_ack_ies_o::value_c::value_c(const path_switch_request_ack_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -30668,20 +30972,44 @@ pdu_session_res_modify_request_ies_o::value_c::value_c(const pdu_session_res_mod case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ran_paging_prio: - c.init(other.c.get()); + case types::ue_security_cap: + c.init(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_req: - c.init(other.c.get()); + case types::security_context: + c.init(other.c.get()); + break; + case types::new_security_context_ind: + c.init(other.c.get()); + break; + case types::pdu_session_res_switched_list: + c.init(other.c.get()); + break; + case types::pdu_session_res_released_list_ps_ack: + c.init(other.c.get()); + break; + case types::allowed_nssai: + c.init(other.c.get()); + break; + case types::core_network_assist_info: + c.init(other.c.get()); + break; + case types::rrc_inactive_transition_report_request: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::redirection_voice_fallback: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); } } -pdu_session_res_modify_request_ies_o::value_c& pdu_session_res_modify_request_ies_o::value_c:: - operator=(const pdu_session_res_modify_request_ies_o::value_c& other) +path_switch_request_ack_ies_o::value_c& +path_switch_request_ack_ies_o::value_c::operator=(const path_switch_request_ack_ies_o::value_c& other) { if (this == &other) { return *this; @@ -30694,21 +31022,168 @@ pdu_session_res_modify_request_ies_o::value_c& pdu_session_res_modify_request_ie case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::ran_paging_prio: - c.set(other.c.get()); + case types::ue_security_cap: + c.set(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_req: - c.set(other.c.get()); + case types::security_context: + c.set(other.c.get()); + break; + case types::new_security_context_ind: + c.set(other.c.get()); + break; + case types::pdu_session_res_switched_list: + c.set(other.c.get()); + break; + case types::pdu_session_res_released_list_ps_ack: + c.set(other.c.get()); + break; + case types::allowed_nssai: + c.set(other.c.get()); + break; + case types::core_network_assist_info: + c.set(other.c.get()); + break; + case types::rrc_inactive_transition_report_request: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::redirection_voice_fallback: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); } return *this; } -void pdu_session_res_modify_request_ies_o::value_c::to_json(json_writer& j) const +uint64_t& path_switch_request_ack_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& path_switch_request_ack_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +ue_security_cap_s& path_switch_request_ack_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +security_context_s& path_switch_request_ack_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +new_security_context_ind_e& path_switch_request_ack_ies_o::value_c::new_security_context_ind() +{ + assert_choice_type(types::new_security_context_ind, type_, "Value"); + return c.get(); +} +pdu_session_res_switched_list_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_switched_list() +{ + assert_choice_type(types::pdu_session_res_switched_list, type_, "Value"); + return c.get(); +} +pdu_session_res_released_list_ps_ack_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_released_list_ps_ack() +{ + assert_choice_type(types::pdu_session_res_released_list_ps_ack, type_, "Value"); + return c.get(); +} +allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +core_network_assist_info_s& path_switch_request_ack_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +rrc_inactive_transition_report_request_e& +path_switch_request_ack_ies_o::value_c::rrc_inactive_transition_report_request() +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +redirection_voice_fallback_e& path_switch_request_ack_ies_o::value_c::redirection_voice_fallback() +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_ack_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_ack_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& path_switch_request_ack_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const security_context_s& path_switch_request_ack_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const new_security_context_ind_e& path_switch_request_ack_ies_o::value_c::new_security_context_ind() const +{ + assert_choice_type(types::new_security_context_ind, type_, "Value"); + return c.get(); +} +const pdu_session_res_switched_list_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_switched_list() const +{ + assert_choice_type(types::pdu_session_res_switched_list, type_, "Value"); + return c.get(); +} +const pdu_session_res_released_list_ps_ack_l& +path_switch_request_ack_ies_o::value_c::pdu_session_res_released_list_ps_ack() const +{ + assert_choice_type(types::pdu_session_res_released_list_ps_ack, type_, "Value"); + return c.get(); +} +const allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +const core_network_assist_info_s& path_switch_request_ack_ies_o::value_c::core_network_assist_info() const +{ + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); +} +const rrc_inactive_transition_report_request_e& +path_switch_request_ack_ies_o::value_c::rrc_inactive_transition_report_request() const +{ + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const redirection_voice_fallback_e& path_switch_request_ack_ies_o::value_c::redirection_voice_fallback() const +{ + assert_choice_type(types::redirection_voice_fallback, type_, "Value"); + return c.get(); +} +void path_switch_request_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -30718,22 +31193,58 @@ void pdu_session_res_modify_request_ies_o::value_c::to_json(json_writer& j) cons case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::ran_paging_prio: - j.write_int("INTEGER (1..256)", c.get()); + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); + c.get().to_json(j); break; - case types::pdu_session_res_modify_list_mod_req: - j.start_array("PDUSessionResourceModifyListModReq"); - for (const auto& e1 : c.get()) { + case types::security_context: + j.write_fieldname("SecurityContext"); + c.get().to_json(j); + break; + case types::new_security_context_ind: + j.write_str("NewSecurityContextInd", "true"); + break; + case types::pdu_session_res_switched_list: + j.start_array("PDUSessionResourceSwitchedList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::pdu_session_res_released_list_ps_ack: + j.start_array("PDUSessionResourceReleasedListPSAck"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::allowed_nssai: + j.start_array("AllowedNSSAI"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; + case types::core_network_assist_info: + j.write_fieldname("CoreNetworkAssistanceInformation"); + c.get().to_json(j); + break; + case types::rrc_inactive_transition_report_request: + j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + case types::redirection_voice_fallback: + j.write_str("RedirectionVoiceFallback", c.get().to_string()); + break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_ack_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -30743,19 +31254,43 @@ SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::pack(bit_ref& bref) c case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); + case types::ue_security_cap: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_modify_list_mod_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::security_context: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::new_security_context_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_switched_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_released_list_ps_ack: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::allowed_nssai: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); + break; + case types::core_network_assist_info: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ack_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -30765,37 +31300,69 @@ SRSASN_CODE pdu_session_res_modify_request_ies_o::value_c::unpack(cbit_ref& bref case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + case types::ue_security_cap: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_modify_list_mod_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::security_context: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::new_security_context_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_switched_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_released_list_ps_ack: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::allowed_nssai: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); + break; + case types::core_network_assist_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::redirection_voice_fallback: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_request_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_modify_request_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "INTEGER (1..256)", - "PDUSessionResourceModifyListModReq"}; - return convert_enum_idx(options, 4, value, "pdu_session_res_modify_request_ies_o::value_c::types"); + "UESecurityCapabilities", + "SecurityContext", + "NewSecurityContextInd", + "PDUSessionResourceSwitchedList", + "PDUSessionResourceReleasedListPSAck", + "AllowedNSSAI", + "CoreNetworkAssistanceInformation", + "RRCInactiveTransitionReportRequest", + "CriticalityDiagnostics", + "RedirectionVoiceFallback"}; + return convert_enum_idx(options, 12, value, "path_switch_request_ack_ies_o::value_c::types"); } -// PDUSessionResourceModifyResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_modify_resp_ies_o::idx_to_id(uint32_t idx) +// PathSwitchRequestFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t path_switch_request_fail_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 65, 54, 121, 19}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {10, 85, 69, 19}; + return map_enum_number(options, 4, idx, "id"); } -bool pdu_session_res_modify_resp_ies_o::is_id_valid(const uint32_t& id) +bool path_switch_request_fail_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 65, 54, 121, 19}; + static const uint32_t options[] = {10, 85, 69, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -30803,18 +31370,14 @@ bool pdu_session_res_modify_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_modify_resp_ies_o::get_crit(const uint32_t& id) +crit_e path_switch_request_fail_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::ignore; case 85: return crit_e::ignore; - case 65: - return crit_e::ignore; - case 54: - return crit_e::ignore; - case 121: + case 69: return crit_e::ignore; case 19: return crit_e::ignore; @@ -30823,7 +31386,7 @@ crit_e pdu_session_res_modify_resp_ies_o::get_crit(const uint32_t& id) } return {}; } -pdu_session_res_modify_resp_ies_o::value_c pdu_session_res_modify_resp_ies_o::get_value(const uint32_t& id) +path_switch_request_fail_ies_o::value_c path_switch_request_fail_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -30833,14 +31396,8 @@ pdu_session_res_modify_resp_ies_o::value_c pdu_session_res_modify_resp_ies_o::ge case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 65: - ret.set(value_c::types::pdu_session_res_modify_list_mod_res); - break; - case 54: - ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_res); - break; - case 121: - ret.set(value_c::types::user_location_info); + case 69: + ret.set(value_c::types::pdu_session_res_released_list_ps_fail); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -30850,19 +31407,15 @@ pdu_session_res_modify_resp_ies_o::value_c pdu_session_res_modify_resp_ies_o::ge } return ret; } -presence_e pdu_session_res_modify_resp_ies_o::get_presence(const uint32_t& id) +presence_e path_switch_request_fail_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 65: - return presence_e::optional; - case 54: - return presence_e::optional; - case 121: - return presence_e::optional; + case 69: + return presence_e::mandatory; case 19: return presence_e::optional; default: @@ -30872,80 +31425,11 @@ presence_e pdu_session_res_modify_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_modify_resp_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_modify_resp_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_modify_list_mod_res_l& pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_modify_list_mod_res() -{ - assert_choice_type("PDUSessionResourceModifyListModRes", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_modify_list_mod_res_l& -pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_res() -{ - assert_choice_type("PDUSessionResourceFailedToModifyListModRes", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& pdu_session_res_modify_resp_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& pdu_session_res_modify_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_resp_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_modify_resp_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_modify_list_mod_res_l& -pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_modify_list_mod_res() const -{ - assert_choice_type("PDUSessionResourceModifyListModRes", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_modify_list_mod_res_l& -pdu_session_res_modify_resp_ies_o::value_c::pdu_session_res_failed_to_modify_list_mod_res() const -{ - assert_choice_type("PDUSessionResourceFailedToModifyListModRes", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& pdu_session_res_modify_resp_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& pdu_session_res_modify_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_modify_resp_ies_o::value_c::destroy_() +void path_switch_request_fail_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_modify_list_mod_res: - c.destroy(); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - c.destroy(); - break; - case types::user_location_info: - c.destroy(); + case types::pdu_session_res_released_list_ps_fail: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -30954,7 +31438,7 @@ void pdu_session_res_modify_resp_ies_o::value_c::destroy_() break; } } -void pdu_session_res_modify_resp_ies_o::value_c::set(types::options e) +void path_switch_request_fail_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -30963,14 +31447,8 @@ void pdu_session_res_modify_resp_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_modify_list_mod_res: - c.init(); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - c.init(); - break; - case types::user_location_info: - c.init(); + case types::pdu_session_res_released_list_ps_fail: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -30978,10 +31456,10 @@ void pdu_session_res_modify_resp_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); } } -pdu_session_res_modify_resp_ies_o::value_c::value_c(const pdu_session_res_modify_resp_ies_o::value_c& other) +path_switch_request_fail_ies_o::value_c::value_c(const path_switch_request_fail_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -30991,14 +31469,8 @@ pdu_session_res_modify_resp_ies_o::value_c::value_c(const pdu_session_res_modify case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_res: - c.init(other.c.get()); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - c.init(other.c.get()); - break; - case types::user_location_info: - c.init(other.c.get()); + case types::pdu_session_res_released_list_ps_fail: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -31006,11 +31478,11 @@ pdu_session_res_modify_resp_ies_o::value_c::value_c(const pdu_session_res_modify case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); } } -pdu_session_res_modify_resp_ies_o::value_c& pdu_session_res_modify_resp_ies_o::value_c:: - operator=(const pdu_session_res_modify_resp_ies_o::value_c& other) +path_switch_request_fail_ies_o::value_c& +path_switch_request_fail_ies_o::value_c::operator=(const path_switch_request_fail_ies_o::value_c& other) { if (this == &other) { return *this; @@ -31023,27 +31495,63 @@ pdu_session_res_modify_resp_ies_o::value_c& pdu_session_res_modify_resp_ies_o::v case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_modify_list_mod_res: - c.set(other.c.get()); + case types::pdu_session_res_released_list_ps_fail: + c.set(other.c.get()); break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - c.set(other.c.get()); - break; - case types::user_location_info: - c.set(other.c.get()); - break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); } return *this; } -void pdu_session_res_modify_resp_ies_o::value_c::to_json(json_writer& j) const +uint64_t& path_switch_request_fail_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& path_switch_request_fail_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_released_list_ps_fail_l& +path_switch_request_fail_ies_o::value_c::pdu_session_res_released_list_ps_fail() +{ + assert_choice_type(types::pdu_session_res_released_list_ps_fail, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_fail_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_fail_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_released_list_ps_fail_l& +path_switch_request_fail_ies_o::value_c::pdu_session_res_released_list_ps_fail() const +{ + assert_choice_type(types::pdu_session_res_released_list_ps_fail, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void path_switch_request_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -31053,34 +31561,23 @@ void pdu_session_res_modify_resp_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::pdu_session_res_modify_list_mod_res: - j.start_array("PDUSessionResourceModifyListModRes"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - j.start_array("PDUSessionResourceFailedToModifyListModRes"); - for (const auto& e1 : c.get()) { + case types::pdu_session_res_released_list_ps_fail: + j.start_array("PDUSessionResourceReleasedListPSFail"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); - break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_fail_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -31090,25 +31587,19 @@ SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::pack(bit_ref& bref) cons case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_modify_list_mod_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_released_list_ps_fail: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_fail_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -31118,45 +31609,37 @@ SRSASN_CODE pdu_session_res_modify_resp_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_modify_list_mod_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::pdu_session_res_failed_to_modify_list_mod_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_released_list_ps_fail: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_modify_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_modify_resp_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "PDUSessionResourceModifyListModRes", - "PDUSessionResourceFailedToModifyListModRes", - "UserLocationInformation", + "PDUSessionResourceReleasedListPSFail", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 6, value, "pdu_session_res_modify_resp_ies_o::value_c::types"); + return convert_enum_idx(options, 4, value, "path_switch_request_fail_ies_o::value_c::types"); } -// PDUSessionResourceNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_notify_ies_o::idx_to_id(uint32_t idx) +// PathSwitchRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t path_switch_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 66, 67, 121}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {85, 100, 121, 119, 76, 57}; + return map_enum_number(options, 6, idx, "id"); } -bool pdu_session_res_notify_ies_o::is_id_valid(const uint32_t& id) +bool path_switch_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 66, 67, 121}; + static const uint32_t options[] = {85, 100, 121, 119, 76, 57}; for (const auto& o : options) { if (o == id) { return true; @@ -31164,60 +31647,67 @@ bool pdu_session_res_notify_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_notify_ies_o::get_crit(const uint32_t& id) +crit_e path_switch_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::reject; case 85: return crit_e::reject; - case 66: + case 100: return crit_e::reject; - case 67: - return crit_e::ignore; case 121: return crit_e::ignore; + case 119: + return crit_e::ignore; + case 76: + return crit_e::reject; + case 57: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_notify_ies_o::value_c pdu_session_res_notify_ies_o::get_value(const uint32_t& id) +path_switch_request_ies_o::value_c path_switch_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 66: - ret.set(value_c::types::pdu_session_res_notify_list); - break; - case 67: - ret.set(value_c::types::pdu_session_res_released_list_not); + case 100: + ret.set(value_c::types::source_amf_ue_ngap_id); break; case 121: ret.set(value_c::types::user_location_info); break; + case 119: + ret.set(value_c::types::ue_security_cap); + break; + case 76: + ret.set(value_c::types::pdu_session_res_to_be_switched_dl_list); + break; + case 57: + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ps_req); + break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_notify_ies_o::get_presence(const uint32_t& id) +presence_e path_switch_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; case 85: return presence_e::mandatory; - case 66: - return presence_e::optional; - case 67: - return presence_e::optional; + case 100: + return presence_e::mandatory; case 121: + return presence_e::mandatory; + case 119: + return presence_e::mandatory; + case 76: + return presence_e::mandatory; + case 57: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -31226,567 +31716,611 @@ presence_e pdu_session_res_notify_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_notify_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_notify_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_notify_list_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_notify_list() -{ - assert_choice_type("PDUSessionResourceNotifyList", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_released_list_not_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_released_list_not() -{ - assert_choice_type("PDUSessionResourceReleasedListNot", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& pdu_session_res_notify_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_notify_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_notify_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_notify_list_l& pdu_session_res_notify_ies_o::value_c::pdu_session_res_notify_list() const -{ - assert_choice_type("PDUSessionResourceNotifyList", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_released_list_not_l& -pdu_session_res_notify_ies_o::value_c::pdu_session_res_released_list_not() const -{ - assert_choice_type("PDUSessionResourceReleasedListNot", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& pdu_session_res_notify_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_notify_ies_o::value_c::destroy_() +void path_switch_request_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_notify_list: - c.destroy(); - break; - case types::pdu_session_res_released_list_not: - c.destroy(); - break; case types::user_location_info: c.destroy(); break; + case types::ue_security_cap: + c.destroy(); + break; + case types::pdu_session_res_to_be_switched_dl_list: + c.destroy(); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + c.destroy(); + break; default: break; } } -void pdu_session_res_notify_ies_o::value_c::set(types::options e) +void path_switch_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_notify_list: - c.init(); - break; - case types::pdu_session_res_released_list_not: - c.init(); + case types::source_amf_ue_ngap_id: break; case types::user_location_info: c.init(); break; + case types::ue_security_cap: + c.init(); + break; + case types::pdu_session_res_to_be_switched_dl_list: + c.init(); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + c.init(); + break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); } } -pdu_session_res_notify_ies_o::value_c::value_c(const pdu_session_res_notify_ies_o::value_c& other) +path_switch_request_ies_o::value_c::value_c(const path_switch_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_notify_list: - c.init(other.c.get()); - break; - case types::pdu_session_res_released_list_not: - c.init(other.c.get()); + case types::source_amf_ue_ngap_id: + c.init(other.c.get()); break; case types::user_location_info: c.init(other.c.get()); break; + case types::ue_security_cap: + c.init(other.c.get()); + break; + case types::pdu_session_res_to_be_switched_dl_list: + c.init(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + c.init(other.c.get()); + break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); } } -pdu_session_res_notify_ies_o::value_c& pdu_session_res_notify_ies_o::value_c:: - operator=(const pdu_session_res_notify_ies_o::value_c& other) +path_switch_request_ies_o::value_c& +path_switch_request_ies_o::value_c::operator=(const path_switch_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_notify_list: - c.set(other.c.get()); - break; - case types::pdu_session_res_released_list_not: - c.set(other.c.get()); + case types::source_amf_ue_ngap_id: + c.set(other.c.get()); break; case types::user_location_info: c.set(other.c.get()); break; + case types::ue_security_cap: + c.set(other.c.get()); + break; + case types::pdu_session_res_to_be_switched_dl_list: + c.set(other.c.get()); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + c.set(other.c.get()); + break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); } return *this; } -void pdu_session_res_notify_ies_o::value_c::to_json(json_writer& j) const +uint64_t& path_switch_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& path_switch_request_ies_o::value_c::source_amf_ue_ngap_id() +{ + assert_choice_type(types::source_amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +user_location_info_c& path_switch_request_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +pdu_session_res_to_be_switched_dl_list_l& path_switch_request_ies_o::value_c::pdu_session_res_to_be_switched_dl_list() +{ + assert_choice_type(types::pdu_session_res_to_be_switched_dl_list, type_, "Value"); + return c.get(); +} +pdu_session_res_failed_to_setup_list_ps_req_l& +path_switch_request_ies_o::value_c::pdu_session_res_failed_to_setup_list_ps_req() +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_ps_req, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_ies_o::value_c::source_amf_ue_ngap_id() const +{ + assert_choice_type(types::source_amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const user_location_info_c& path_switch_request_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const pdu_session_res_to_be_switched_dl_list_l& +path_switch_request_ies_o::value_c::pdu_session_res_to_be_switched_dl_list() const +{ + assert_choice_type(types::pdu_session_res_to_be_switched_dl_list, type_, "Value"); + return c.get(); +} +const pdu_session_res_failed_to_setup_list_ps_req_l& +path_switch_request_ies_o::value_c::pdu_session_res_failed_to_setup_list_ps_req() const +{ + assert_choice_type(types::pdu_session_res_failed_to_setup_list_ps_req, type_, "Value"); + return c.get(); +} +void path_switch_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::pdu_session_res_notify_list: - j.start_array("PDUSessionResourceNotifyList"); - for (const auto& e1 : c.get()) { + case types::source_amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); + break; + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); + c.get().to_json(j); + break; + case types::pdu_session_res_to_be_switched_dl_list: + j.start_array("PDUSessionResourceToBeSwitchedDLList"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::pdu_session_res_released_list_not: - j.start_array("PDUSessionResourceReleasedListNot"); - for (const auto& e1 : c.get()) { + case types::pdu_session_res_failed_to_setup_list_ps_req: + j.start_array("PDUSessionResourceFailedToSetupListPSReq"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); - break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_notify_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_notify_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::pdu_session_res_released_list_not: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::source_amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; case types::user_location_info: HANDLE_CODE(c.get().pack(bref)); break; + case types::ue_security_cap: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_to_be_switched_dl_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_notify_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); - break; - case types::pdu_session_res_released_list_not: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::source_amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; case types::user_location_info: HANDLE_CODE(c.get().unpack(bref)); break; + case types::ue_security_cap: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_to_be_switched_dl_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; + case types::pdu_session_res_failed_to_setup_list_ps_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + break; default: - log_invalid_choice_id(type_, "pdu_session_res_notify_ies_o::value_c"); + log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_notify_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceNotifyList", - "PDUSessionResourceReleasedListNot", - "UserLocationInformation"}; - return convert_enum_idx(options, 5, value, "pdu_session_res_notify_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..4294967295)", + "INTEGER (0..1099511627775)", + "UserLocationInformation", + "UESecurityCapabilities", + "PDUSessionResourceToBeSwitchedDLList", + "PDUSessionResourceFailedToSetupListPSReq"}; + return convert_enum_idx(options, 6, value, "path_switch_request_ies_o::value_c::types"); } -// PDUSessionResourceReleaseCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_release_cmd_ies_o::idx_to_id(uint32_t idx) +// Value ::= OPEN TYPE +void ngap_private_ies_empty_o::value_c::to_json(json_writer& j) const { - static const uint32_t options[] = {10, 85, 83, 38, 79}; - return map_enum_number(options, 5, idx, "id"); + j.start_obj(); + j.end_obj(); } -bool pdu_session_res_release_cmd_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE ngap_private_ies_empty_o::value_c::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85, 83, 38, 79}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; + varlength_field_pack_guard varlen_scope(bref, true); + return SRSASN_SUCCESS; } -crit_e pdu_session_res_release_cmd_ies_o::get_crit(const uint32_t& id) +SRSASN_CODE ngap_private_ies_empty_o::value_c::unpack(cbit_ref& bref) { - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 83: - return crit_e::ignore; - case 38: - return crit_e::ignore; - case 79: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + varlength_field_unpack_guard varlen_scope(bref, true); + return SRSASN_SUCCESS; +} + +const char* ngap_private_ies_empty_o::value_c::types_opts::to_string() const +{ + static const char* options[] = {}; + return convert_enum_idx(options, 0, value, "ngap_private_ies_empty_o::value_c::types"); +} + +// RANConfigurationUpdateAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ran_cfg_upd_ack_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {19}; + return map_enum_number(options, 1, idx, "id"); +} +bool ran_cfg_upd_ack_ies_o::is_id_valid(const uint32_t& id) +{ + return 19 == id; +} +crit_e ran_cfg_upd_ack_ies_o::get_crit(const uint32_t& id) +{ + if (id == 19) { + return crit_e::ignore; } + asn1::log_error("The id=%d is not recognized", id); return {}; } -pdu_session_res_release_cmd_ies_o::value_c pdu_session_res_release_cmd_ies_o::get_value(const uint32_t& id) +ran_cfg_upd_ack_ies_o::value_c ran_cfg_upd_ack_ies_o::get_value(const uint32_t& id) { value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 83: - ret.set(value_c::types::ran_paging_prio); - break; - case 38: - ret.set(value_c::types::nas_pdu); - break; - case 79: - ret.set(value_c::types::pdu_session_res_to_release_list_rel_cmd); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + if (id != 19) { + asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_release_cmd_ies_o::get_presence(const uint32_t& id) +presence_e ran_cfg_upd_ack_ies_o::get_presence(const uint32_t& id) { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 83: - return presence_e::optional; - case 38: - return presence_e::optional; - case 79: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); + if (id == 19) { + return presence_e::optional; } + asn1::log_error("The id=%d is not recognized", id); return {}; } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_release_cmd_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_release_cmd_ies_o::value_c::ran_ue_ngap_id() +void ran_cfg_upd_ack_ies_o::value_c::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("CriticalityDiagnostics"); + c.to_json(j); + j.end_obj(); } -uint16_t& pdu_session_res_release_cmd_ies_o::value_c::ran_paging_prio() +SRSASN_CODE ran_cfg_upd_ack_ies_o::value_c::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; } -unbounded_octstring& pdu_session_res_release_cmd_ies_o::value_c::nas_pdu() +SRSASN_CODE ran_cfg_upd_ack_ies_o::value_c::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -pdu_session_res_to_release_list_rel_cmd_l& -pdu_session_res_release_cmd_ies_o::value_c::pdu_session_res_to_release_list_rel_cmd() + +const char* ran_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const { - assert_choice_type("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"CriticalityDiagnostics"}; + return convert_enum_idx(options, 1, value, "ran_cfg_upd_ack_ies_o::value_c::types"); } -const uint64_t& pdu_session_res_release_cmd_ies_o::value_c::amf_ue_ngap_id() const + +// RANConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ran_cfg_upd_fail_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + static const uint32_t options[] = {15, 107, 19}; + return map_enum_number(options, 3, idx, "id"); } -const uint64_t& pdu_session_res_release_cmd_ies_o::value_c::ran_ue_ngap_id() const +bool ran_cfg_upd_fail_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + static const uint32_t options[] = {15, 107, 19}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -const uint16_t& pdu_session_res_release_cmd_ies_o::value_c::ran_paging_prio() const +crit_e ran_cfg_upd_fail_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); + switch (id) { + case 15: + return crit_e::ignore; + case 107: + return crit_e::ignore; + case 19: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -const unbounded_octstring& pdu_session_res_release_cmd_ies_o::value_c::nas_pdu() const +ran_cfg_upd_fail_ies_o::value_c ran_cfg_upd_fail_ies_o::get_value(const uint32_t& id) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + value_c ret{}; + switch (id) { + case 15: + ret.set(value_c::types::cause); + break; + case 107: + ret.set(value_c::types::time_to_wait); + break; + case 19: + ret.set(value_c::types::crit_diagnostics); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -const pdu_session_res_to_release_list_rel_cmd_l& -pdu_session_res_release_cmd_ies_o::value_c::pdu_session_res_to_release_list_rel_cmd() const +presence_e ran_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); - return c.get(); + switch (id) { + case 15: + return presence_e::mandatory; + case 107: + return presence_e::optional; + case 19: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -void pdu_session_res_release_cmd_ies_o::value_c::destroy_() + +// Value ::= OPEN TYPE +void ran_cfg_upd_fail_ies_o::value_c::destroy_() { switch (type_) { - case types::nas_pdu: - c.destroy >(); + case types::cause: + c.destroy(); break; - case types::pdu_session_res_to_release_list_rel_cmd: - c.destroy(); + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void pdu_session_res_release_cmd_ies_o::value_c::set(types::options e) +void ran_cfg_upd_fail_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ran_paging_prio: + case types::cause: + c.init(); break; - case types::nas_pdu: - c.init >(); + case types::time_to_wait: break; - case types::pdu_session_res_to_release_list_rel_cmd: - c.init(); + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); } } -pdu_session_res_release_cmd_ies_o::value_c::value_c(const pdu_session_res_release_cmd_ies_o::value_c& other) +ran_cfg_upd_fail_ies_o::value_c::value_c(const ran_cfg_upd_fail_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_paging_prio: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; - case types::nas_pdu: - c.init(other.c.get >()); + case types::time_to_wait: + c.init(other.c.get()); break; - case types::pdu_session_res_to_release_list_rel_cmd: - c.init(other.c.get()); + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); } } -pdu_session_res_release_cmd_ies_o::value_c& pdu_session_res_release_cmd_ies_o::value_c:: - operator=(const pdu_session_res_release_cmd_ies_o::value_c& other) +ran_cfg_upd_fail_ies_o::value_c& +ran_cfg_upd_fail_ies_o::value_c::operator=(const ran_cfg_upd_fail_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_paging_prio: - c.set(other.c.get()); + case types::cause: + c.set(other.c.get()); break; - case types::nas_pdu: - c.set(other.c.get >()); + case types::time_to_wait: + c.set(other.c.get()); break; - case types::pdu_session_res_to_release_list_rel_cmd: - c.set(other.c.get()); + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); } return *this; } -void pdu_session_res_release_cmd_ies_o::value_c::to_json(json_writer& j) const +cause_c& ran_cfg_upd_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +time_to_wait_e& ran_cfg_upd_fail_ies_o::value_c::time_to_wait() +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ran_cfg_upd_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cause_c& ran_cfg_upd_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const time_to_wait_e& ran_cfg_upd_fail_ies_o::value_c::time_to_wait() const +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ran_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ran_cfg_upd_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::ran_paging_prio: - j.write_int("INTEGER (1..256)", c.get()); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; - case types::nas_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); + case types::time_to_wait: + j.write_str("TimeToWait", c.get().to_string()); break; - case types::pdu_session_res_to_release_list_rel_cmd: - j.start_array("PDUSessionResourceToReleaseListRelCmd"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_release_cmd_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ran_cfg_upd_fail_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ran_paging_prio: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; - case types::nas_pdu: - HANDLE_CODE(c.get >().pack(bref)); + case types::time_to_wait: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_to_release_list_rel_cmd: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_fail_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ran_paging_prio: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::nas_pdu: - HANDLE_CODE(c.get >().unpack(bref)); + case types::time_to_wait: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_to_release_list_rel_cmd: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_release_cmd_ies_o::value_c::types_opts::to_string() const +const char* ran_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "INTEGER (1..256)", - "OCTET STRING", - "PDUSessionResourceToReleaseListRelCmd"}; - return convert_enum_idx(options, 5, value, "pdu_session_res_release_cmd_ies_o::value_c::types"); + static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 3, value, "ran_cfg_upd_fail_ies_o::value_c::types"); } -// PDUSessionResourceReleaseResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_release_resp_ies_o::idx_to_id(uint32_t idx) +// RANConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ran_cfg_upd_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 70, 121, 19}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {82, 102, 21, 27}; + return map_enum_number(options, 4, idx, "id"); } -bool pdu_session_res_release_resp_ies_o::is_id_valid(const uint32_t& id) +bool ran_cfg_upd_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 70, 121, 19}; + static const uint32_t options[] = {82, 102, 21, 27}; for (const auto& o : options) { if (o == id) { return true; @@ -31794,60 +32328,53 @@ bool pdu_session_res_release_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_release_resp_ies_o::get_crit(const uint32_t& id) +crit_e ran_cfg_upd_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 70: + case 82: return crit_e::ignore; - case 121: + case 102: + return crit_e::reject; + case 21: return crit_e::ignore; - case 19: + case 27: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_release_resp_ies_o::value_c pdu_session_res_release_resp_ies_o::get_value(const uint32_t& id) +ran_cfg_upd_ies_o::value_c ran_cfg_upd_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); + case 82: + ret.set(value_c::types::ran_node_name); break; - case 70: - ret.set(value_c::types::pdu_session_res_released_list_rel_res); + case 102: + ret.set(value_c::types::supported_ta_list); break; - case 121: - ret.set(value_c::types::user_location_info); + case 21: + ret.set(value_c::types::default_paging_drx); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 27: + ret.set(value_c::types::global_ran_node_id); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_release_resp_ies_o::get_presence(const uint32_t& id) +presence_e ran_cfg_upd_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 70: - return presence_e::mandatory; - case 121: + case 82: return presence_e::optional; - case 19: + case 102: + return presence_e::optional; + case 21: + return presence_e::optional; + case 27: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -31856,254 +32383,219 @@ presence_e pdu_session_res_release_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_release_resp_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_release_resp_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_released_list_rel_res_l& -pdu_session_res_release_resp_ies_o::value_c::pdu_session_res_released_list_rel_res() -{ - assert_choice_type("PDUSessionResourceReleasedListRelRes", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& pdu_session_res_release_resp_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& pdu_session_res_release_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_release_resp_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_release_resp_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_released_list_rel_res_l& -pdu_session_res_release_resp_ies_o::value_c::pdu_session_res_released_list_rel_res() const -{ - assert_choice_type("PDUSessionResourceReleasedListRelRes", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& pdu_session_res_release_resp_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& pdu_session_res_release_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_release_resp_ies_o::value_c::destroy_() +void ran_cfg_upd_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_released_list_rel_res: - c.destroy(); + case types::ran_node_name: + c.destroy >(); break; - case types::user_location_info: - c.destroy(); + case types::supported_ta_list: + c.destroy(); break; - case types::crit_diagnostics: - c.destroy(); + case types::global_ran_node_id: + c.destroy(); break; default: break; } } -void pdu_session_res_release_resp_ies_o::value_c::set(types::options e) +void ran_cfg_upd_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: + case types::ran_node_name: + c.init >(); break; - case types::pdu_session_res_released_list_rel_res: - c.init(); + case types::supported_ta_list: + c.init(); break; - case types::user_location_info: - c.init(); + case types::default_paging_drx: break; - case types::crit_diagnostics: - c.init(); + case types::global_ran_node_id: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); } } -pdu_session_res_release_resp_ies_o::value_c::value_c(const pdu_session_res_release_resp_ies_o::value_c& other) +ran_cfg_upd_ies_o::value_c::value_c(const ran_cfg_upd_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); + case types::ran_node_name: + c.init(other.c.get >()); break; - case types::pdu_session_res_released_list_rel_res: - c.init(other.c.get()); + case types::supported_ta_list: + c.init(other.c.get()); break; - case types::user_location_info: - c.init(other.c.get()); + case types::default_paging_drx: + c.init(other.c.get()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::global_ran_node_id: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); } } -pdu_session_res_release_resp_ies_o::value_c& pdu_session_res_release_resp_ies_o::value_c:: - operator=(const pdu_session_res_release_resp_ies_o::value_c& other) +ran_cfg_upd_ies_o::value_c& ran_cfg_upd_ies_o::value_c::operator=(const ran_cfg_upd_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); + case types::ran_node_name: + c.set(other.c.get >()); break; - case types::pdu_session_res_released_list_rel_res: - c.set(other.c.get()); + case types::supported_ta_list: + c.set(other.c.get()); break; - case types::user_location_info: - c.set(other.c.get()); + case types::default_paging_drx: + c.set(other.c.get()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::global_ran_node_id: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); } return *this; } -void pdu_session_res_release_resp_ies_o::value_c::to_json(json_writer& j) const +printable_string<1, 150, true, true>& ran_cfg_upd_ies_o::value_c::ran_node_name() +{ + assert_choice_type(types::ran_node_name, type_, "Value"); + return c.get >(); +} +supported_ta_list_l& ran_cfg_upd_ies_o::value_c::supported_ta_list() +{ + assert_choice_type(types::supported_ta_list, type_, "Value"); + return c.get(); +} +paging_drx_e& ran_cfg_upd_ies_o::value_c::default_paging_drx() +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +global_ran_node_id_c& ran_cfg_upd_ies_o::value_c::global_ran_node_id() +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& ran_cfg_upd_ies_o::value_c::ran_node_name() const +{ + assert_choice_type(types::ran_node_name, type_, "Value"); + return c.get >(); +} +const supported_ta_list_l& ran_cfg_upd_ies_o::value_c::supported_ta_list() const +{ + assert_choice_type(types::supported_ta_list, type_, "Value"); + return c.get(); +} +const paging_drx_e& ran_cfg_upd_ies_o::value_c::default_paging_drx() const +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +const global_ran_node_id_c& ran_cfg_upd_ies_o::value_c::global_ran_node_id() const +{ + assert_choice_type(types::global_ran_node_id, type_, "Value"); + return c.get(); +} +void ran_cfg_upd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::ran_node_name: + j.write_str("PrintableString", c.get >().to_string()); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::supported_ta_list: + j.start_array("SupportedTAList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::pdu_session_res_released_list_rel_res: - j.start_array("PDUSessionResourceReleasedListRelRes"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); + case types::default_paging_drx: + j.write_str("PagingDRX", c.get().to_string()); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::global_ran_node_id: + j.write_fieldname("GlobalRANNodeID"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_release_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ran_cfg_upd_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::ran_node_name: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::pdu_session_res_released_list_rel_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::supported_ta_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); + case types::default_paging_drx: + HANDLE_CODE(c.get().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::ran_node_name: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::pdu_session_res_released_list_rel_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::supported_ta_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::default_paging_drx: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::global_ran_node_id: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_release_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_release_resp_ies_o::value_c::types_opts::to_string() const +const char* ran_cfg_upd_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceReleasedListRelRes", - "UserLocationInformation", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "pdu_session_res_release_resp_ies_o::value_c::types"); + static const char* options[] = {"PrintableString", "SupportedTAList", "PagingDRX", "GlobalRANNodeID"}; + return convert_enum_idx(options, 4, value, "ran_cfg_upd_ies_o::value_c::types"); } -// PDUSessionResourceSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_setup_request_ies_o::idx_to_id(uint32_t idx) +// RRCInactiveTransitionReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t rrc_inactive_transition_report_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 83, 38, 74, 110}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {10, 85, 92, 121}; + return map_enum_number(options, 4, idx, "id"); } -bool pdu_session_res_setup_request_ies_o::is_id_valid(const uint32_t& id) +bool rrc_inactive_transition_report_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 83, 38, 74, 110}; + static const uint32_t options[] = {10, 85, 92, 121}; for (const auto& o : options) { if (o == id) { return true; @@ -32111,27 +32603,23 @@ bool pdu_session_res_setup_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_setup_request_ies_o::get_crit(const uint32_t& id) +crit_e rrc_inactive_transition_report_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 83: + case 92: return crit_e::ignore; - case 38: - return crit_e::reject; - case 74: - return crit_e::reject; - case 110: + case 121: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_setup_request_ies_o::value_c pdu_session_res_setup_request_ies_o::get_value(const uint32_t& id) +rrc_inactive_transition_report_ies_o::value_c rrc_inactive_transition_report_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -32141,38 +32629,28 @@ pdu_session_res_setup_request_ies_o::value_c pdu_session_res_setup_request_ies_o case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 83: - ret.set(value_c::types::ran_paging_prio); - break; - case 38: - ret.set(value_c::types::nas_pdu); - break; - case 74: - ret.set(value_c::types::pdu_session_res_setup_list_su_req); + case 92: + ret.set(value_c::types::rrc_state); break; - case 110: - ret.set(value_c::types::ue_aggregate_maximum_bit_rate); + case 121: + ret.set(value_c::types::user_location_info); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_setup_request_ies_o::get_presence(const uint32_t& id) +presence_e rrc_inactive_transition_report_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 83: - return presence_e::optional; - case 38: - return presence_e::optional; - case 74: + case 92: + return presence_e::mandatory; + case 121: return presence_e::mandatory; - case 110: - return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -32180,85 +32658,17 @@ presence_e pdu_session_res_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_setup_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_setup_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& pdu_session_res_setup_request_ies_o::value_c::ran_paging_prio() -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& pdu_session_res_setup_request_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -pdu_session_res_setup_list_su_req_l& pdu_session_res_setup_request_ies_o::value_c::pdu_session_res_setup_list_su_req() -{ - assert_choice_type("PDUSessionResourceSetupListSUReq", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bit_rate_s& pdu_session_res_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() -{ - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_setup_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_setup_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& pdu_session_res_setup_request_ies_o::value_c::ran_paging_prio() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& pdu_session_res_setup_request_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const pdu_session_res_setup_list_su_req_l& -pdu_session_res_setup_request_ies_o::value_c::pdu_session_res_setup_list_su_req() const -{ - assert_choice_type("PDUSessionResourceSetupListSUReq", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bit_rate_s& -pdu_session_res_setup_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const -{ - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_setup_request_ies_o::value_c::destroy_() +void rrc_inactive_transition_report_ies_o::value_c::destroy_() { switch (type_) { - case types::nas_pdu: - c.destroy >(); - break; - case types::pdu_session_res_setup_list_su_req: - c.destroy(); - break; - case types::ue_aggregate_maximum_bit_rate: - c.destroy(); + case types::user_location_info: + c.destroy(); break; default: break; } } -void pdu_session_res_setup_request_ies_o::value_c::set(types::options e) +void rrc_inactive_transition_report_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -32267,24 +32677,18 @@ void pdu_session_res_setup_request_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::ran_paging_prio: - break; - case types::nas_pdu: - c.init >(); - break; - case types::pdu_session_res_setup_list_su_req: - c.init(); + case types::rrc_state: break; - case types::ue_aggregate_maximum_bit_rate: - c.init(); + case types::user_location_info: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); } } -pdu_session_res_setup_request_ies_o::value_c::value_c(const pdu_session_res_setup_request_ies_o::value_c& other) +rrc_inactive_transition_report_ies_o::value_c::value_c(const rrc_inactive_transition_report_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -32294,26 +32698,20 @@ pdu_session_res_setup_request_ies_o::value_c::value_c(const pdu_session_res_setu case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ran_paging_prio: - c.init(other.c.get()); - break; - case types::nas_pdu: - c.init(other.c.get >()); - break; - case types::pdu_session_res_setup_list_su_req: - c.init(other.c.get()); + case types::rrc_state: + c.init(other.c.get()); break; - case types::ue_aggregate_maximum_bit_rate: - c.init(other.c.get()); + case types::user_location_info: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); } } -pdu_session_res_setup_request_ies_o::value_c& pdu_session_res_setup_request_ies_o::value_c:: - operator=(const pdu_session_res_setup_request_ies_o::value_c& other) +rrc_inactive_transition_report_ies_o::value_c& +rrc_inactive_transition_report_ies_o::value_c::operator=(const rrc_inactive_transition_report_ies_o::value_c& other) { if (this == &other) { return *this; @@ -32326,27 +32724,61 @@ pdu_session_res_setup_request_ies_o::value_c& pdu_session_res_setup_request_ies_ case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::ran_paging_prio: - c.set(other.c.get()); - break; - case types::nas_pdu: - c.set(other.c.get >()); - break; - case types::pdu_session_res_setup_list_su_req: - c.set(other.c.get()); + case types::rrc_state: + c.set(other.c.get()); break; - case types::ue_aggregate_maximum_bit_rate: - c.set(other.c.get()); + case types::user_location_info: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); } return *this; } -void pdu_session_res_setup_request_ies_o::value_c::to_json(json_writer& j) const +uint64_t& rrc_inactive_transition_report_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& rrc_inactive_transition_report_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +rrc_state_e& rrc_inactive_transition_report_ies_o::value_c::rrc_state() +{ + assert_choice_type(types::rrc_state, type_, "Value"); + return c.get(); +} +user_location_info_c& rrc_inactive_transition_report_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const uint64_t& rrc_inactive_transition_report_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& rrc_inactive_transition_report_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const rrc_state_e& rrc_inactive_transition_report_ies_o::value_c::rrc_state() const +{ + assert_choice_type(types::rrc_state, type_, "Value"); + return c.get(); +} +const user_location_info_c& rrc_inactive_transition_report_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +void rrc_inactive_transition_report_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -32356,29 +32788,19 @@ void pdu_session_res_setup_request_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::ran_paging_prio: - j.write_int("INTEGER (1..256)", c.get()); - break; - case types::nas_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::pdu_session_res_setup_list_su_req: - j.start_array("PDUSessionResourceSetupListSUReq"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::rrc_state: + j.write_str("RRCState", c.get().to_string()); break; - case types::ue_aggregate_maximum_bit_rate: - j.write_fieldname("UEAggregateMaximumBitRate"); - c.get().to_json(j); + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -32388,25 +32810,19 @@ SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::pack(bit_ref& bref) co case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::pdu_session_res_setup_list_su_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::rrc_state: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -32416,45 +32832,35 @@ SRSASN_CODE pdu_session_res_setup_request_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::pdu_session_res_setup_list_su_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::rrc_state: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_request_ies_o::value_c"); + log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_setup_request_ies_o::value_c::types_opts::to_string() const +const char* rrc_inactive_transition_report_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "INTEGER (1..256)", - "OCTET STRING", - "PDUSessionResourceSetupListSUReq", - "UEAggregateMaximumBitRate"}; - return convert_enum_idx(options, 6, value, "pdu_session_res_setup_request_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "RRCState", "UserLocationInformation"}; + return convert_enum_idx(options, 4, value, "rrc_inactive_transition_report_ies_o::value_c::types"); } -// PDUSessionResourceSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pdu_session_res_setup_resp_ies_o::idx_to_id(uint32_t idx) +// RerouteNASRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t reroute_nas_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 75, 58, 19}; + static const uint32_t options[] = {85, 10, 42, 3, 0}; return map_enum_number(options, 5, idx, "id"); } -bool pdu_session_res_setup_resp_ies_o::is_id_valid(const uint32_t& id) +bool reroute_nas_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 75, 58, 19}; + static const uint32_t options[] = {85, 10, 42, 3, 0}; for (const auto& o : options) { if (o == id) { return true; @@ -32462,60 +32868,60 @@ bool pdu_session_res_setup_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pdu_session_res_setup_resp_ies_o::get_crit(const uint32_t& id) +crit_e reroute_nas_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::ignore; case 85: + return crit_e::reject; + case 10: return crit_e::ignore; - case 75: - return crit_e::ignore; - case 58: - return crit_e::ignore; - case 19: - return crit_e::ignore; + case 42: + return crit_e::reject; + case 3: + return crit_e::reject; + case 0: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pdu_session_res_setup_resp_ies_o::value_c pdu_session_res_setup_resp_ies_o::get_value(const uint32_t& id) +reroute_nas_request_ies_o::value_c reroute_nas_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 75: - ret.set(value_c::types::pdu_session_res_setup_list_su_res); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 58: - ret.set(value_c::types::pdu_session_res_failed_to_setup_list_su_res); + case 42: + ret.set(value_c::types::ngap_msg); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 3: + ret.set(value_c::types::amf_set_id); + break; + case 0: + ret.set(value_c::types::allowed_nssai); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pdu_session_res_setup_resp_ies_o::get_presence(const uint32_t& id) +presence_e reroute_nas_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; case 85: return presence_e::mandatory; - case 75: - return presence_e::optional; - case 58: + case 10: return presence_e::optional; - case 19: + case 42: + return presence_e::mandatory; + case 3: + return presence_e::mandatory; + case 0: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -32524,258 +32930,247 @@ presence_e pdu_session_res_setup_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& pdu_session_res_setup_resp_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& pdu_session_res_setup_resp_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_setup_list_su_res_l& pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_setup_list_su_res() -{ - assert_choice_type("PDUSessionResourceSetupListSURes", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_setup_list_su_res_l& -pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_su_res() -{ - assert_choice_type("PDUSessionResourceFailedToSetupListSURes", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& pdu_session_res_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_setup_resp_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& pdu_session_res_setup_resp_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_setup_list_su_res_l& -pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_setup_list_su_res() const -{ - assert_choice_type("PDUSessionResourceSetupListSURes", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_setup_list_su_res_l& -pdu_session_res_setup_resp_ies_o::value_c::pdu_session_res_failed_to_setup_list_su_res() const -{ - assert_choice_type("PDUSessionResourceFailedToSetupListSURes", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& pdu_session_res_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void pdu_session_res_setup_resp_ies_o::value_c::destroy_() +void reroute_nas_request_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_setup_list_su_res: - c.destroy(); + case types::ngap_msg: + c.destroy >(); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - c.destroy(); + case types::amf_set_id: + c.destroy >(); break; - case types::crit_diagnostics: - c.destroy(); + case types::allowed_nssai: + c.destroy(); break; default: break; } } -void pdu_session_res_setup_resp_ies_o::value_c::set(types::options e) +void reroute_nas_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_setup_list_su_res: - c.init(); + case types::amf_ue_ngap_id: break; - case types::pdu_session_res_failed_to_setup_list_su_res: - c.init(); + case types::ngap_msg: + c.init >(); break; - case types::crit_diagnostics: - c.init(); + case types::amf_set_id: + c.init >(); + break; + case types::allowed_nssai: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); } } -pdu_session_res_setup_resp_ies_o::value_c::value_c(const pdu_session_res_setup_resp_ies_o::value_c& other) +reroute_nas_request_ies_o::value_c::value_c(const reroute_nas_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: + case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ran_ue_ngap_id: + case types::amf_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_setup_list_su_res: - c.init(other.c.get()); + case types::ngap_msg: + c.init(other.c.get >()); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - c.init(other.c.get()); + case types::amf_set_id: + c.init(other.c.get >()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::allowed_nssai: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); } } -pdu_session_res_setup_resp_ies_o::value_c& pdu_session_res_setup_resp_ies_o::value_c:: - operator=(const pdu_session_res_setup_resp_ies_o::value_c& other) +reroute_nas_request_ies_o::value_c& +reroute_nas_request_ies_o::value_c::operator=(const reroute_nas_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_setup_list_su_res: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - c.set(other.c.get()); + case types::ngap_msg: + c.set(other.c.get >()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::amf_set_id: + c.set(other.c.get >()); + break; + case types::allowed_nssai: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); } return *this; } -void pdu_session_res_setup_resp_ies_o::value_c::to_json(json_writer& j) const +uint64_t& reroute_nas_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& reroute_nas_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& reroute_nas_request_ies_o::value_c::ngap_msg() +{ + assert_choice_type(types::ngap_msg, type_, "Value"); + return c.get >(); +} +fixed_bitstring<10, false, true>& reroute_nas_request_ies_o::value_c::amf_set_id() +{ + assert_choice_type(types::amf_set_id, type_, "Value"); + return c.get >(); +} +allowed_nssai_l& reroute_nas_request_ies_o::value_c::allowed_nssai() +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +const uint64_t& reroute_nas_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& reroute_nas_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& reroute_nas_request_ies_o::value_c::ngap_msg() const +{ + assert_choice_type(types::ngap_msg, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<10, false, true>& reroute_nas_request_ies_o::value_c::amf_set_id() const +{ + assert_choice_type(types::amf_set_id, type_, "Value"); + return c.get >(); +} +const allowed_nssai_l& reroute_nas_request_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type(types::allowed_nssai, type_, "Value"); + return c.get(); +} +void reroute_nas_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; case types::amf_ue_ngap_id: j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::ngap_msg: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::pdu_session_res_setup_list_su_res: - j.start_array("PDUSessionResourceSetupListSURes"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::amf_set_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - j.start_array("PDUSessionResourceFailedToSetupListSURes"); - for (const auto& e1 : c.get()) { + case types::allowed_nssai: + j.start_array("AllowedNSSAI"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pdu_session_res_setup_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE reroute_nas_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_setup_list_su_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::ngap_msg: + HANDLE_CODE(c.get >().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_set_id: + HANDLE_CODE((c.get >().pack(bref))); + break; + case types::allowed_nssai: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE reroute_nas_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_setup_list_su_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::pdu_session_res_failed_to_setup_list_su_res: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::ngap_msg: + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_set_id: + HANDLE_CODE((c.get >().unpack(bref))); + break; + case types::allowed_nssai: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); break; default: - log_invalid_choice_id(type_, "pdu_session_res_setup_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pdu_session_res_setup_resp_ies_o::value_c::types_opts::to_string() const +const char* reroute_nas_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceSetupListSURes", - "PDUSessionResourceFailedToSetupListSURes", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "pdu_session_res_setup_resp_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..4294967295)", "INTEGER (0..1099511627775)", "OCTET STRING", "BIT STRING", "AllowedNSSAI"}; + return convert_enum_idx(options, 5, value, "reroute_nas_request_ies_o::value_c::types"); } -// PWSCancelRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pws_cancel_request_ies_o::idx_to_id(uint32_t idx) +// SecondaryRATDataUsageReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t secondary_rat_data_usage_report_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {35, 95, 122, 14}; + static const uint32_t options[] = {10, 85, 142, 143}; return map_enum_number(options, 4, idx, "id"); } -bool pws_cancel_request_ies_o::is_id_valid(const uint32_t& id) +bool secondary_rat_data_usage_report_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {35, 95, 122, 14}; + static const uint32_t options[] = {10, 85, 142, 143}; for (const auto& o : options) { if (o == id) { return true; @@ -32783,53 +33178,53 @@ bool pws_cancel_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pws_cancel_request_ies_o::get_crit(const uint32_t& id) +crit_e secondary_rat_data_usage_report_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 35: - return crit_e::reject; - case 95: - return crit_e::reject; - case 122: + case 10: + return crit_e::ignore; + case 85: + return crit_e::ignore; + case 142: + return crit_e::ignore; + case 143: return crit_e::ignore; - case 14: - return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pws_cancel_request_ies_o::value_c pws_cancel_request_ies_o::get_value(const uint32_t& id) +secondary_rat_data_usage_report_ies_o::value_c secondary_rat_data_usage_report_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 35: - ret.set(value_c::types::msg_id); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 95: - ret.set(value_c::types::serial_num); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 122: - ret.set(value_c::types::warning_area_list); + case 142: + ret.set(value_c::types::pdu_session_res_secondary_ratusage_list); break; - case 14: - ret.set(value_c::types::cancel_all_warning_msgs); + case 143: + ret.set(value_c::types::ho_flag); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pws_cancel_request_ies_o::get_presence(const uint32_t& id) +presence_e secondary_rat_data_usage_report_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 35: + case 10: return presence_e::mandatory; - case 95: + case 85: return presence_e::mandatory; - case 122: - return presence_e::optional; - case 14: + case 142: + return presence_e::mandatory; + case 143: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -32838,216 +33233,216 @@ presence_e pws_cancel_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -warning_area_list_c& pws_cancel_request_ies_o::value_c::warning_area_list() -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -cancel_all_warning_msgs_e& pws_cancel_request_ies_o::value_c::cancel_all_warning_msgs() -{ - assert_choice_type("CancelAllWarningMessages", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& pws_cancel_request_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const warning_area_list_c& pws_cancel_request_ies_o::value_c::warning_area_list() const -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -const cancel_all_warning_msgs_e& pws_cancel_request_ies_o::value_c::cancel_all_warning_msgs() const -{ - assert_choice_type("CancelAllWarningMessages", type_.to_string(), "Value"); - return c.get(); -} -void pws_cancel_request_ies_o::value_c::destroy_() +void secondary_rat_data_usage_report_ies_o::value_c::destroy_() { switch (type_) { - case types::msg_id: - c.destroy >(); - break; - case types::serial_num: - c.destroy >(); - break; - case types::warning_area_list: - c.destroy(); + case types::pdu_session_res_secondary_ratusage_list: + c.destroy(); break; default: break; } } -void pws_cancel_request_ies_o::value_c::set(types::options e) +void secondary_rat_data_usage_report_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::msg_id: - c.init >(); + case types::amf_ue_ngap_id: break; - case types::serial_num: - c.init >(); + case types::ran_ue_ngap_id: break; - case types::warning_area_list: - c.init(); + case types::pdu_session_res_secondary_ratusage_list: + c.init(); break; - case types::cancel_all_warning_msgs: + case types::ho_flag: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); } } -pws_cancel_request_ies_o::value_c::value_c(const pws_cancel_request_ies_o::value_c& other) +secondary_rat_data_usage_report_ies_o::value_c::value_c(const secondary_rat_data_usage_report_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::msg_id: - c.init(other.c.get >()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::serial_num: - c.init(other.c.get >()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::warning_area_list: - c.init(other.c.get()); + case types::pdu_session_res_secondary_ratusage_list: + c.init(other.c.get()); break; - case types::cancel_all_warning_msgs: - c.init(other.c.get()); + case types::ho_flag: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); } } -pws_cancel_request_ies_o::value_c& pws_cancel_request_ies_o::value_c:: - operator=(const pws_cancel_request_ies_o::value_c& other) +secondary_rat_data_usage_report_ies_o::value_c& +secondary_rat_data_usage_report_ies_o::value_c::operator=(const secondary_rat_data_usage_report_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::msg_id: - c.set(other.c.get >()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::serial_num: - c.set(other.c.get >()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::warning_area_list: - c.set(other.c.get()); + case types::pdu_session_res_secondary_ratusage_list: + c.set(other.c.get()); break; - case types::cancel_all_warning_msgs: - c.set(other.c.get()); + case types::ho_flag: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); } return *this; } -void pws_cancel_request_ies_o::value_c::to_json(json_writer& j) const +uint64_t& secondary_rat_data_usage_report_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& secondary_rat_data_usage_report_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_secondary_ratusage_list_l& +secondary_rat_data_usage_report_ies_o::value_c::pdu_session_res_secondary_ratusage_list() +{ + assert_choice_type(types::pdu_session_res_secondary_ratusage_list, type_, "Value"); + return c.get(); +} +ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() +{ + assert_choice_type(types::ho_flag, type_, "Value"); + return c.get(); +} +const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_secondary_ratusage_list_l& +secondary_rat_data_usage_report_ies_o::value_c::pdu_session_res_secondary_ratusage_list() const +{ + assert_choice_type(types::pdu_session_res_secondary_ratusage_list, type_, "Value"); + return c.get(); +} +const ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() const +{ + assert_choice_type(types::ho_flag, type_, "Value"); + return c.get(); +} +void secondary_rat_data_usage_report_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::msg_id: - j.write_str("BIT STRING", c.get >().to_string()); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::serial_num: - j.write_str("BIT STRING", c.get >().to_string()); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::warning_area_list: - j.write_fieldname("WarningAreaList"); - c.get().to_json(j); + case types::pdu_session_res_secondary_ratusage_list: + j.start_array("PDUSessionResourceSecondaryRATUsageList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::cancel_all_warning_msgs: - j.write_str("CancelAllWarningMessages", "true"); + case types::ho_flag: + j.write_str("HandoverFlag", "handover-preparation"); break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pws_cancel_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().pack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::serial_num: - HANDLE_CODE((c.get >().pack(bref))); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::warning_area_list: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_secondary_ratusage_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::cancel_all_warning_msgs: - HANDLE_CODE(c.get().pack(bref)); + case types::ho_flag: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().unpack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::serial_num: - HANDLE_CODE((c.get >().unpack(bref))); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::warning_area_list: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_secondary_ratusage_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::cancel_all_warning_msgs: - HANDLE_CODE(c.get().unpack(bref)); + case types::ho_flag: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pws_cancel_request_ies_o::value_c"); + log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pws_cancel_request_ies_o::value_c::types_opts::to_string() const +const char* secondary_rat_data_usage_report_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"BIT STRING", "BIT STRING", "WarningAreaList", "CancelAllWarningMessages"}; - return convert_enum_idx(options, 4, value, "pws_cancel_request_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "PDUSessionResourceSecondaryRATUsageList", + "HandoverFlag"}; + return convert_enum_idx(options, 4, value, "secondary_rat_data_usage_report_ies_o::value_c::types"); } -// PWSCancelResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pws_cancel_resp_ies_o::idx_to_id(uint32_t idx) +// TraceFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t trace_fail_ind_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {35, 95, 12, 19}; + static const uint32_t options[] = {10, 85, 44, 15}; return map_enum_number(options, 4, idx, "id"); } -bool pws_cancel_resp_ies_o::is_id_valid(const uint32_t& id) +bool trace_fail_ind_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {35, 95, 12, 19}; + static const uint32_t options[] = {10, 85, 44, 15}; for (const auto& o : options) { if (o == id) { return true; @@ -33055,54 +33450,54 @@ bool pws_cancel_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pws_cancel_resp_ies_o::get_crit(const uint32_t& id) +crit_e trace_fail_ind_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 35: + case 10: return crit_e::reject; - case 95: + case 85: return crit_e::reject; - case 12: + case 44: return crit_e::ignore; - case 19: + case 15: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pws_cancel_resp_ies_o::value_c pws_cancel_resp_ies_o::get_value(const uint32_t& id) +trace_fail_ind_ies_o::value_c trace_fail_ind_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 35: - ret.set(value_c::types::msg_id); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 95: - ret.set(value_c::types::serial_num); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 12: - ret.set(value_c::types::broadcast_cancelled_area_list); + case 44: + ret.set(value_c::types::ngran_trace_id); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 15: + ret.set(value_c::types::cause); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pws_cancel_resp_ies_o::get_presence(const uint32_t& id) +presence_e trace_fail_ind_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 35: + case 10: return presence_e::mandatory; - case 95: + case 85: + return presence_e::mandatory; + case 44: + return presence_e::mandatory; + case 15: return presence_e::mandatory; - case 12: - return presence_e::optional; - case 19: - return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -33110,220 +33505,211 @@ presence_e pws_cancel_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -broadcast_cancelled_area_list_c& pws_cancel_resp_ies_o::value_c::broadcast_cancelled_area_list() -{ - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& pws_cancel_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& pws_cancel_resp_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const broadcast_cancelled_area_list_c& pws_cancel_resp_ies_o::value_c::broadcast_cancelled_area_list() const -{ - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& pws_cancel_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void pws_cancel_resp_ies_o::value_c::destroy_() +void trace_fail_ind_ies_o::value_c::destroy_() { switch (type_) { - case types::msg_id: - c.destroy >(); - break; - case types::serial_num: - c.destroy >(); - break; - case types::broadcast_cancelled_area_list: - c.destroy(); + case types::ngran_trace_id: + c.destroy >(); break; - case types::crit_diagnostics: - c.destroy(); + case types::cause: + c.destroy(); break; default: break; } } -void pws_cancel_resp_ies_o::value_c::set(types::options e) +void trace_fail_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::msg_id: - c.init >(); + case types::amf_ue_ngap_id: break; - case types::serial_num: - c.init >(); + case types::ran_ue_ngap_id: break; - case types::broadcast_cancelled_area_list: - c.init(); + case types::ngran_trace_id: + c.init >(); break; - case types::crit_diagnostics: - c.init(); + case types::cause: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); } } -pws_cancel_resp_ies_o::value_c::value_c(const pws_cancel_resp_ies_o::value_c& other) +trace_fail_ind_ies_o::value_c::value_c(const trace_fail_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::msg_id: - c.init(other.c.get >()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::serial_num: - c.init(other.c.get >()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::broadcast_cancelled_area_list: - c.init(other.c.get()); + case types::ngran_trace_id: + c.init(other.c.get >()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); } } -pws_cancel_resp_ies_o::value_c& pws_cancel_resp_ies_o::value_c::operator=(const pws_cancel_resp_ies_o::value_c& other) +trace_fail_ind_ies_o::value_c& trace_fail_ind_ies_o::value_c::operator=(const trace_fail_ind_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::msg_id: - c.set(other.c.get >()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::serial_num: - c.set(other.c.get >()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::broadcast_cancelled_area_list: - c.set(other.c.get()); + case types::ngran_trace_id: + c.set(other.c.get >()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::cause: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); } return *this; } -void pws_cancel_resp_ies_o::value_c::to_json(json_writer& j) const +uint64_t& trace_fail_ind_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& trace_fail_ind_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::ngran_trace_id() +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} +cause_c& trace_fail_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& trace_fail_ind_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& trace_fail_ind_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::ngran_trace_id() const +{ + assert_choice_type(types::ngran_trace_id, type_, "Value"); + return c.get >(); +} +const cause_c& trace_fail_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +void trace_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::msg_id: - j.write_str("BIT STRING", c.get >().to_string()); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::serial_num: - j.write_str("BIT STRING", c.get >().to_string()); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::broadcast_cancelled_area_list: - j.write_fieldname("BroadcastCancelledAreaList"); - c.get().to_json(j); + case types::ngran_trace_id: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pws_cancel_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE trace_fail_ind_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().pack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::serial_num: - HANDLE_CODE((c.get >().pack(bref))); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::broadcast_cancelled_area_list: - HANDLE_CODE(c.get().pack(bref)); + case types::ngran_trace_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE trace_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().unpack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::serial_num: - HANDLE_CODE((c.get >().unpack(bref))); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::broadcast_cancelled_area_list: - HANDLE_CODE(c.get().unpack(bref)); + case types::ngran_trace_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pws_cancel_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pws_cancel_resp_ies_o::value_c::types_opts::to_string() const +const char* trace_fail_ind_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCancelledAreaList", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 4, value, "pws_cancel_resp_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "Cause"}; + return convert_enum_idx(options, 4, value, "trace_fail_ind_ies_o::value_c::types"); } -// PWSFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pws_fail_ind_ies_o::idx_to_id(uint32_t idx) +// TraceStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t trace_start_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {81, 27}; - return map_enum_number(options, 2, idx, "id"); + static const uint32_t options[] = {10, 85, 108}; + return map_enum_number(options, 3, idx, "id"); } -bool pws_fail_ind_ies_o::is_id_valid(const uint32_t& id) +bool trace_start_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {81, 27}; + static const uint32_t options[] = {10, 85, 108}; for (const auto& o : options) { if (o == id) { return true; @@ -33331,39 +33717,46 @@ bool pws_fail_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pws_fail_ind_ies_o::get_crit(const uint32_t& id) +crit_e trace_start_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 81: + case 10: return crit_e::reject; - case 27: + case 85: return crit_e::reject; + case 108: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pws_fail_ind_ies_o::value_c pws_fail_ind_ies_o::get_value(const uint32_t& id) +trace_start_ies_o::value_c trace_start_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 81: - ret.set(value_c::types::pws_failed_cell_id_list); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 27: - ret.set(value_c::types::global_ran_node_id); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 108: + ret.set(value_c::types::trace_activation); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pws_fail_ind_ies_o::get_presence(const uint32_t& id) +presence_e trace_start_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 81: + case 10: return presence_e::mandatory; - case 27: + case 85: + return presence_e::mandatory; + case 108: return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); @@ -33372,158 +33765,180 @@ presence_e pws_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -pws_failed_cell_id_list_c& pws_fail_ind_ies_o::value_c::pws_failed_cell_id_list() -{ - assert_choice_type("PWSFailedCellIDList", type_.to_string(), "Value"); - return c.get(); -} -global_ran_node_id_c& pws_fail_ind_ies_o::value_c::global_ran_node_id() -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -const pws_failed_cell_id_list_c& pws_fail_ind_ies_o::value_c::pws_failed_cell_id_list() const -{ - assert_choice_type("PWSFailedCellIDList", type_.to_string(), "Value"); - return c.get(); -} -const global_ran_node_id_c& pws_fail_ind_ies_o::value_c::global_ran_node_id() const -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -void pws_fail_ind_ies_o::value_c::destroy_() +void trace_start_ies_o::value_c::destroy_() { switch (type_) { - case types::pws_failed_cell_id_list: - c.destroy(); - break; - case types::global_ran_node_id: - c.destroy(); + case types::trace_activation: + c.destroy(); break; default: break; } } -void pws_fail_ind_ies_o::value_c::set(types::options e) +void trace_start_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::pws_failed_cell_id_list: - c.init(); + case types::amf_ue_ngap_id: break; - case types::global_ran_node_id: - c.init(); + case types::ran_ue_ngap_id: + break; + case types::trace_activation: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); } } -pws_fail_ind_ies_o::value_c::value_c(const pws_fail_ind_ies_o::value_c& other) +trace_start_ies_o::value_c::value_c(const trace_start_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::pws_failed_cell_id_list: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::global_ran_node_id: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::trace_activation: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); } } -pws_fail_ind_ies_o::value_c& pws_fail_ind_ies_o::value_c::operator=(const pws_fail_ind_ies_o::value_c& other) +trace_start_ies_o::value_c& trace_start_ies_o::value_c::operator=(const trace_start_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::pws_failed_cell_id_list: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::global_ran_node_id: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::trace_activation: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); } return *this; } -void pws_fail_ind_ies_o::value_c::to_json(json_writer& j) const +uint64_t& trace_start_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& trace_start_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +trace_activation_s& trace_start_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const uint64_t& trace_start_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& trace_start_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const trace_activation_s& trace_start_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +void trace_start_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::pws_failed_cell_id_list: - j.write_fieldname("PWSFailedCellIDList"); - c.get().to_json(j); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::global_ran_node_id: - j.write_fieldname("GlobalRANNodeID"); - c.get().to_json(j); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::trace_activation: + j.write_fieldname("TraceActivation"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE pws_fail_ind_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE trace_start_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::pws_failed_cell_id_list: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::trace_activation: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pws_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE trace_start_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::pws_failed_cell_id_list: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::trace_activation: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pws_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pws_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* trace_start_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"PWSFailedCellIDList", "GlobalRANNodeID"}; - return convert_enum_idx(options, 2, value, "pws_fail_ind_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "TraceActivation"}; + return convert_enum_idx(options, 3, value, "trace_start_ies_o::value_c::types"); } -// PWSRestartIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t pws_restart_ind_ies_o::idx_to_id(uint32_t idx) +// UEContextModificationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_mod_fail_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {16, 27, 104, 23}; + static const uint32_t options[] = {10, 85, 15, 19}; return map_enum_number(options, 4, idx, "id"); } -bool pws_restart_ind_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_mod_fail_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {16, 27, 104, 23}; + static const uint32_t options[] = {10, 85, 15, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -33531,53 +33946,53 @@ bool pws_restart_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e pws_restart_ind_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_mod_fail_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 16: - return crit_e::reject; - case 27: - return crit_e::reject; - case 104: - return crit_e::reject; - case 23: - return crit_e::reject; + case 10: + return crit_e::ignore; + case 85: + return crit_e::ignore; + case 15: + return crit_e::ignore; + case 19: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -pws_restart_ind_ies_o::value_c pws_restart_ind_ies_o::get_value(const uint32_t& id) +ue_context_mod_fail_ies_o::value_c ue_context_mod_fail_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 16: - ret.set(value_c::types::cell_id_list_for_restart); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 27: - ret.set(value_c::types::global_ran_node_id); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 104: - ret.set(value_c::types::tai_list_for_restart); + case 15: + ret.set(value_c::types::cause); break; - case 23: - ret.set(value_c::types::emergency_area_id_list_for_restart); + case 19: + ret.set(value_c::types::crit_diagnostics); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e pws_restart_ind_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_mod_fail_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 16: + case 10: return presence_e::mandatory; - case 27: + case 85: return presence_e::mandatory; - case 104: + case 15: return presence_e::mandatory; - case 23: + case 19: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -33586,229 +34001,214 @@ presence_e pws_restart_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cell_id_list_for_restart_c& pws_restart_ind_ies_o::value_c::cell_id_list_for_restart() -{ - assert_choice_type("CellIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} -global_ran_node_id_c& pws_restart_ind_ies_o::value_c::global_ran_node_id() -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() -{ - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() -{ - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const cell_id_list_for_restart_c& pws_restart_ind_ies_o::value_c::cell_id_list_for_restart() const -{ - assert_choice_type("CellIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const global_ran_node_id_c& pws_restart_ind_ies_o::value_c::global_ran_node_id() const -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -const tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() const -{ - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() const -{ - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} -void pws_restart_ind_ies_o::value_c::destroy_() +void ue_context_mod_fail_ies_o::value_c::destroy_() { switch (type_) { - case types::cell_id_list_for_restart: - c.destroy(); - break; - case types::global_ran_node_id: - c.destroy(); - break; - case types::tai_list_for_restart: - c.destroy(); + case types::cause: + c.destroy(); break; - case types::emergency_area_id_list_for_restart: - c.destroy(); + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void pws_restart_ind_ies_o::value_c::set(types::options e) +void ue_context_mod_fail_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::cell_id_list_for_restart: - c.init(); + case types::amf_ue_ngap_id: break; - case types::global_ran_node_id: - c.init(); + case types::ran_ue_ngap_id: break; - case types::tai_list_for_restart: - c.init(); + case types::cause: + c.init(); break; - case types::emergency_area_id_list_for_restart: - c.init(); + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); } } -pws_restart_ind_ies_o::value_c::value_c(const pws_restart_ind_ies_o::value_c& other) +ue_context_mod_fail_ies_o::value_c::value_c(const ue_context_mod_fail_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::cell_id_list_for_restart: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::global_ran_node_id: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::tai_list_for_restart: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; - case types::emergency_area_id_list_for_restart: - c.init(other.c.get()); + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); } } -pws_restart_ind_ies_o::value_c& pws_restart_ind_ies_o::value_c::operator=(const pws_restart_ind_ies_o::value_c& other) +ue_context_mod_fail_ies_o::value_c& +ue_context_mod_fail_ies_o::value_c::operator=(const ue_context_mod_fail_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::cell_id_list_for_restart: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::global_ran_node_id: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::tai_list_for_restart: - c.set(other.c.get()); + case types::cause: + c.set(other.c.get()); break; - case types::emergency_area_id_list_for_restart: - c.set(other.c.get()); + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); } return *this; } -void pws_restart_ind_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_context_mod_fail_ies_o::value_c::amf_ue_ngap_id() { - j.start_obj(); - switch (type_) { - case types::cell_id_list_for_restart: - j.write_fieldname("CellIDListForRestart"); - c.get().to_json(j); - break; - case types::global_ran_node_id: - j.write_fieldname("GlobalRANNodeID"); - c.get().to_json(j); - break; - case types::tai_list_for_restart: - j.start_array("TAIListForRestart"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::emergency_area_id_list_for_restart: - j.start_array("EmergencyAreaIDListForRestart"); - for (const auto& e1 : c.get()) { - j.write_str(e1.to_string()); - } - j.end_array(); - break; - default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); - } - j.end_obj(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE pws_restart_ind_ies_o::value_c::pack(bit_ref& bref) const +uint64_t& ue_context_mod_fail_ies_o::value_c::ran_ue_ngap_id() { - varlength_field_pack_guard varlen_scope(bref, true); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +cause_c& ue_context_mod_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_fail_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_fail_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_mod_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ue_context_mod_fail_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { - case types::cell_id_list_for_restart: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::tai_list_for_restart: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 2048, true)); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; - case types::emergency_area_id_list_for_restart: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + } + j.end_obj(); +} +SRSASN_CODE ue_context_mod_fail_ies_o::value_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::cause: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pws_restart_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_fail_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::cell_id_list_for_restart: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::tai_list_for_restart: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 2048, true)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::emergency_area_id_list_for_restart: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pws_restart_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string pws_restart_ind_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { - "CellIDListForRestart", "GlobalRANNodeID", "TAIListForRestart", "EmergencyAreaIDListForRestart"}; - return convert_enum_idx(options, 4, value, "pws_restart_ind_ies_o::value_c::types"); + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 4, value, "ue_context_mod_fail_ies_o::value_c::types"); } -// PagingIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t paging_ies_o::idx_to_id(uint32_t idx) +// UEContextModificationRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_mod_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {115, 50, 103, 52, 118, 51, 11}; - return map_enum_number(options, 7, idx, "id"); + static const uint32_t options[] = {10, 85, 83, 94, 31, 110, 119, 18, 24, 40, 91}; + return map_enum_number(options, 11, idx, "id"); } -bool paging_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_mod_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {115, 50, 103, 52, 118, 51, 11}; + static const uint32_t options[] = {10, 85, 83, 94, 31, 110, 119, 18, 24, 40, 91}; for (const auto& o : options) { if (o == id) { return true; @@ -33816,74 +34216,102 @@ bool paging_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e paging_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_mod_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 115: - return crit_e::ignore; - case 50: + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 83: return crit_e::ignore; - case 103: + case 94: + return crit_e::reject; + case 31: return crit_e::ignore; - case 52: + case 110: return crit_e::ignore; - case 118: + case 119: + return crit_e::reject; + case 18: return crit_e::ignore; - case 51: + case 24: + return crit_e::reject; + case 40: return crit_e::ignore; - case 11: + case 91: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -paging_ies_o::value_c paging_ies_o::get_value(const uint32_t& id) +ue_context_mod_request_ies_o::value_c ue_context_mod_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 115: - ret.set(value_c::types::ue_paging_id); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 50: - ret.set(value_c::types::paging_drx); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 103: - ret.set(value_c::types::tai_list_for_paging); + case 83: + ret.set(value_c::types::ran_paging_prio); break; - case 52: - ret.set(value_c::types::paging_prio); + case 94: + ret.set(value_c::types::security_key); break; - case 118: - ret.set(value_c::types::ue_radio_cap_for_paging); + case 31: + ret.set(value_c::types::idx_to_rfsp); break; - case 51: - ret.set(value_c::types::paging_origin); + case 110: + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; - case 11: - ret.set(value_c::types::assist_data_for_paging); + case 119: + ret.set(value_c::types::ue_security_cap); + break; + case 18: + ret.set(value_c::types::core_network_assist_info); + break; + case 24: + ret.set(value_c::types::emergency_fallback_ind); + break; + case 40: + ret.set(value_c::types::new_amf_ue_ngap_id); + break; + case 91: + ret.set(value_c::types::rrc_inactive_transition_report_request); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e paging_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_mod_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 115: + case 10: return presence_e::mandatory; - case 50: - return presence_e::optional; - case 103: + case 85: return presence_e::mandatory; - case 52: + case 83: return presence_e::optional; - case 118: + case 94: return presence_e::optional; - case 51: + case 31: return presence_e::optional; - case 11: + case 110: + return presence_e::optional; + case 119: + return presence_e::optional; + case 18: + return presence_e::optional; + case 24: + return presence_e::optional; + case 40: + return presence_e::optional; + case 91: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -33892,722 +34320,271 @@ presence_e paging_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() -{ - assert_choice_type("UEPagingIdentity", type_.to_string(), "Value"); - return c.get(); -} -paging_drx_e& paging_ies_o::value_c::paging_drx() -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -tai_list_for_paging_l& paging_ies_o::value_c::tai_list_for_paging() -{ - assert_choice_type("TAIListForPaging", type_.to_string(), "Value"); - return c.get(); -} -paging_prio_e& paging_ies_o::value_c::paging_prio() -{ - assert_choice_type("PagingPriority", type_.to_string(), "Value"); - return c.get(); -} -ue_radio_cap_for_paging_s& paging_ies_o::value_c::ue_radio_cap_for_paging() -{ - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); -} -paging_origin_e& paging_ies_o::value_c::paging_origin() -{ - assert_choice_type("PagingOrigin", type_.to_string(), "Value"); - return c.get(); -} -assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() -{ - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); - return c.get(); -} -const ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() const -{ - assert_choice_type("UEPagingIdentity", type_.to_string(), "Value"); - return c.get(); -} -const paging_drx_e& paging_ies_o::value_c::paging_drx() const -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const tai_list_for_paging_l& paging_ies_o::value_c::tai_list_for_paging() const -{ - assert_choice_type("TAIListForPaging", type_.to_string(), "Value"); - return c.get(); -} -const paging_prio_e& paging_ies_o::value_c::paging_prio() const -{ - assert_choice_type("PagingPriority", type_.to_string(), "Value"); - return c.get(); -} -const ue_radio_cap_for_paging_s& paging_ies_o::value_c::ue_radio_cap_for_paging() const -{ - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); -} -const paging_origin_e& paging_ies_o::value_c::paging_origin() const -{ - assert_choice_type("PagingOrigin", type_.to_string(), "Value"); - return c.get(); -} -const assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() const -{ - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); - return c.get(); -} -void paging_ies_o::value_c::destroy_() +void ue_context_mod_request_ies_o::value_c::destroy_() { switch (type_) { - case types::ue_paging_id: - c.destroy(); + case types::security_key: + c.destroy >(); break; - case types::tai_list_for_paging: - c.destroy(); + case types::ue_aggregate_maximum_bit_rate: + c.destroy(); break; - case types::ue_radio_cap_for_paging: - c.destroy(); + case types::ue_security_cap: + c.destroy(); break; - case types::assist_data_for_paging: - c.destroy(); + case types::core_network_assist_info: + c.destroy(); + break; + case types::emergency_fallback_ind: + c.destroy(); break; default: break; } } -void paging_ies_o::value_c::set(types::options e) +void ue_context_mod_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ue_paging_id: - c.init(); - break; - case types::paging_drx: - break; - case types::tai_list_for_paging: - c.init(); - break; - case types::paging_prio: - break; - case types::ue_radio_cap_for_paging: - c.init(); + case types::amf_ue_ngap_id: break; - case types::paging_origin: + case types::ran_ue_ngap_id: break; - case types::assist_data_for_paging: - c.init(); + case types::ran_paging_prio: break; - case types::nulltype: + case types::security_key: + c.init >(); break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - } -} -paging_ies_o::value_c::value_c(const paging_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_paging_id: - c.init(other.c.get()); + case types::idx_to_rfsp: break; - case types::paging_drx: - c.init(other.c.get()); + case types::ue_aggregate_maximum_bit_rate: + c.init(); break; - case types::tai_list_for_paging: - c.init(other.c.get()); + case types::ue_security_cap: + c.init(); break; - case types::paging_prio: - c.init(other.c.get()); + case types::core_network_assist_info: + c.init(); break; - case types::ue_radio_cap_for_paging: - c.init(other.c.get()); + case types::emergency_fallback_ind: + c.init(); break; - case types::paging_origin: - c.init(other.c.get()); + case types::new_amf_ue_ngap_id: break; - case types::assist_data_for_paging: - c.init(other.c.get()); + case types::rrc_inactive_transition_report_request: break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); } } -paging_ies_o::value_c& paging_ies_o::value_c::operator=(const paging_ies_o::value_c& other) +ue_context_mod_request_ies_o::value_c::value_c(const ue_context_mod_request_ies_o::value_c& other) { - if (this == &other) { - return *this; - } - set(other.type()); + type_ = other.type(); switch (type_) { - case types::ue_paging_id: - c.set(other.c.get()); - break; - case types::paging_drx: - c.set(other.c.get()); - break; - case types::tai_list_for_paging: - c.set(other.c.get()); - break; - case types::paging_prio: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::ue_radio_cap_for_paging: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::paging_origin: - c.set(other.c.get()); + case types::ran_paging_prio: + c.init(other.c.get()); break; - case types::assist_data_for_paging: - c.set(other.c.get()); + case types::security_key: + c.init(other.c.get >()); break; - case types::nulltype: + case types::idx_to_rfsp: + c.init(other.c.get()); break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - } - - return *this; -} -void paging_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::ue_paging_id: - j.write_fieldname("UEPagingIdentity"); - c.get().to_json(j); + case types::ue_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; - case types::paging_drx: - j.write_str("PagingDRX", c.get().to_string()); + case types::ue_security_cap: + c.init(other.c.get()); break; - case types::tai_list_for_paging: - j.start_array("TAIListForPaging"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::core_network_assist_info: + c.init(other.c.get()); break; - case types::paging_prio: - j.write_str("PagingPriority", c.get().to_string()); + case types::emergency_fallback_ind: + c.init(other.c.get()); break; - case types::ue_radio_cap_for_paging: - j.write_fieldname("UERadioCapabilityForPaging"); - c.get().to_json(j); + case types::new_amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::paging_origin: - j.write_str("PagingOrigin", "non-3gpp"); + case types::rrc_inactive_transition_report_request: + c.init(other.c.get()); break; - case types::assist_data_for_paging: - j.write_fieldname("AssistanceDataForPaging"); - c.get().to_json(j); + case types::nulltype: break; default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); } - j.end_obj(); } -SRSASN_CODE paging_ies_o::value_c::pack(bit_ref& bref) const +ue_context_mod_request_ies_o::value_c& +ue_context_mod_request_ies_o::value_c::operator=(const ue_context_mod_request_ies_o::value_c& other) { - varlength_field_pack_guard varlen_scope(bref, true); + if (this == &other) { + return *this; + } + set(other.type()); switch (type_) { - case types::ue_paging_id: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::paging_drx: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::tai_list_for_paging: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 16, true)); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::paging_prio: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_paging_prio: + c.set(other.c.get()); break; - case types::paging_origin: - HANDLE_CODE(c.get().pack(bref)); + case types::security_key: + c.set(other.c.get >()); break; - case types::assist_data_for_paging: - HANDLE_CODE(c.get().pack(bref)); + case types::idx_to_rfsp: + c.set(other.c.get()); break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE paging_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::ue_paging_id: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; - case types::paging_drx: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_security_cap: + c.set(other.c.get()); break; - case types::tai_list_for_paging: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 16, true)); + case types::core_network_assist_info: + c.set(other.c.get()); break; - case types::paging_prio: - HANDLE_CODE(c.get().unpack(bref)); + case types::emergency_fallback_ind: + c.set(other.c.get()); break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().unpack(bref)); + case types::new_amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::paging_origin: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_inactive_transition_report_request: + c.set(other.c.get()); break; - case types::assist_data_for_paging: - HANDLE_CODE(c.get().unpack(bref)); + case types::nulltype: break; default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); } - return SRSASN_SUCCESS; -} -std::string paging_ies_o::value_c::types_opts::to_string() const + return *this; +} +uint64_t& ue_context_mod_request_ies_o::value_c::amf_ue_ngap_id() { - static const char* options[] = {"UEPagingIdentity", - "PagingDRX", - "TAIListForPaging", - "PagingPriority", - "UERadioCapabilityForPaging", - "PagingOrigin", - "AssistanceDataForPaging"}; - return convert_enum_idx(options, 7, value, "paging_ies_o::value_c::types"); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } - -// PathSwitchRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t path_switch_request_ack_ies_o::idx_to_id(uint32_t idx) +uint64_t& ue_context_mod_request_ies_o::value_c::ran_ue_ngap_id() { - static const uint32_t options[] = {10, 85, 119, 93, 41, 77, 68, 0, 18, 91, 19, 146}; - return map_enum_number(options, 12, idx, "id"); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); } -bool path_switch_request_ack_ies_o::is_id_valid(const uint32_t& id) +uint16_t& ue_context_mod_request_ies_o::value_c::ran_paging_prio() { - static const uint32_t options[] = {10, 85, 119, 93, 41, 77, 68, 0, 18, 91, 19, 146}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e path_switch_request_ack_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 119: - return crit_e::reject; - case 93: - return crit_e::reject; - case 41: - return crit_e::reject; - case 77: - return crit_e::ignore; - case 68: - return crit_e::ignore; - case 0: - return crit_e::reject; - case 18: - return crit_e::ignore; - case 91: - return crit_e::ignore; - case 19: - return crit_e::ignore; - case 146: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} -path_switch_request_ack_ies_o::value_c path_switch_request_ack_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 119: - ret.set(value_c::types::ue_security_cap); - break; - case 93: - ret.set(value_c::types::security_context); - break; - case 41: - ret.set(value_c::types::new_security_context_ind); - break; - case 77: - ret.set(value_c::types::pdu_session_res_switched_list); - break; - case 68: - ret.set(value_c::types::pdu_session_res_released_list_ps_ack); - break; - case 0: - ret.set(value_c::types::allowed_nssai); - break; - case 18: - ret.set(value_c::types::core_network_assist_info); - break; - case 91: - ret.set(value_c::types::rrc_inactive_transition_report_request); - break; - case 19: - ret.set(value_c::types::crit_diagnostics); - break; - case 146: - ret.set(value_c::types::redirection_voice_fallback); - break; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return ret; + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); } -presence_e path_switch_request_ack_ies_o::get_presence(const uint32_t& id) +fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 119: - return presence_e::optional; - case 93: - return presence_e::mandatory; - case 41: - return presence_e::optional; - case 77: - return presence_e::mandatory; - case 68: - return presence_e::optional; - case 0: - return presence_e::mandatory; - case 18: - return presence_e::optional; - case 91: - return presence_e::optional; - case 19: - return presence_e::optional; - case 146: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); } - -// Value ::= OPEN TYPE -uint64_t& path_switch_request_ack_ies_o::value_c::amf_ue_ngap_id() +uint16_t& ue_context_mod_request_ies_o::value_c::idx_to_rfsp() { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); } -uint64_t& path_switch_request_ack_ies_o::value_c::ran_ue_ngap_id() +ue_aggregate_maximum_bit_rate_s& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); } -ue_security_cap_s& path_switch_request_ack_ies_o::value_c::ue_security_cap() +ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); + assert_choice_type(types::ue_security_cap, type_, "Value"); return c.get(); } -security_context_s& path_switch_request_ack_ies_o::value_c::security_context() -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -new_security_context_ind_e& path_switch_request_ack_ies_o::value_c::new_security_context_ind() -{ - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_switched_list_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_switched_list() -{ - assert_choice_type("PDUSessionResourceSwitchedList", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_released_list_ps_ack_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_released_list_ps_ack() +core_network_assist_info_s& ue_context_mod_request_ies_o::value_c::core_network_assist_info() { - assert_choice_type("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::core_network_assist_info, type_, "Value"); + return c.get(); } -allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() +emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::emergency_fallback_ind, type_, "Value"); + return c.get(); } -core_network_assist_info_s& path_switch_request_ack_ies_o::value_c::core_network_assist_info() +uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::new_amf_ue_ngap_id, type_, "Value"); + return c.get(); } rrc_inactive_transition_report_request_e& -path_switch_request_ack_ies_o::value_c::rrc_inactive_transition_report_request() +ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); return c.get(); } -crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -redirection_voice_fallback_e& path_switch_request_ack_ies_o::value_c::redirection_voice_fallback() -{ - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_ack_ies_o::value_c::amf_ue_ngap_id() const +const uint64_t& ue_context_mod_request_ies_o::value_c::amf_ue_ngap_id() const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); return c.get(); } -const uint64_t& path_switch_request_ack_ies_o::value_c::ran_ue_ngap_id() const +const uint64_t& ue_context_mod_request_ies_o::value_c::ran_ue_ngap_id() const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); return c.get(); } -const ue_security_cap_s& path_switch_request_ack_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const security_context_s& path_switch_request_ack_ies_o::value_c::security_context() const +const uint16_t& ue_context_mod_request_ies_o::value_c::ran_paging_prio() const { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ran_paging_prio, type_, "Value"); + return c.get(); } -const new_security_context_ind_e& path_switch_request_ack_ies_o::value_c::new_security_context_ind() const +const fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() const { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); } -const pdu_session_res_switched_list_l& path_switch_request_ack_ies_o::value_c::pdu_session_res_switched_list() const +const uint16_t& ue_context_mod_request_ies_o::value_c::idx_to_rfsp() const { - assert_choice_type("PDUSessionResourceSwitchedList", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::idx_to_rfsp, type_, "Value"); + return c.get(); } -const pdu_session_res_released_list_ps_ack_l& -path_switch_request_ack_ies_o::value_c::pdu_session_res_released_list_ps_ack() const +const ue_aggregate_maximum_bit_rate_s& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const { - assert_choice_type("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ue_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); } -const allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() const +const ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() const { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); } -const core_network_assist_info_s& path_switch_request_ack_ies_o::value_c::core_network_assist_info() const +const core_network_assist_info_s& ue_context_mod_request_ies_o::value_c::core_network_assist_info() const { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); + assert_choice_type(types::core_network_assist_info, type_, "Value"); return c.get(); } -const rrc_inactive_transition_report_request_e& -path_switch_request_ack_ies_o::value_c::rrc_inactive_transition_report_request() const -{ - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const redirection_voice_fallback_e& path_switch_request_ack_ies_o::value_c::redirection_voice_fallback() const -{ - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); -} -void path_switch_request_ack_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::ue_security_cap: - c.destroy(); - break; - case types::security_context: - c.destroy(); - break; - case types::pdu_session_res_switched_list: - c.destroy(); - break; - case types::pdu_session_res_released_list_ps_ack: - c.destroy(); - break; - case types::allowed_nssai: - c.destroy(); - break; - case types::core_network_assist_info: - c.destroy(); - break; - case types::crit_diagnostics: - c.destroy(); - break; - default: - break; - } -} -void path_switch_request_ack_ies_o::value_c::set(types::options e) +const emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ue_security_cap: - c.init(); - break; - case types::security_context: - c.init(); - break; - case types::new_security_context_ind: - break; - case types::pdu_session_res_switched_list: - c.init(); - break; - case types::pdu_session_res_released_list_ps_ack: - c.init(); - break; - case types::allowed_nssai: - c.init(); - break; - case types::core_network_assist_info: - c.init(); - break; - case types::rrc_inactive_transition_report_request: - break; - case types::crit_diagnostics: - c.init(); - break; - case types::redirection_voice_fallback: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); - } + assert_choice_type(types::emergency_fallback_ind, type_, "Value"); + return c.get(); } -path_switch_request_ack_ies_o::value_c::value_c(const path_switch_request_ack_ies_o::value_c& other) +const uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ue_security_cap: - c.init(other.c.get()); - break; - case types::security_context: - c.init(other.c.get()); - break; - case types::new_security_context_ind: - c.init(other.c.get()); - break; - case types::pdu_session_res_switched_list: - c.init(other.c.get()); - break; - case types::pdu_session_res_released_list_ps_ack: - c.init(other.c.get()); - break; - case types::allowed_nssai: - c.init(other.c.get()); - break; - case types::core_network_assist_info: - c.init(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.init(other.c.get()); - break; - case types::crit_diagnostics: - c.init(other.c.get()); - break; - case types::redirection_voice_fallback: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); - } + assert_choice_type(types::new_amf_ue_ngap_id, type_, "Value"); + return c.get(); } -path_switch_request_ack_ies_o::value_c& path_switch_request_ack_ies_o::value_c:: - operator=(const path_switch_request_ack_ies_o::value_c& other) +const rrc_inactive_transition_report_request_e& +ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() const { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ue_security_cap: - c.set(other.c.get()); - break; - case types::security_context: - c.set(other.c.get()); - break; - case types::new_security_context_ind: - c.set(other.c.get()); - break; - case types::pdu_session_res_switched_list: - c.set(other.c.get()); - break; - case types::pdu_session_res_released_list_ps_ack: - c.set(other.c.get()); - break; - case types::allowed_nssai: - c.set(other.c.get()); - break; - case types::core_network_assist_info: - c.set(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.set(other.c.get()); - break; - case types::crit_diagnostics: - c.set(other.c.get()); - break; - case types::redirection_voice_fallback: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); - } - - return *this; + assert_choice_type(types::rrc_inactive_transition_report_request, type_, "Value"); + return c.get(); } -void path_switch_request_ack_ies_o::value_c::to_json(json_writer& j) const +void ue_context_mod_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -34617,58 +34594,43 @@ void path_switch_request_ack_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); - c.get().to_json(j); - break; - case types::security_context: - j.write_fieldname("SecurityContext"); - c.get().to_json(j); + case types::ran_paging_prio: + j.write_int("INTEGER (1..256)", c.get()); break; - case types::new_security_context_ind: - j.write_str("NewSecurityContextInd", "true"); + case types::security_key: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_switched_list: - j.start_array("PDUSessionResourceSwitchedList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::idx_to_rfsp: + j.write_int("INTEGER (1..256,...)", c.get()); break; - case types::pdu_session_res_released_list_ps_ack: - j.start_array("PDUSessionResourceReleasedListPSAck"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::ue_aggregate_maximum_bit_rate: + j.write_fieldname("UEAggregateMaximumBitRate"); + c.get().to_json(j); break; - case types::allowed_nssai: - j.start_array("AllowedNSSAI"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); + c.get().to_json(j); break; case types::core_network_assist_info: j.write_fieldname("CoreNetworkAssistanceInformation"); c.get().to_json(j); break; - case types::rrc_inactive_transition_report_request: - j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + case types::emergency_fallback_ind: + j.write_fieldname("EmergencyFallbackIndicator"); + c.get().to_json(j); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::new_amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::redirection_voice_fallback: - j.write_str("RedirectionVoiceFallback", c.get().to_string()); + case types::rrc_inactive_transition_report_request: + j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); break; default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE path_switch_request_ack_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -34678,43 +34640,40 @@ SRSASN_CODE path_switch_request_ack_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::security_context: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_paging_prio: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); break; - case types::new_security_context_ind: - HANDLE_CODE(c.get().pack(bref)); + case types::security_key: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::pdu_session_res_switched_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::idx_to_rfsp: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::pdu_session_res_released_list_ps_ack: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; - case types::allowed_nssai: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); + case types::ue_security_cap: + HANDLE_CODE(c.get().pack(bref)); break; case types::core_network_assist_info: HANDLE_CODE(c.get().pack(bref)); break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().pack(bref)); + case types::emergency_fallback_ind: + HANDLE_CODE(c.get().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::new_amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().pack(bref)); + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ack_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -34724,69 +34683,65 @@ SRSASN_CODE path_switch_request_ack_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ue_security_cap: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::security_context: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_paging_prio: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); break; - case types::new_security_context_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::security_key: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::pdu_session_res_switched_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::idx_to_rfsp: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::pdu_session_res_released_list_ps_ack: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::ue_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::allowed_nssai: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); + case types::ue_security_cap: + HANDLE_CODE(c.get().unpack(bref)); break; case types::core_network_assist_info: HANDLE_CODE(c.get().unpack(bref)); break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().unpack(bref)); + case types::emergency_fallback_ind: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::new_amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::redirection_voice_fallback: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_inactive_transition_report_request: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string path_switch_request_ack_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "UESecurityCapabilities", - "SecurityContext", - "NewSecurityContextInd", - "PDUSessionResourceSwitchedList", - "PDUSessionResourceReleasedListPSAck", - "AllowedNSSAI", + "INTEGER (1..256)", + "BIT STRING", + "INTEGER (1..256,...)", + "UEAggregateMaximumBitRate", + "UESecurityCapabilities", "CoreNetworkAssistanceInformation", - "RRCInactiveTransitionReportRequest", - "CriticalityDiagnostics", - "RedirectionVoiceFallback"}; - return convert_enum_idx(options, 12, value, "path_switch_request_ack_ies_o::value_c::types"); + "EmergencyFallbackIndicator", + "INTEGER (0..1099511627775)", + "RRCInactiveTransitionReportRequest"}; + return convert_enum_idx(options, 11, value, "ue_context_mod_request_ies_o::value_c::types"); } -// PathSwitchRequestFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t path_switch_request_fail_ies_o::idx_to_id(uint32_t idx) +// UEContextModificationResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_mod_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 69, 19}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {10, 85, 92, 121, 19}; + return map_enum_number(options, 5, idx, "id"); } -bool path_switch_request_fail_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_mod_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 69, 19}; + static const uint32_t options[] = {10, 85, 92, 121, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -34794,14 +34749,16 @@ bool path_switch_request_fail_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e path_switch_request_fail_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_mod_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::ignore; case 85: return crit_e::ignore; - case 69: + case 92: + return crit_e::ignore; + case 121: return crit_e::ignore; case 19: return crit_e::ignore; @@ -34810,7 +34767,7 @@ crit_e path_switch_request_fail_ies_o::get_crit(const uint32_t& id) } return {}; } -path_switch_request_fail_ies_o::value_c path_switch_request_fail_ies_o::get_value(const uint32_t& id) +ue_context_mod_resp_ies_o::value_c ue_context_mod_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -34820,8 +34777,11 @@ path_switch_request_fail_ies_o::value_c path_switch_request_fail_ies_o::get_valu case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 69: - ret.set(value_c::types::pdu_session_res_released_list_ps_fail); + case 92: + ret.set(value_c::types::rrc_state); + break; + case 121: + ret.set(value_c::types::user_location_info); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -34831,15 +34791,17 @@ path_switch_request_fail_ies_o::value_c path_switch_request_fail_ies_o::get_valu } return ret; } -presence_e path_switch_request_fail_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_mod_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 69: - return presence_e::mandatory; + case 92: + return presence_e::optional; + case 121: + return presence_e::optional; case 19: return presence_e::optional; default: @@ -34849,53 +34811,11 @@ presence_e path_switch_request_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& path_switch_request_fail_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& path_switch_request_fail_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_released_list_ps_fail_l& -path_switch_request_fail_ies_o::value_c::pdu_session_res_released_list_ps_fail() -{ - assert_choice_type("PDUSessionResourceReleasedListPSFail", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_fail_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_fail_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_released_list_ps_fail_l& -path_switch_request_fail_ies_o::value_c::pdu_session_res_released_list_ps_fail() const -{ - assert_choice_type("PDUSessionResourceReleasedListPSFail", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void path_switch_request_fail_ies_o::value_c::destroy_() +void ue_context_mod_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_released_list_ps_fail: - c.destroy(); + case types::user_location_info: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -34904,7 +34824,7 @@ void path_switch_request_fail_ies_o::value_c::destroy_() break; } } -void path_switch_request_fail_ies_o::value_c::set(types::options e) +void ue_context_mod_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -34913,8 +34833,10 @@ void path_switch_request_fail_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_released_list_ps_fail: - c.init(); + case types::rrc_state: + break; + case types::user_location_info: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -34922,10 +34844,10 @@ void path_switch_request_fail_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); } } -path_switch_request_fail_ies_o::value_c::value_c(const path_switch_request_fail_ies_o::value_c& other) +ue_context_mod_resp_ies_o::value_c::value_c(const ue_context_mod_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -34935,8 +34857,11 @@ path_switch_request_fail_ies_o::value_c::value_c(const path_switch_request_fail_ case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_released_list_ps_fail: - c.init(other.c.get()); + case types::rrc_state: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -34944,11 +34869,11 @@ path_switch_request_fail_ies_o::value_c::value_c(const path_switch_request_fail_ case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); } } -path_switch_request_fail_ies_o::value_c& path_switch_request_fail_ies_o::value_c:: - operator=(const path_switch_request_fail_ies_o::value_c& other) +ue_context_mod_resp_ies_o::value_c& +ue_context_mod_resp_ies_o::value_c::operator=(const ue_context_mod_resp_ies_o::value_c& other) { if (this == &other) { return *this; @@ -34961,8 +34886,11 @@ path_switch_request_fail_ies_o::value_c& path_switch_request_fail_ies_o::value_c case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_released_list_ps_fail: - c.set(other.c.get()); + case types::rrc_state: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -34970,12 +34898,62 @@ path_switch_request_fail_ies_o::value_c& path_switch_request_fail_ies_o::value_c case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); } return *this; } -void path_switch_request_fail_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_context_mod_resp_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_context_mod_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +rrc_state_e& ue_context_mod_resp_ies_o::value_c::rrc_state() +{ + assert_choice_type(types::rrc_state, type_, "Value"); + return c.get(); +} +user_location_info_c& ue_context_mod_resp_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const rrc_state_e& ue_context_mod_resp_ies_o::value_c::rrc_state() const +{ + assert_choice_type(types::rrc_state, type_, "Value"); + return c.get(); +} +const user_location_info_c& ue_context_mod_resp_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ue_context_mod_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -34985,23 +34963,23 @@ void path_switch_request_fail_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::pdu_session_res_released_list_ps_fail: - j.start_array("PDUSessionResourceReleasedListPSFail"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::rrc_state: + j.write_str("RRCState", c.get().to_string()); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE path_switch_request_fail_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -35011,19 +34989,22 @@ SRSASN_CODE path_switch_request_fail_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_released_list_ps_fail: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::rrc_state: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_fail_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -35033,37 +35014,41 @@ SRSASN_CODE path_switch_request_fail_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_released_list_ps_fail: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::rrc_state: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string path_switch_request_fail_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", - "PDUSessionResourceReleasedListPSFail", + "RRCState", + "UserLocationInformation", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 4, value, "path_switch_request_fail_ies_o::value_c::types"); + return convert_enum_idx(options, 5, value, "ue_context_mod_resp_ies_o::value_c::types"); } -// PathSwitchRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t path_switch_request_ies_o::idx_to_id(uint32_t idx) +// UEContextReleaseCommand-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_release_cmd_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {85, 100, 121, 119, 76, 57}; - return map_enum_number(options, 6, idx, "id"); + static const uint32_t options[] = {114, 15}; + return map_enum_number(options, 2, idx, "id"); } -bool path_switch_request_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_release_cmd_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {85, 100, 121, 119, 76, 57}; + static const uint32_t options[] = {114, 15}; for (const auto& o : options) { if (o == id) { return true; @@ -35071,68 +35056,40 @@ bool path_switch_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e path_switch_request_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_release_cmd_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 85: - return crit_e::reject; - case 100: - return crit_e::reject; - case 121: - return crit_e::ignore; - case 119: - return crit_e::ignore; - case 76: + case 114: return crit_e::reject; - case 57: + case 15: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -path_switch_request_ies_o::value_c path_switch_request_ies_o::get_value(const uint32_t& id) +ue_context_release_cmd_ies_o::value_c ue_context_release_cmd_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 100: - ret.set(value_c::types::source_amf_ue_ngap_id); - break; - case 121: - ret.set(value_c::types::user_location_info); - break; - case 119: - ret.set(value_c::types::ue_security_cap); - break; - case 76: - ret.set(value_c::types::pdu_session_res_to_be_switched_dl_list); + case 114: + ret.set(value_c::types::ue_ngap_ids); break; - case 57: - ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ps_req); + case 15: + ret.set(value_c::types::cause); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e path_switch_request_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_release_cmd_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 85: - return presence_e::mandatory; - case 100: - return presence_e::mandatory; - case 121: - return presence_e::mandatory; - case 119: + case 114: return presence_e::mandatory; - case 76: + case 15: return presence_e::mandatory; - case 57: - return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -35140,376 +35097,159 @@ presence_e path_switch_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& path_switch_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& path_switch_request_ies_o::value_c::source_amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& path_switch_request_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_to_be_switched_dl_list_l& path_switch_request_ies_o::value_c::pdu_session_res_to_be_switched_dl_list() -{ - assert_choice_type("PDUSessionResourceToBeSwitchedDLList", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_failed_to_setup_list_ps_req_l& -path_switch_request_ies_o::value_c::pdu_session_res_failed_to_setup_list_ps_req() -{ - assert_choice_type("PDUSessionResourceFailedToSetupListPSReq", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_ies_o::value_c::source_amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& path_switch_request_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_to_be_switched_dl_list_l& -path_switch_request_ies_o::value_c::pdu_session_res_to_be_switched_dl_list() const -{ - assert_choice_type("PDUSessionResourceToBeSwitchedDLList", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_failed_to_setup_list_ps_req_l& -path_switch_request_ies_o::value_c::pdu_session_res_failed_to_setup_list_ps_req() const -{ - assert_choice_type("PDUSessionResourceFailedToSetupListPSReq", type_.to_string(), "Value"); - return c.get(); -} -void path_switch_request_ies_o::value_c::destroy_() +void ue_context_release_cmd_ies_o::value_c::destroy_() { switch (type_) { - case types::user_location_info: - c.destroy(); - break; - case types::ue_security_cap: - c.destroy(); - break; - case types::pdu_session_res_to_be_switched_dl_list: - c.destroy(); + case types::ue_ngap_ids: + c.destroy(); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - c.destroy(); + case types::cause: + c.destroy(); break; default: break; } } -void path_switch_request_ies_o::value_c::set(types::options e) +void ue_context_release_cmd_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ran_ue_ngap_id: - break; - case types::source_amf_ue_ngap_id: - break; - case types::user_location_info: - c.init(); - break; - case types::ue_security_cap: - c.init(); - break; - case types::pdu_session_res_to_be_switched_dl_list: - c.init(); + case types::ue_ngap_ids: + c.init(); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - c.init(); + case types::cause: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); } } -path_switch_request_ies_o::value_c::value_c(const path_switch_request_ies_o::value_c& other) +ue_context_release_cmd_ies_o::value_c::value_c(const ue_context_release_cmd_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::source_amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::user_location_info: - c.init(other.c.get()); - break; - case types::ue_security_cap: - c.init(other.c.get()); - break; - case types::pdu_session_res_to_be_switched_dl_list: - c.init(other.c.get()); + case types::ue_ngap_ids: + c.init(other.c.get()); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); } } -path_switch_request_ies_o::value_c& path_switch_request_ies_o::value_c:: - operator=(const path_switch_request_ies_o::value_c& other) +ue_context_release_cmd_ies_o::value_c& +ue_context_release_cmd_ies_o::value_c::operator=(const ue_context_release_cmd_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::source_amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::user_location_info: - c.set(other.c.get()); - break; - case types::ue_security_cap: - c.set(other.c.get()); - break; - case types::pdu_session_res_to_be_switched_dl_list: - c.set(other.c.get()); + case types::ue_ngap_ids: + c.set(other.c.get()); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - c.set(other.c.get()); + case types::cause: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); } return *this; } -void path_switch_request_ies_o::value_c::to_json(json_writer& j) const +ue_ngap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_ngap_ids() +{ + assert_choice_type(types::ue_ngap_ids, type_, "Value"); + return c.get(); +} +cause_c& ue_context_release_cmd_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const ue_ngap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_ngap_ids() const +{ + assert_choice_type(types::ue_ngap_ids, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_release_cmd_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +void ue_context_release_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::source_amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); - break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); - c.get().to_json(j); - break; - case types::pdu_session_res_to_be_switched_dl_list: - j.start_array("PDUSessionResourceToBeSwitchedDLList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::ue_ngap_ids: + j.write_fieldname("UE-NGAP-IDs"); + c.get().to_json(j); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - j.start_array("PDUSessionResourceFailedToSetupListPSReq"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE path_switch_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_cmd_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::source_amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_to_be_switched_dl_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::ue_ngap_ids: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::source_amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_to_be_switched_dl_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::ue_ngap_ids: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_failed_to_setup_list_ps_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "path_switch_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string path_switch_request_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_cmd_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..4294967295)", - "INTEGER (0..1099511627775)", - "UserLocationInformation", - "UESecurityCapabilities", - "PDUSessionResourceToBeSwitchedDLList", - "PDUSessionResourceFailedToSetupListPSReq"}; - return convert_enum_idx(options, 6, value, "path_switch_request_ies_o::value_c::types"); + static const char* options[] = {"UE-NGAP-IDs", "Cause"}; + return convert_enum_idx(options, 2, value, "ue_context_release_cmd_ies_o::value_c::types"); } -// Value ::= OPEN TYPE -void ngap_private_ies_empty_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.end_obj(); -} -SRSASN_CODE ngap_private_ies_empty_o::value_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - return SRSASN_SUCCESS; -} -SRSASN_CODE ngap_private_ies_empty_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - return SRSASN_SUCCESS; -} - -std::string ngap_private_ies_empty_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {}; - return convert_enum_idx(options, 0, value, "ngap_private_ies_empty_o::value_c::types"); -} - -// RANConfigurationUpdateAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ran_cfg_upd_ack_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {19}; - return map_enum_number(options, 1, idx, "id"); -} -bool ran_cfg_upd_ack_ies_o::is_id_valid(const uint32_t& id) -{ - return 19 == id; -} -crit_e ran_cfg_upd_ack_ies_o::get_crit(const uint32_t& id) -{ - if (id == 19) { - return crit_e::ignore; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} -ran_cfg_upd_ack_ies_o::value_c ran_cfg_upd_ack_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - if (id != 19) { - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e ran_cfg_upd_ack_ies_o::get_presence(const uint32_t& id) -{ - if (id == 19) { - return presence_e::optional; - } - asn1::log_error("The id=%d is not recognized", id); - return {}; -} - -// Value ::= OPEN TYPE -void ran_cfg_upd_ack_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("CriticalityDiagnostics"); - c.to_json(j); - j.end_obj(); -} -SRSASN_CODE ran_cfg_upd_ack_ies_o::value_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; -} -SRSASN_CODE ran_cfg_upd_ack_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; -} - -std::string ran_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"CriticalityDiagnostics"}; - return convert_enum_idx(options, 1, value, "ran_cfg_upd_ack_ies_o::value_c::types"); -} - -// RANConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ran_cfg_upd_fail_ies_o::idx_to_id(uint32_t idx) +// UEContextReleaseComplete-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_release_complete_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {15, 107, 19}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {10, 85, 121, 32, 60, 19}; + return map_enum_number(options, 6, idx, "id"); } -bool ran_cfg_upd_fail_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_release_complete_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {15, 107, 19}; + static const uint32_t options[] = {10, 85, 121, 32, 60, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -35517,13 +35257,19 @@ bool ran_cfg_upd_fail_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ran_cfg_upd_fail_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_release_complete_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 15: + case 10: return crit_e::ignore; - case 107: + case 85: + return crit_e::ignore; + case 121: + return crit_e::ignore; + case 32: return crit_e::ignore; + case 60: + return crit_e::reject; case 19: return crit_e::ignore; default: @@ -35531,15 +35277,24 @@ crit_e ran_cfg_upd_fail_ies_o::get_crit(const uint32_t& id) } return {}; } -ran_cfg_upd_fail_ies_o::value_c ran_cfg_upd_fail_ies_o::get_value(const uint32_t& id) +ue_context_release_complete_ies_o::value_c ue_context_release_complete_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 15: - ret.set(value_c::types::cause); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 107: - ret.set(value_c::types::time_to_wait); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 121: + ret.set(value_c::types::user_location_info); + break; + case 32: + ret.set(value_c::types::info_on_recommended_cells_and_ran_nodes_for_paging); + break; + case 60: + ret.set(value_c::types::pdu_session_res_list_cxt_rel_cpl); break; case 19: ret.set(value_c::types::crit_diagnostics); @@ -35549,12 +35304,18 @@ ran_cfg_upd_fail_ies_o::value_c ran_cfg_upd_fail_ies_o::get_value(const uint32_t } return ret; } -presence_e ran_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_release_complete_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 15: + case 10: return presence_e::mandatory; - case 107: + case 85: + return presence_e::mandatory; + case 121: + return presence_e::optional; + case 32: + return presence_e::optional; + case 60: return presence_e::optional; case 19: return presence_e::optional; @@ -35565,41 +35326,17 @@ presence_e ran_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& ran_cfg_upd_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& ran_cfg_upd_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ran_cfg_upd_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ran_cfg_upd_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& ran_cfg_upd_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ran_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ran_cfg_upd_fail_ies_o::value_c::destroy_() +void ue_context_release_complete_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::user_location_info: + c.destroy(); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + c.destroy(); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + c.destroy(); break; case types::crit_diagnostics: c.destroy(); @@ -35608,15 +35345,23 @@ void ran_cfg_upd_fail_ies_o::value_c::destroy_() break; } } -void ran_cfg_upd_fail_ies_o::value_c::set(types::options e) +void ue_context_release_complete_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::cause: - c.init(); + case types::amf_ue_ngap_id: break; - case types::time_to_wait: + case types::ran_ue_ngap_id: + break; + case types::user_location_info: + c.init(); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + c.init(); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + c.init(); break; case types::crit_diagnostics: c.init(); @@ -35624,18 +35369,27 @@ void ran_cfg_upd_fail_ies_o::value_c::set(types::options e) case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); } } -ran_cfg_upd_fail_ies_o::value_c::value_c(const ran_cfg_upd_fail_ies_o::value_c& other) +ue_context_release_complete_ies_o::value_c::value_c(const ue_context_release_complete_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::cause: - c.init(other.c.get()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::time_to_wait: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); + break; + case types::user_location_info: + c.init(other.c.get()); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + c.init(other.c.get()); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + c.init(other.c.get()); break; case types::crit_diagnostics: c.init(other.c.get()); @@ -35643,22 +35397,31 @@ ran_cfg_upd_fail_ies_o::value_c::value_c(const ran_cfg_upd_fail_ies_o::value_c& case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); } } -ran_cfg_upd_fail_ies_o::value_c& ran_cfg_upd_fail_ies_o::value_c:: - operator=(const ran_cfg_upd_fail_ies_o::value_c& other) +ue_context_release_complete_ies_o::value_c& +ue_context_release_complete_ies_o::value_c::operator=(const ue_context_release_complete_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::cause: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::time_to_wait: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); + break; + case types::user_location_info: + c.set(other.c.get()); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + c.set(other.c.get()); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + c.set(other.c.get()); break; case types::crit_diagnostics: c.set(other.c.get()); @@ -35666,85 +35429,185 @@ ran_cfg_upd_fail_ies_o::value_c& ran_cfg_upd_fail_ies_o::value_c:: case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); } return *this; } -void ran_cfg_upd_fail_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_context_release_complete_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_context_release_complete_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +user_location_info_c& ue_context_release_complete_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +info_on_recommended_cells_and_ran_nodes_for_paging_s& +ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_ran_nodes_for_paging() +{ + assert_choice_type(types::info_on_recommended_cells_and_ran_nodes_for_paging, type_, "Value"); + return c.get(); +} +pdu_session_res_list_cxt_rel_cpl_l& ue_context_release_complete_ies_o::value_c::pdu_session_res_list_cxt_rel_cpl() +{ + assert_choice_type(types::pdu_session_res_list_cxt_rel_cpl, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_release_complete_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_release_complete_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const user_location_info_c& ue_context_release_complete_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const info_on_recommended_cells_and_ran_nodes_for_paging_s& +ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_ran_nodes_for_paging() const +{ + assert_choice_type(types::info_on_recommended_cells_and_ran_nodes_for_paging, type_, "Value"); + return c.get(); +} +const pdu_session_res_list_cxt_rel_cpl_l& +ue_context_release_complete_ies_o::value_c::pdu_session_res_list_cxt_rel_cpl() const +{ + assert_choice_type(types::pdu_session_res_list_cxt_rel_cpl, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ue_context_release_complete_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::time_to_wait: - j.write_str("TimeToWait", c.get().to_string()); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + j.write_fieldname("InfoOnRecommendedCellsAndRANNodesForPaging"); + c.get().to_json(j); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + j.start_array("PDUSessionResourceListCxtRelCpl"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; case types::crit_diagnostics: j.write_fieldname("CriticalityDiagnostics"); c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ran_cfg_upd_fail_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_complete_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::time_to_wait: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_fail_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_complete_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::time_to_wait: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::info_on_recommended_cells_and_ran_nodes_for_paging: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_list_cxt_rel_cpl: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; case types::crit_diagnostics: HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ran_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_complete_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 3, value, "ran_cfg_upd_fail_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", + "INTEGER (0..4294967295)", + "UserLocationInformation", + "InfoOnRecommendedCellsAndRANNodesForPaging", + "PDUSessionResourceListCxtRelCpl", + "CriticalityDiagnostics"}; + return convert_enum_idx(options, 6, value, "ue_context_release_complete_ies_o::value_c::types"); } -// RANConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ran_cfg_upd_ies_o::idx_to_id(uint32_t idx) +// UEContextReleaseRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_context_release_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {82, 102, 21, 27}; + static const uint32_t options[] = {10, 85, 133, 15}; return map_enum_number(options, 4, idx, "id"); } -bool ran_cfg_upd_ies_o::is_id_valid(const uint32_t& id) +bool ue_context_release_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {82, 102, 21, 27}; + static const uint32_t options[] = {10, 85, 133, 15}; for (const auto& o : options) { if (o == id) { return true; @@ -35752,54 +35615,54 @@ bool ran_cfg_upd_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ran_cfg_upd_ies_o::get_crit(const uint32_t& id) +crit_e ue_context_release_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 82: - return crit_e::ignore; - case 102: + case 10: return crit_e::reject; - case 21: - return crit_e::ignore; - case 27: + case 85: + return crit_e::reject; + case 133: + return crit_e::reject; + case 15: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ran_cfg_upd_ies_o::value_c ran_cfg_upd_ies_o::get_value(const uint32_t& id) +ue_context_release_request_ies_o::value_c ue_context_release_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 82: - ret.set(value_c::types::ran_node_name); + case 10: + ret.set(value_c::types::amf_ue_ngap_id); break; - case 102: - ret.set(value_c::types::supported_ta_list); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 21: - ret.set(value_c::types::default_paging_drx); + case 133: + ret.set(value_c::types::pdu_session_res_list_cxt_rel_req); break; - case 27: - ret.set(value_c::types::global_ran_node_id); + case 15: + ret.set(value_c::types::cause); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ran_cfg_upd_ies_o::get_presence(const uint32_t& id) +presence_e ue_context_release_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 82: - return presence_e::optional; - case 102: - return presence_e::optional; - case 21: - return presence_e::optional; - case 27: + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 133: return presence_e::optional; + case 15: + return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); } @@ -35807,219 +35670,218 @@ presence_e ran_cfg_upd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -printable_string<1, 150, true, true>& ran_cfg_upd_ies_o::value_c::ran_node_name() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -supported_ta_list_l& ran_cfg_upd_ies_o::value_c::supported_ta_list() -{ - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); -} -paging_drx_e& ran_cfg_upd_ies_o::value_c::default_paging_drx() -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -global_ran_node_id_c& ran_cfg_upd_ies_o::value_c::global_ran_node_id() -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& ran_cfg_upd_ies_o::value_c::ran_node_name() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const supported_ta_list_l& ran_cfg_upd_ies_o::value_c::supported_ta_list() const -{ - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); -} -const paging_drx_e& ran_cfg_upd_ies_o::value_c::default_paging_drx() const -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const global_ran_node_id_c& ran_cfg_upd_ies_o::value_c::global_ran_node_id() const -{ - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); -} -void ran_cfg_upd_ies_o::value_c::destroy_() +void ue_context_release_request_ies_o::value_c::destroy_() { switch (type_) { - case types::ran_node_name: - c.destroy >(); - break; - case types::supported_ta_list: - c.destroy(); + case types::pdu_session_res_list_cxt_rel_req: + c.destroy(); break; - case types::global_ran_node_id: - c.destroy(); + case types::cause: + c.destroy(); break; default: break; } } -void ran_cfg_upd_ies_o::value_c::set(types::options e) +void ue_context_release_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ran_node_name: - c.init >(); + case types::amf_ue_ngap_id: break; - case types::supported_ta_list: - c.init(); + case types::ran_ue_ngap_id: break; - case types::default_paging_drx: + case types::pdu_session_res_list_cxt_rel_req: + c.init(); break; - case types::global_ran_node_id: - c.init(); + case types::cause: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); } } -ran_cfg_upd_ies_o::value_c::value_c(const ran_cfg_upd_ies_o::value_c& other) +ue_context_release_request_ies_o::value_c::value_c(const ue_context_release_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ran_node_name: - c.init(other.c.get >()); + case types::amf_ue_ngap_id: + c.init(other.c.get()); break; - case types::supported_ta_list: - c.init(other.c.get()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::default_paging_drx: - c.init(other.c.get()); + case types::pdu_session_res_list_cxt_rel_req: + c.init(other.c.get()); break; - case types::global_ran_node_id: - c.init(other.c.get()); + case types::cause: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); } } -ran_cfg_upd_ies_o::value_c& ran_cfg_upd_ies_o::value_c::operator=(const ran_cfg_upd_ies_o::value_c& other) +ue_context_release_request_ies_o::value_c& +ue_context_release_request_ies_o::value_c::operator=(const ue_context_release_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ran_node_name: - c.set(other.c.get >()); - break; - case types::supported_ta_list: - c.set(other.c.get()); + case types::amf_ue_ngap_id: + c.set(other.c.get()); break; - case types::default_paging_drx: - c.set(other.c.get()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::global_ran_node_id: - c.set(other.c.get()); + case types::pdu_session_res_list_cxt_rel_req: + c.set(other.c.get()); + break; + case types::cause: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); } return *this; } -void ran_cfg_upd_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_context_release_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_context_release_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +pdu_session_res_list_cxt_rel_req_l& ue_context_release_request_ies_o::value_c::pdu_session_res_list_cxt_rel_req() +{ + assert_choice_type(types::pdu_session_res_list_cxt_rel_req, type_, "Value"); + return c.get(); +} +cause_c& ue_context_release_request_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_release_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_release_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const pdu_session_res_list_cxt_rel_req_l& +ue_context_release_request_ies_o::value_c::pdu_session_res_list_cxt_rel_req() const +{ + assert_choice_type(types::pdu_session_res_list_cxt_rel_req, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_release_request_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +void ue_context_release_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ran_node_name: - j.write_str("PrintableString", c.get >().to_string()); + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::supported_ta_list: - j.start_array("SupportedTAList"); - for (const auto& e1 : c.get()) { + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::pdu_session_res_list_cxt_rel_req: + j.start_array("PDUSessionResourceListCxtRelReq"); + for (const auto& e1 : c.get()) { e1.to_json(j); } j.end_array(); break; - case types::default_paging_drx: - j.write_str("PagingDRX", c.get().to_string()); - break; - case types::global_ran_node_id: - j.write_fieldname("GlobalRANNodeID"); - c.get().to_json(j); + case types::cause: + j.write_fieldname("Cause"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ran_cfg_upd_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_node_name: - HANDLE_CODE((c.get >().pack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::supported_ta_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::default_paging_drx: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_res_list_cxt_rel_req: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().pack(bref)); + case types::cause: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_node_name: - HANDLE_CODE((c.get >().unpack(bref))); + case types::amf_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::supported_ta_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::default_paging_drx: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_res_list_cxt_rel_req: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); break; - case types::global_ran_node_id: - HANDLE_CODE(c.get().unpack(bref)); + case types::cause: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ran_cfg_upd_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ran_cfg_upd_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"PrintableString", "SupportedTAList", "PagingDRX", "GlobalRANNodeID"}; - return convert_enum_idx(options, 4, value, "ran_cfg_upd_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "PDUSessionResourceListCxtRelReq", "Cause"}; + return convert_enum_idx(options, 4, value, "ue_context_release_request_ies_o::value_c::types"); } -// RRCInactiveTransitionReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t rrc_inactive_transition_report_ies_o::idx_to_id(uint32_t idx) +// UERadioCapabilityCheckRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_radio_cap_check_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 92, 121}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {10, 85, 117}; + return map_enum_number(options, 3, idx, "id"); } -bool rrc_inactive_transition_report_ies_o::is_id_valid(const uint32_t& id) +bool ue_radio_cap_check_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 92, 121}; + static const uint32_t options[] = {10, 85, 117}; for (const auto& o : options) { if (o == id) { return true; @@ -36027,23 +35889,21 @@ bool rrc_inactive_transition_report_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e rrc_inactive_transition_report_ies_o::get_crit(const uint32_t& id) +crit_e ue_radio_cap_check_request_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 92: - return crit_e::ignore; - case 121: + case 117: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -rrc_inactive_transition_report_ies_o::value_c rrc_inactive_transition_report_ies_o::get_value(const uint32_t& id) +ue_radio_cap_check_request_ies_o::value_c ue_radio_cap_check_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -36053,28 +35913,23 @@ rrc_inactive_transition_report_ies_o::value_c rrc_inactive_transition_report_ies case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 92: - ret.set(value_c::types::rrc_state); - break; - case 121: - ret.set(value_c::types::user_location_info); + case 117: + ret.set(value_c::types::ue_radio_cap); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e rrc_inactive_transition_report_ies_o::get_presence(const uint32_t& id) +presence_e ue_radio_cap_check_request_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 92: - return presence_e::mandatory; - case 121: - return presence_e::mandatory; + case 117: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -36082,57 +35937,17 @@ presence_e rrc_inactive_transition_report_ies_o::get_presence(const uint32_t& id } // Value ::= OPEN TYPE -uint64_t& rrc_inactive_transition_report_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& rrc_inactive_transition_report_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -rrc_state_e& rrc_inactive_transition_report_ies_o::value_c::rrc_state() -{ - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& rrc_inactive_transition_report_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& rrc_inactive_transition_report_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& rrc_inactive_transition_report_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const rrc_state_e& rrc_inactive_transition_report_ies_o::value_c::rrc_state() const -{ - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& rrc_inactive_transition_report_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -void rrc_inactive_transition_report_ies_o::value_c::destroy_() +void ue_radio_cap_check_request_ies_o::value_c::destroy_() { switch (type_) { - case types::user_location_info: - c.destroy(); + case types::ue_radio_cap: + c.destroy >(); break; default: break; } } -void rrc_inactive_transition_report_ies_o::value_c::set(types::options e) +void ue_radio_cap_check_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -36141,18 +35956,16 @@ void rrc_inactive_transition_report_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::rrc_state: - break; - case types::user_location_info: - c.init(); + case types::ue_radio_cap: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); } } -rrc_inactive_transition_report_ies_o::value_c::value_c(const rrc_inactive_transition_report_ies_o::value_c& other) +ue_radio_cap_check_request_ies_o::value_c::value_c(const ue_radio_cap_check_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -36162,20 +35975,17 @@ rrc_inactive_transition_report_ies_o::value_c::value_c(const rrc_inactive_transi case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::rrc_state: - c.init(other.c.get()); - break; - case types::user_location_info: - c.init(other.c.get()); + case types::ue_radio_cap: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); } } -rrc_inactive_transition_report_ies_o::value_c& rrc_inactive_transition_report_ies_o::value_c:: - operator=(const rrc_inactive_transition_report_ies_o::value_c& other) +ue_radio_cap_check_request_ies_o::value_c& +ue_radio_cap_check_request_ies_o::value_c::operator=(const ue_radio_cap_check_request_ies_o::value_c& other) { if (this == &other) { return *this; @@ -36188,21 +35998,48 @@ rrc_inactive_transition_report_ies_o::value_c& rrc_inactive_transition_report_ie case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::rrc_state: - c.set(other.c.get()); - break; - case types::user_location_info: - c.set(other.c.get()); + case types::ue_radio_cap: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); } return *this; } -void rrc_inactive_transition_report_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_radio_cap_check_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_radio_cap_check_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ue_radio_cap_check_request_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const uint64_t& ue_radio_cap_check_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_check_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ue_radio_cap_check_request_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +void ue_radio_cap_check_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -36212,19 +36049,15 @@ void rrc_inactive_transition_report_ies_o::value_c::to_json(json_writer& j) cons case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::rrc_state: - j.write_str("RRCState", c.get().to_string()); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); + case types::ue_radio_cap: + j.write_str("OCTET STRING", c.get >().to_string()); break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_check_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -36234,19 +36067,16 @@ SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::pack(bit_ref& bref) c case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::rrc_state: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); + case types::ue_radio_cap: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -36256,35 +36086,31 @@ SRSASN_CODE rrc_inactive_transition_report_ies_o::value_c::unpack(cbit_ref& bref case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::rrc_state: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_radio_cap: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "rrc_inactive_transition_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string rrc_inactive_transition_report_ies_o::value_c::types_opts::to_string() const +const char* ue_radio_cap_check_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "RRCState", "UserLocationInformation"}; - return convert_enum_idx(options, 4, value, "rrc_inactive_transition_report_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING"}; + return convert_enum_idx(options, 3, value, "ue_radio_cap_check_request_ies_o::value_c::types"); } -// RerouteNASRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t reroute_nas_request_ies_o::idx_to_id(uint32_t idx) +// UERadioCapabilityCheckResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_radio_cap_check_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {85, 10, 42, 3, 0}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {10, 85, 30, 19}; + return map_enum_number(options, 4, idx, "id"); } -bool reroute_nas_request_ies_o::is_id_valid(const uint32_t& id) +bool ue_radio_cap_check_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {85, 10, 42, 3, 0}; + static const uint32_t options[] = {10, 85, 30, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -36292,60 +36118,53 @@ bool reroute_nas_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e reroute_nas_request_ies_o::get_crit(const uint32_t& id) +crit_e ue_radio_cap_check_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 85: - return crit_e::reject; case 10: return crit_e::ignore; - case 42: - return crit_e::reject; - case 3: - return crit_e::reject; - case 0: + case 85: + return crit_e::ignore; + case 30: return crit_e::reject; + case 19: + return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -reroute_nas_request_ies_o::value_c reroute_nas_request_ies_o::get_value(const uint32_t& id) +ue_radio_cap_check_resp_ies_o::value_c ue_radio_cap_check_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; case 10: ret.set(value_c::types::amf_ue_ngap_id); break; - case 42: - ret.set(value_c::types::ngap_msg); + case 85: + ret.set(value_c::types::ran_ue_ngap_id); break; - case 3: - ret.set(value_c::types::amf_set_id); + case 30: + ret.set(value_c::types::ims_voice_support_ind); break; - case 0: - ret.set(value_c::types::allowed_nssai); + case 19: + ret.set(value_c::types::crit_diagnostics); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e reroute_nas_request_ies_o::get_presence(const uint32_t& id) +presence_e ue_radio_cap_check_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 85: - return presence_e::mandatory; case 10: - return presence_e::optional; - case 42: return presence_e::mandatory; - case 3: + case 85: return presence_e::mandatory; - case 0: + case 30: + return presence_e::mandatory; + case 19: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -36354,247 +36173,209 @@ presence_e reroute_nas_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& reroute_nas_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& reroute_nas_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& reroute_nas_request_ies_o::value_c::ngap_msg() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<10, false, true>& reroute_nas_request_ies_o::value_c::amf_set_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -allowed_nssai_l& reroute_nas_request_ies_o::value_c::allowed_nssai() -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& reroute_nas_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& reroute_nas_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& reroute_nas_request_ies_o::value_c::ngap_msg() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<10, false, true>& reroute_nas_request_ies_o::value_c::amf_set_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const allowed_nssai_l& reroute_nas_request_ies_o::value_c::allowed_nssai() const -{ - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); -} -void reroute_nas_request_ies_o::value_c::destroy_() +void ue_radio_cap_check_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::ngap_msg: - c.destroy >(); - break; - case types::amf_set_id: - c.destroy >(); - break; - case types::allowed_nssai: - c.destroy(); + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void reroute_nas_request_ies_o::value_c::set(types::options e) +void ue_radio_cap_check_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ran_ue_ngap_id: - break; case types::amf_ue_ngap_id: break; - case types::ngap_msg: - c.init >(); + case types::ran_ue_ngap_id: break; - case types::amf_set_id: - c.init >(); + case types::ims_voice_support_ind: break; - case types::allowed_nssai: - c.init(); + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); } } -reroute_nas_request_ies_o::value_c::value_c(const reroute_nas_request_ies_o::value_c& other) +ue_radio_cap_check_resp_ies_o::value_c::value_c(const ue_radio_cap_check_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; case types::amf_ue_ngap_id: c.init(other.c.get()); break; - case types::ngap_msg: - c.init(other.c.get >()); + case types::ran_ue_ngap_id: + c.init(other.c.get()); break; - case types::amf_set_id: - c.init(other.c.get >()); + case types::ims_voice_support_ind: + c.init(other.c.get()); break; - case types::allowed_nssai: - c.init(other.c.get()); + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); } } -reroute_nas_request_ies_o::value_c& reroute_nas_request_ies_o::value_c:: - operator=(const reroute_nas_request_ies_o::value_c& other) +ue_radio_cap_check_resp_ies_o::value_c& +ue_radio_cap_check_resp_ies_o::value_c::operator=(const ue_radio_cap_check_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; case types::amf_ue_ngap_id: c.set(other.c.get()); break; - case types::ngap_msg: - c.set(other.c.get >()); + case types::ran_ue_ngap_id: + c.set(other.c.get()); break; - case types::amf_set_id: - c.set(other.c.get >()); + case types::ims_voice_support_ind: + c.set(other.c.get()); break; - case types::allowed_nssai: - c.set(other.c.get()); + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); } return *this; } -void reroute_nas_request_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_radio_cap_check_resp_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +ims_voice_support_ind_e& ue_radio_cap_check_resp_ies_o::value_c::ims_voice_support_ind() +{ + assert_choice_type(types::ims_voice_support_ind, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_radio_cap_check_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_check_resp_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const ims_voice_support_ind_e& ue_radio_cap_check_resp_ies_o::value_c::ims_voice_support_ind() const +{ + assert_choice_type(types::ims_voice_support_ind, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_radio_cap_check_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void ue_radio_cap_check_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; case types::amf_ue_ngap_id: j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::ngap_msg: - j.write_str("OCTET STRING", c.get >().to_string()); + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::amf_set_id: - j.write_str("BIT STRING", c.get >().to_string()); + case types::ims_voice_support_ind: + j.write_str("IMSVoiceSupportIndicator", c.get().to_string()); break; - case types::allowed_nssai: - j.start_array("AllowedNSSAI"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE reroute_nas_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_check_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; case types::amf_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::ngap_msg: - HANDLE_CODE(c.get >().pack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::amf_set_id: - HANDLE_CODE((c.get >().pack(bref))); + case types::ims_voice_support_ind: + HANDLE_CODE(c.get().pack(bref)); break; - case types::allowed_nssai: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 8, true)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE reroute_nas_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; case types::amf_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::ngap_msg: - HANDLE_CODE(c.get >().unpack(bref)); + case types::ran_ue_ngap_id: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::amf_set_id: - HANDLE_CODE((c.get >().unpack(bref))); + case types::ims_voice_support_ind: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::allowed_nssai: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 8, true)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "reroute_nas_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string reroute_nas_request_ies_o::value_c::types_opts::to_string() const +const char* ue_radio_cap_check_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { - "INTEGER (0..4294967295)", "INTEGER (0..1099511627775)", "OCTET STRING", "BIT STRING", "AllowedNSSAI"}; - return convert_enum_idx(options, 5, value, "reroute_nas_request_ies_o::value_c::types"); + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "IMSVoiceSupportIndicator", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 4, value, "ue_radio_cap_check_resp_ies_o::value_c::types"); } -// SecondaryRATDataUsageReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t secondary_rat_data_usage_report_ies_o::idx_to_id(uint32_t idx) +// UERadioCapabilityInfoIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ue_radio_cap_info_ind_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 142, 143}; + static const uint32_t options[] = {10, 85, 117, 118}; return map_enum_number(options, 4, idx, "id"); } -bool secondary_rat_data_usage_report_ies_o::is_id_valid(const uint32_t& id) +bool ue_radio_cap_info_ind_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 142, 143}; + static const uint32_t options[] = {10, 85, 117, 118}; for (const auto& o : options) { if (o == id) { return true; @@ -36602,23 +36383,23 @@ bool secondary_rat_data_usage_report_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e secondary_rat_data_usage_report_ies_o::get_crit(const uint32_t& id) +crit_e ue_radio_cap_info_ind_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: - return crit_e::ignore; + return crit_e::reject; case 85: + return crit_e::reject; + case 117: return crit_e::ignore; - case 142: - return crit_e::ignore; - case 143: + case 118: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -secondary_rat_data_usage_report_ies_o::value_c secondary_rat_data_usage_report_ies_o::get_value(const uint32_t& id) +ue_radio_cap_info_ind_ies_o::value_c ue_radio_cap_info_ind_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -36628,27 +36409,27 @@ secondary_rat_data_usage_report_ies_o::value_c secondary_rat_data_usage_report_i case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 142: - ret.set(value_c::types::pdu_session_res_secondary_ratusage_list); + case 117: + ret.set(value_c::types::ue_radio_cap); break; - case 143: - ret.set(value_c::types::ho_flag); + case 118: + ret.set(value_c::types::ue_radio_cap_for_paging); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e secondary_rat_data_usage_report_ies_o::get_presence(const uint32_t& id) +presence_e ue_radio_cap_info_ind_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 142: + case 117: return presence_e::mandatory; - case 143: + case 118: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -36657,59 +36438,20 @@ presence_e secondary_rat_data_usage_report_ies_o::get_presence(const uint32_t& i } // Value ::= OPEN TYPE -uint64_t& secondary_rat_data_usage_report_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& secondary_rat_data_usage_report_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_secondary_ratusage_list_l& -secondary_rat_data_usage_report_ies_o::value_c::pdu_session_res_secondary_ratusage_list() -{ - assert_choice_type("PDUSessionResourceSecondaryRATUsageList", type_.to_string(), "Value"); - return c.get(); -} -ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() -{ - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_secondary_ratusage_list_l& -secondary_rat_data_usage_report_ies_o::value_c::pdu_session_res_secondary_ratusage_list() const -{ - assert_choice_type("PDUSessionResourceSecondaryRATUsageList", type_.to_string(), "Value"); - return c.get(); -} -const ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() const -{ - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); -} -void secondary_rat_data_usage_report_ies_o::value_c::destroy_() +void ue_radio_cap_info_ind_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_secondary_ratusage_list: - c.destroy(); + case types::ue_radio_cap: + c.destroy >(); + break; + case types::ue_radio_cap_for_paging: + c.destroy(); break; default: break; } } -void secondary_rat_data_usage_report_ies_o::value_c::set(types::options e) +void ue_radio_cap_info_ind_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -36718,18 +36460,19 @@ void secondary_rat_data_usage_report_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::pdu_session_res_secondary_ratusage_list: - c.init(); + case types::ue_radio_cap: + c.init >(); break; - case types::ho_flag: + case types::ue_radio_cap_for_paging: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); } } -secondary_rat_data_usage_report_ies_o::value_c::value_c(const secondary_rat_data_usage_report_ies_o::value_c& other) +ue_radio_cap_info_ind_ies_o::value_c::value_c(const ue_radio_cap_info_ind_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -36739,20 +36482,20 @@ secondary_rat_data_usage_report_ies_o::value_c::value_c(const secondary_rat_data case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::pdu_session_res_secondary_ratusage_list: - c.init(other.c.get()); + case types::ue_radio_cap: + c.init(other.c.get >()); break; - case types::ho_flag: - c.init(other.c.get()); + case types::ue_radio_cap_for_paging: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); } } -secondary_rat_data_usage_report_ies_o::value_c& secondary_rat_data_usage_report_ies_o::value_c:: - operator=(const secondary_rat_data_usage_report_ies_o::value_c& other) +ue_radio_cap_info_ind_ies_o::value_c& +ue_radio_cap_info_ind_ies_o::value_c::operator=(const ue_radio_cap_info_ind_ies_o::value_c& other) { if (this == &other) { return *this; @@ -36765,21 +36508,61 @@ secondary_rat_data_usage_report_ies_o::value_c& secondary_rat_data_usage_report_ case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::pdu_session_res_secondary_ratusage_list: - c.set(other.c.get()); + case types::ue_radio_cap: + c.set(other.c.get >()); break; - case types::ho_flag: - c.set(other.c.get()); + case types::ue_radio_cap_for_paging: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); } return *this; } -void secondary_rat_data_usage_report_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ue_radio_cap_info_ind_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ue_radio_cap_info_ind_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +ue_radio_cap_for_paging_s& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_info_ind_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_info_ind_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const ue_radio_cap_for_paging_s& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() const +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get(); +} +void ue_radio_cap_info_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -36789,22 +36572,19 @@ void secondary_rat_data_usage_report_ies_o::value_c::to_json(json_writer& j) con case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::pdu_session_res_secondary_ratusage_list: - j.start_array("PDUSessionResourceSecondaryRATUsageList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::ue_radio_cap: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::ho_flag: - j.write_str("HandoverFlag", "handover-preparation"); + case types::ue_radio_cap_for_paging: + j.write_fieldname("UERadioCapabilityForPaging"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_info_ind_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -36814,19 +36594,19 @@ SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::pack(bit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_secondary_ratusage_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::ue_radio_cap: + HANDLE_CODE(c.get >().pack(bref)); break; - case types::ho_flag: - HANDLE_CODE(c.get().pack(bref)); + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_info_ind_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -36836,37 +36616,35 @@ SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::unpack(cbit_ref& bre case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::pdu_session_res_secondary_ratusage_list: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::ue_radio_cap: + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::ho_flag: - HANDLE_CODE(c.get().unpack(bref)); + case types::ue_radio_cap_for_paging: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "secondary_rat_data_usage_report_ies_o::value_c"); + log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string secondary_rat_data_usage_report_ies_o::value_c::types_opts::to_string() const +const char* ue_radio_cap_info_ind_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "PDUSessionResourceSecondaryRATUsageList", - "HandoverFlag"}; - return convert_enum_idx(options, 4, value, "secondary_rat_data_usage_report_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "UERadioCapabilityForPaging"}; + return convert_enum_idx(options, 4, value, "ue_radio_cap_info_ind_ies_o::value_c::types"); } -// TraceFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t trace_fail_ind_ies_o::idx_to_id(uint32_t idx) +// UETNLABindingReleaseRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t uetnla_binding_release_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 44, 15}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {10, 85}; + return map_enum_number(options, 2, idx, "id"); } -bool trace_fail_ind_ies_o::is_id_valid(const uint32_t& id) +bool uetnla_binding_release_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 44, 15}; + static const uint32_t options[] = {10, 85}; for (const auto& o : options) { if (o == id) { return true; @@ -36874,23 +36652,19 @@ bool trace_fail_ind_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e trace_fail_ind_ies_o::get_crit(const uint32_t& id) +crit_e uetnla_binding_release_request_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 44: - return crit_e::ignore; - case 15: - return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -trace_fail_ind_ies_o::value_c trace_fail_ind_ies_o::get_value(const uint32_t& id) +uetnla_binding_release_request_ies_o::value_c uetnla_binding_release_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -36900,28 +36674,18 @@ trace_fail_ind_ies_o::value_c trace_fail_ind_ies_o::get_value(const uint32_t& id case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 44: - ret.set(value_c::types::ngran_trace_id); - break; - case 15: - ret.set(value_c::types::cause); - break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e trace_fail_ind_ies_o::get_presence(const uint32_t& id) +presence_e uetnla_binding_release_request_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 44: - return presence_e::mandatory; - case 15: - return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); } @@ -36929,81 +36693,13 @@ presence_e trace_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& trace_fail_ind_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& trace_fail_ind_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::ngran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -cause_c& trace_fail_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_fail_ind_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_fail_ind_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::ngran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cause_c& trace_fail_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -void trace_fail_ind_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::ngran_trace_id: - c.destroy >(); - break; - case types::cause: - c.destroy(); - break; - default: - break; - } -} -void trace_fail_ind_ies_o::value_c::set(types::options e) +void uetnla_binding_release_request_ies_o::value_c::destroy_() {} +void uetnla_binding_release_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ngran_trace_id: - c.init >(); - break; - case types::cause: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); - } } -trace_fail_ind_ies_o::value_c::value_c(const trace_fail_ind_ies_o::value_c& other) +uetnla_binding_release_request_ies_o::value_c::value_c(const uetnla_binding_release_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -37013,19 +36709,14 @@ trace_fail_ind_ies_o::value_c::value_c(const trace_fail_ind_ies_o::value_c& othe case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ngran_trace_id: - c.init(other.c.get >()); - break; - case types::cause: - c.init(other.c.get()); - break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); } } -trace_fail_ind_ies_o::value_c& trace_fail_ind_ies_o::value_c::operator=(const trace_fail_ind_ies_o::value_c& other) +uetnla_binding_release_request_ies_o::value_c& +uetnla_binding_release_request_ies_o::value_c::operator=(const uetnla_binding_release_request_ies_o::value_c& other) { if (this == &other) { return *this; @@ -37038,21 +36729,35 @@ trace_fail_ind_ies_o::value_c& trace_fail_ind_ies_o::value_c::operator=(const tr case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::ngran_trace_id: - c.set(other.c.get >()); - break; - case types::cause: - c.set(other.c.get()); - break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); } return *this; } -void trace_fail_ind_ies_o::value_c::to_json(json_writer& j) const +uint64_t& uetnla_binding_release_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& uetnla_binding_release_request_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& uetnla_binding_release_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& uetnla_binding_release_request_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +void uetnla_binding_release_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -37062,19 +36767,12 @@ void trace_fail_ind_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::ngran_trace_id: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); - break; default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE trace_fail_ind_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE uetnla_binding_release_request_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -37084,19 +36782,13 @@ SRSASN_CODE trace_fail_ind_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ngran_trace_id: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); - break; default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE trace_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE uetnla_binding_release_request_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -37106,34 +36798,28 @@ SRSASN_CODE trace_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ngran_trace_id: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); - break; default: - log_invalid_choice_id(type_, "trace_fail_ind_ies_o::value_c"); + log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string trace_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* uetnla_binding_release_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "Cause"}; - return convert_enum_idx(options, 4, value, "trace_fail_ind_ies_o::value_c::types"); + static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)"}; + return convert_enum_idx(options, 2, value, "uetnla_binding_release_request_ies_o::value_c::types"); } -// TraceStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t trace_start_ies_o::idx_to_id(uint32_t idx) +// UplinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ul_nas_transport_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 108}; - return map_enum_number(options, 3, idx, "id"); + static const uint32_t options[] = {10, 85, 38, 121}; + return map_enum_number(options, 4, idx, "id"); } -bool trace_start_ies_o::is_id_valid(const uint32_t& id) +bool ul_nas_transport_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 108}; + static const uint32_t options[] = {10, 85, 38, 121}; for (const auto& o : options) { if (o == id) { return true; @@ -37141,21 +36827,23 @@ bool trace_start_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e trace_start_ies_o::get_crit(const uint32_t& id) +crit_e ul_nas_transport_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: return crit_e::reject; case 85: return crit_e::reject; - case 108: + case 38: + return crit_e::reject; + case 121: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -trace_start_ies_o::value_c trace_start_ies_o::get_value(const uint32_t& id) +ul_nas_transport_ies_o::value_c ul_nas_transport_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -37165,22 +36853,27 @@ trace_start_ies_o::value_c trace_start_ies_o::get_value(const uint32_t& id) case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 108: - ret.set(value_c::types::trace_activation); + case 38: + ret.set(value_c::types::nas_pdu); + break; + case 121: + ret.set(value_c::types::user_location_info); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e trace_start_ies_o::get_presence(const uint32_t& id) +presence_e ul_nas_transport_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 108: + case 38: + return presence_e::mandatory; + case 121: return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); @@ -37189,47 +36882,20 @@ presence_e trace_start_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& trace_start_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& trace_start_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -trace_activation_s& trace_start_ies_o::value_c::trace_activation() -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_start_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_start_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const trace_activation_s& trace_start_ies_o::value_c::trace_activation() const -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -void trace_start_ies_o::value_c::destroy_() +void ul_nas_transport_ies_o::value_c::destroy_() { switch (type_) { - case types::trace_activation: - c.destroy(); + case types::nas_pdu: + c.destroy >(); + break; + case types::user_location_info: + c.destroy(); break; default: break; } } -void trace_start_ies_o::value_c::set(types::options e) +void ul_nas_transport_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -37238,16 +36904,19 @@ void trace_start_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::trace_activation: - c.init(); + case types::nas_pdu: + c.init >(); + break; + case types::user_location_info: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); } } -trace_start_ies_o::value_c::value_c(const trace_start_ies_o::value_c& other) +ul_nas_transport_ies_o::value_c::value_c(const ul_nas_transport_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -37257,16 +36926,20 @@ trace_start_ies_o::value_c::value_c(const trace_start_ies_o::value_c& other) case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::trace_activation: - c.init(other.c.get()); + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::user_location_info: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); } } -trace_start_ies_o::value_c& trace_start_ies_o::value_c::operator=(const trace_start_ies_o::value_c& other) +ul_nas_transport_ies_o::value_c& +ul_nas_transport_ies_o::value_c::operator=(const ul_nas_transport_ies_o::value_c& other) { if (this == &other) { return *this; @@ -37279,56 +36952,105 @@ trace_start_ies_o::value_c& trace_start_ies_o::value_c::operator=(const trace_st case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::trace_activation: - c.set(other.c.get()); + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::user_location_info: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); } return *this; } -void trace_start_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ul_nas_transport_ies_o::value_c::amf_ue_ngap_id() { - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::trace_activation: - j.write_fieldname("TraceActivation"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); - } - j.end_obj(); + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE trace_start_ies_o::value_c::pack(bit_ref& bref) const +uint64_t& ul_nas_transport_ies_o::value_c::ran_ue_ngap_id() { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::trace_activation: - HANDLE_CODE(c.get().pack(bref)); + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const uint64_t& ul_nas_transport_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ul_nas_transport_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +void ul_nas_transport_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: + j.write_int("INTEGER (0..1099511627775)", c.get()); + break; + case types::ran_ue_ngap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::nas_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + case types::user_location_info: + j.write_fieldname("UserLocationInformation"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); + } + j.end_obj(); +} +SRSASN_CODE ul_nas_transport_ies_o::value_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + break; + case types::ran_ue_ngap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::nas_pdu: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE trace_start_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ul_nas_transport_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -37338,31 +37060,35 @@ SRSASN_CODE trace_start_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::trace_activation: - HANDLE_CODE(c.get().unpack(bref)); + case types::nas_pdu: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::user_location_info: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "trace_start_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string trace_start_ies_o::value_c::types_opts::to_string() const +const char* ul_nas_transport_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "TraceActivation"}; - return convert_enum_idx(options, 3, value, "trace_start_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "UserLocationInformation"}; + return convert_enum_idx(options, 4, value, "ul_nas_transport_ies_o::value_c::types"); } -// UEContextModificationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_mod_fail_ies_o::idx_to_id(uint32_t idx) +// UplinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ul_non_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 15, 19}; - return map_enum_number(options, 4, idx, "id"); + static const uint32_t options[] = {89, 46}; + return map_enum_number(options, 2, idx, "id"); } -bool ue_context_mod_fail_ies_o::is_id_valid(const uint32_t& id) +bool ul_non_ueassociated_nrp_pa_transport_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 15, 19}; + static const uint32_t options[] = {89, 46}; for (const auto& o : options) { if (o == id) { return true; @@ -37370,54 +37096,41 @@ bool ue_context_mod_fail_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ue_context_mod_fail_ies_o::get_crit(const uint32_t& id) +crit_e ul_non_ueassociated_nrp_pa_transport_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 15: - return crit_e::ignore; - case 19: - return crit_e::ignore; + case 89: + return crit_e::reject; + case 46: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ue_context_mod_fail_ies_o::value_c ue_context_mod_fail_ies_o::get_value(const uint32_t& id) +ul_non_ueassociated_nrp_pa_transport_ies_o::value_c +ul_non_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 15: - ret.set(value_c::types::cause); + case 89: + ret.set(value_c::types::routing_id); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 46: + ret.set(value_c::types::nrp_pa_pdu); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ue_context_mod_fail_ies_o::get_presence(const uint32_t& id) +presence_e ul_non_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; - case 85: + case 89: return presence_e::mandatory; - case 15: + case 46: return presence_e::mandatory; - case 19: - return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -37425,214 +37138,158 @@ presence_e ue_context_mod_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_fail_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ue_context_mod_fail_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_mod_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_fail_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_fail_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_mod_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ue_context_mod_fail_ies_o::value_c::destroy_() +void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { - case types::cause: - c.destroy(); + case types::routing_id: + c.destroy >(); break; - case types::crit_diagnostics: - c.destroy(); + case types::nrp_pa_pdu: + c.destroy >(); break; default: break; } } -void ue_context_mod_fail_ies_o::value_c::set(types::options e) +void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::cause: - c.init(); + case types::routing_id: + c.init >(); break; - case types::crit_diagnostics: - c.init(); + case types::nrp_pa_pdu: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -ue_context_mod_fail_ies_o::value_c::value_c(const ue_context_mod_fail_ies_o::value_c& other) +ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::value_c( + const ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::cause: - c.init(other.c.get()); + case types::routing_id: + c.init(other.c.get >()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::nrp_pa_pdu: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -ue_context_mod_fail_ies_o::value_c& ue_context_mod_fail_ies_o::value_c:: - operator=(const ue_context_mod_fail_ies_o::value_c& other) +ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::operator=( + const ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::cause: - c.set(other.c.get()); + case types::routing_id: + c.set(other.c.get >()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::nrp_pa_pdu: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); } return *this; } -void ue_context_mod_fail_ies_o::value_c::to_json(json_writer& j) const +unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::routing_id: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::nrp_pa_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ue_context_mod_fail_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::routing_id: + HANDLE_CODE(c.get >().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::nrp_pa_pdu: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_mod_fail_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::routing_id: + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::nrp_pa_pdu: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_fail_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_context_mod_fail_ies_o::value_c::types_opts::to_string() const +const char* ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "Cause", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 4, value, "ue_context_mod_fail_ies_o::value_c::types"); + static const char* options[] = {"OCTET STRING", "OCTET STRING"}; + return convert_enum_idx(options, 2, value, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::types"); } -// UEContextModificationRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_mod_request_ies_o::idx_to_id(uint32_t idx) +// UplinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ul_ran_cfg_transfer_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 83, 94, 31, 110, 119, 18, 24, 40, 91}; - return map_enum_number(options, 11, idx, "id"); + static const uint32_t options[] = {99, 158}; + return map_enum_number(options, 2, idx, "id"); } -bool ue_context_mod_request_ies_o::is_id_valid(const uint32_t& id) +bool ul_ran_cfg_transfer_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 83, 94, 31, 110, 119, 18, 24, 40, 91}; + static const uint32_t options[] = {99, 158}; for (const auto& o : options) { if (o == id) { return true; @@ -37640,102 +37297,39 @@ bool ue_context_mod_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ue_context_mod_request_ies_o::get_crit(const uint32_t& id) +crit_e ul_ran_cfg_transfer_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 83: - return crit_e::ignore; - case 94: - return crit_e::reject; - case 31: - return crit_e::ignore; - case 110: - return crit_e::ignore; - case 119: - return crit_e::reject; - case 18: - return crit_e::ignore; - case 24: - return crit_e::reject; - case 40: + case 99: return crit_e::ignore; - case 91: + case 158: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ue_context_mod_request_ies_o::value_c ue_context_mod_request_ies_o::get_value(const uint32_t& id) +ul_ran_cfg_transfer_ies_o::value_c ul_ran_cfg_transfer_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 83: - ret.set(value_c::types::ran_paging_prio); - break; - case 94: - ret.set(value_c::types::security_key); - break; - case 31: - ret.set(value_c::types::idx_to_rfsp); - break; - case 110: - ret.set(value_c::types::ue_aggregate_maximum_bit_rate); - break; - case 119: - ret.set(value_c::types::ue_security_cap); - break; - case 18: - ret.set(value_c::types::core_network_assist_info); - break; - case 24: - ret.set(value_c::types::emergency_fallback_ind); - break; - case 40: - ret.set(value_c::types::new_amf_ue_ngap_id); + case 99: + ret.set(value_c::types::son_cfg_transfer_ul); break; - case 91: - ret.set(value_c::types::rrc_inactive_transition_report_request); + case 158: + ret.set(value_c::types::endc_son_cfg_transfer_ul); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ue_context_mod_request_ies_o::get_presence(const uint32_t& id) +presence_e ul_ran_cfg_transfer_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 83: - return presence_e::optional; - case 94: - return presence_e::optional; - case 31: - return presence_e::optional; - case 110: - return presence_e::optional; - case 119: - return presence_e::optional; - case 18: - return presence_e::optional; - case 24: - return presence_e::optional; - case 40: + case 99: return presence_e::optional; - case 91: + case 158: return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); @@ -37744,141 +37338,224 @@ presence_e ue_context_mod_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ue_context_mod_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& ue_context_mod_request_ies_o::value_c::ran_paging_prio() +void ul_ran_cfg_transfer_ies_o::value_c::destroy_() { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); + switch (type_) { + case types::son_cfg_transfer_ul: + c.destroy(); + break; + case types::endc_son_cfg_transfer_ul: + c.destroy >(); + break; + default: + break; + } } -fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() +void ul_ran_cfg_transfer_ies_o::value_c::set(types::options e) { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + destroy_(); + type_ = e; + switch (type_) { + case types::son_cfg_transfer_ul: + c.init(); + break; + case types::endc_son_cfg_transfer_ul: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + } } -uint16_t& ue_context_mod_request_ies_o::value_c::idx_to_rfsp() +ul_ran_cfg_transfer_ies_o::value_c::value_c(const ul_ran_cfg_transfer_ies_o::value_c& other) { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); + type_ = other.type(); + switch (type_) { + case types::son_cfg_transfer_ul: + c.init(other.c.get()); + break; + case types::endc_son_cfg_transfer_ul: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + } } -ue_aggregate_maximum_bit_rate_s& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +ul_ran_cfg_transfer_ies_o::value_c& +ul_ran_cfg_transfer_ies_o::value_c::operator=(const ul_ran_cfg_transfer_ies_o::value_c& other) { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::son_cfg_transfer_ul: + c.set(other.c.get()); + break; + case types::endc_son_cfg_transfer_ul: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + } + + return *this; } -ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() +son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::son_cfg_transfer_ul, type_, "Value"); + return c.get(); } -core_network_assist_info_s& ue_context_mod_request_ies_o::value_c::core_network_assist_info() +unbounded_octstring& ul_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_ul() { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::endc_son_cfg_transfer_ul, type_, "Value"); + return c.get >(); } -emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() +const son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() const { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::son_cfg_transfer_ul, type_, "Value"); + return c.get(); } -uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() +const unbounded_octstring& ul_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_ul() const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::endc_son_cfg_transfer_ul, type_, "Value"); + return c.get >(); } -rrc_inactive_transition_report_request_e& -ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() +void ul_ran_cfg_transfer_ies_o::value_c::to_json(json_writer& j) const { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + switch (type_) { + case types::son_cfg_transfer_ul: + j.write_fieldname("SONConfigurationTransfer"); + c.get().to_json(j); + break; + case types::endc_son_cfg_transfer_ul: + j.write_str("OCTET STRING", c.get >().to_string()); + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + } + j.end_obj(); } -const uint64_t& ue_context_mod_request_ies_o::value_c::amf_ue_ngap_id() const +SRSASN_CODE ul_ran_cfg_transfer_ies_o::value_c::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& ue_context_mod_request_ies_o::value_c::ran_paging_prio() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::son_cfg_transfer_ul: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::endc_son_cfg_transfer_ul: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint16_t& ue_context_mod_request_ies_o::value_c::idx_to_rfsp() const +SRSASN_CODE ul_ran_cfg_transfer_ies_o::value_c::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::son_cfg_transfer_ul: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::endc_son_cfg_transfer_ul: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const ue_aggregate_maximum_bit_rate_s& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const + +const char* ul_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); + static const char* options[] = {"SONConfigurationTransfer", "OCTET STRING"}; + return convert_enum_idx(options, 2, value, "ul_ran_cfg_transfer_ies_o::value_c::types"); } -const ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() const + +// UplinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ul_ran_status_transfer_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); + static const uint32_t options[] = {10, 85, 84}; + return map_enum_number(options, 3, idx, "id"); } -const core_network_assist_info_s& ue_context_mod_request_ies_o::value_c::core_network_assist_info() const +bool ul_ran_status_transfer_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); + static const uint32_t options[] = {10, 85, 84}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -const emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() const +crit_e ul_ran_status_transfer_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); + switch (id) { + case 10: + return crit_e::reject; + case 85: + return crit_e::reject; + case 84: + return crit_e::reject; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -const uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() const +ul_ran_status_transfer_ies_o::value_c ul_ran_status_transfer_ies_o::get_value(const uint32_t& id) { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + value_c ret{}; + switch (id) { + case 10: + ret.set(value_c::types::amf_ue_ngap_id); + break; + case 85: + ret.set(value_c::types::ran_ue_ngap_id); + break; + case 84: + ret.set(value_c::types::ran_status_transfer_transparent_container); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -const rrc_inactive_transition_report_request_e& -ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() const +presence_e ul_ran_status_transfer_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); + switch (id) { + case 10: + return presence_e::mandatory; + case 85: + return presence_e::mandatory; + case 84: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -void ue_context_mod_request_ies_o::value_c::destroy_() + +// Value ::= OPEN TYPE +void ul_ran_status_transfer_ies_o::value_c::destroy_() { switch (type_) { - case types::security_key: - c.destroy >(); - break; - case types::ue_aggregate_maximum_bit_rate: - c.destroy(); - break; - case types::ue_security_cap: - c.destroy(); - break; - case types::core_network_assist_info: - c.destroy(); - break; - case types::emergency_fallback_ind: - c.destroy(); + case types::ran_status_transfer_transparent_container: + c.destroy(); break; default: break; } } -void ue_context_mod_request_ies_o::value_c::set(types::options e) +void ul_ran_status_transfer_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -37887,36 +37564,16 @@ void ue_context_mod_request_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::ran_paging_prio: - break; - case types::security_key: - c.init >(); - break; - case types::idx_to_rfsp: - break; - case types::ue_aggregate_maximum_bit_rate: - c.init(); - break; - case types::ue_security_cap: - c.init(); - break; - case types::core_network_assist_info: - c.init(); - break; - case types::emergency_fallback_ind: - c.init(); - break; - case types::new_amf_ue_ngap_id: - break; - case types::rrc_inactive_transition_report_request: + case types::ran_status_transfer_transparent_container: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); } } -ue_context_mod_request_ies_o::value_c::value_c(const ue_context_mod_request_ies_o::value_c& other) +ul_ran_status_transfer_ies_o::value_c::value_c(const ul_ran_status_transfer_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -37926,41 +37583,17 @@ ue_context_mod_request_ies_o::value_c::value_c(const ue_context_mod_request_ies_ case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ran_paging_prio: - c.init(other.c.get()); - break; - case types::security_key: - c.init(other.c.get >()); - break; - case types::idx_to_rfsp: - c.init(other.c.get()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.init(other.c.get()); - break; - case types::ue_security_cap: - c.init(other.c.get()); - break; - case types::core_network_assist_info: - c.init(other.c.get()); - break; - case types::emergency_fallback_ind: - c.init(other.c.get()); - break; - case types::new_amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.init(other.c.get()); + case types::ran_status_transfer_transparent_container: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); } } -ue_context_mod_request_ies_o::value_c& ue_context_mod_request_ies_o::value_c:: - operator=(const ue_context_mod_request_ies_o::value_c& other) +ul_ran_status_transfer_ies_o::value_c& +ul_ran_status_transfer_ies_o::value_c::operator=(const ul_ran_status_transfer_ies_o::value_c& other) { if (this == &other) { return *this; @@ -37973,42 +37606,50 @@ ue_context_mod_request_ies_o::value_c& ue_context_mod_request_ies_o::value_c:: case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::ran_paging_prio: - c.set(other.c.get()); - break; - case types::security_key: - c.set(other.c.get >()); - break; - case types::idx_to_rfsp: - c.set(other.c.get()); - break; - case types::ue_aggregate_maximum_bit_rate: - c.set(other.c.get()); - break; - case types::ue_security_cap: - c.set(other.c.get()); - break; - case types::core_network_assist_info: - c.set(other.c.get()); - break; - case types::emergency_fallback_ind: - c.set(other.c.get()); - break; - case types::new_amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::rrc_inactive_transition_report_request: - c.set(other.c.get()); + case types::ran_status_transfer_transparent_container: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); } return *this; } -void ue_context_mod_request_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ul_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ul_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +ran_status_transfer_transparent_container_s& +ul_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() +{ + assert_choice_type(types::ran_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} +const uint64_t& ul_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ul_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const ran_status_transfer_transparent_container_s& +ul_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() const +{ + assert_choice_type(types::ran_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} +void ul_ran_status_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -38018,43 +37659,16 @@ void ue_context_mod_request_ies_o::value_c::to_json(json_writer& j) const case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::ran_paging_prio: - j.write_int("INTEGER (1..256)", c.get()); - break; - case types::security_key: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::idx_to_rfsp: - j.write_int("INTEGER (1..256,...)", c.get()); - break; - case types::ue_aggregate_maximum_bit_rate: - j.write_fieldname("UEAggregateMaximumBitRate"); - c.get().to_json(j); - break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); - c.get().to_json(j); - break; - case types::core_network_assist_info: - j.write_fieldname("CoreNetworkAssistanceInformation"); - c.get().to_json(j); - break; - case types::emergency_fallback_ind: - j.write_fieldname("EmergencyFallbackIndicator"); - c.get().to_json(j); - break; - case types::new_amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::rrc_inactive_transition_report_request: - j.write_str("RRCInactiveTransitionReportRequest", c.get().to_string()); + case types::ran_status_transfer_transparent_container: + j.write_fieldname("RANStatusTransfer-TransparentContainer"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ue_context_mod_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ul_ran_status_transfer_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -38064,40 +37678,16 @@ SRSASN_CODE ue_context_mod_request_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); - break; - case types::security_key: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::idx_to_rfsp: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::emergency_fallback_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::new_amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().pack(bref)); + case types::ran_status_transfer_transparent_container: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_mod_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ul_ran_status_transfer_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -38107,65 +37697,32 @@ SRSASN_CODE ue_context_mod_request_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::ran_paging_prio: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); - break; - case types::security_key: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::idx_to_rfsp: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); - break; - case types::ue_aggregate_maximum_bit_rate: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_security_cap: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::core_network_assist_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::emergency_fallback_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::new_amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::rrc_inactive_transition_report_request: - HANDLE_CODE(c.get().unpack(bref)); + case types::ran_status_transfer_transparent_container: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_request_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_context_mod_request_ies_o::value_c::types_opts::to_string() const +const char* ul_ran_status_transfer_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "INTEGER (1..256)", - "BIT STRING", - "INTEGER (1..256,...)", - "UEAggregateMaximumBitRate", - "UESecurityCapabilities", - "CoreNetworkAssistanceInformation", - "EmergencyFallbackIndicator", - "INTEGER (0..1099511627775)", - "RRCInactiveTransitionReportRequest"}; - return convert_enum_idx(options, 11, value, "ue_context_mod_request_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "RANStatusTransfer-TransparentContainer"}; + return convert_enum_idx(options, 3, value, "ul_ran_status_transfer_ies_o::value_c::types"); } -// UEContextModificationResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_mod_resp_ies_o::idx_to_id(uint32_t idx) +// UplinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t ul_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 92, 121, 19}; - return map_enum_number(options, 5, idx, "id"); + static const uint32_t options[] = {10, 85, 89, 46}; + return map_enum_number(options, 4, idx, "id"); } -bool ue_context_mod_resp_ies_o::is_id_valid(const uint32_t& id) +bool ul_ueassociated_nrp_pa_transport_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 92, 121, 19}; + static const uint32_t options[] = {10, 85, 89, 46}; for (const auto& o : options) { if (o == id) { return true; @@ -38173,25 +37730,23 @@ bool ue_context_mod_resp_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ue_context_mod_resp_ies_o::get_crit(const uint32_t& id) +crit_e ul_ueassociated_nrp_pa_transport_ies_o::get_crit(const uint32_t& id) { switch (id) { case 10: - return crit_e::ignore; + return crit_e::reject; case 85: - return crit_e::ignore; - case 92: - return crit_e::ignore; - case 121: - return crit_e::ignore; - case 19: - return crit_e::ignore; + return crit_e::reject; + case 89: + return crit_e::reject; + case 46: + return crit_e::reject; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ue_context_mod_resp_ies_o::value_c ue_context_mod_resp_ies_o::get_value(const uint32_t& id) +ul_ueassociated_nrp_pa_transport_ies_o::value_c ul_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { @@ -38201,33 +37756,28 @@ ue_context_mod_resp_ies_o::value_c ue_context_mod_resp_ies_o::get_value(const ui case 85: ret.set(value_c::types::ran_ue_ngap_id); break; - case 92: - ret.set(value_c::types::rrc_state); - break; - case 121: - ret.set(value_c::types::user_location_info); + case 89: + ret.set(value_c::types::routing_id); break; - case 19: - ret.set(value_c::types::crit_diagnostics); + case 46: + ret.set(value_c::types::nrp_pa_pdu); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ue_context_mod_resp_ies_o::get_presence(const uint32_t& id) +presence_e ul_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& id) { switch (id) { case 10: return presence_e::mandatory; case 85: return presence_e::mandatory; - case 92: - return presence_e::optional; - case 121: - return presence_e::optional; - case 19: - return presence_e::optional; + case 89: + return presence_e::mandatory; + case 46: + return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); } @@ -38235,70 +37785,20 @@ presence_e ue_context_mod_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_resp_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ue_context_mod_resp_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -rrc_state_e& ue_context_mod_resp_ies_o::value_c::rrc_state() -{ - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_c& ue_context_mod_resp_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_resp_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_resp_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const rrc_state_e& ue_context_mod_resp_ies_o::value_c::rrc_state() const -{ - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_c& ue_context_mod_resp_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void ue_context_mod_resp_ies_o::value_c::destroy_() +void ul_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { - case types::user_location_info: - c.destroy(); + case types::routing_id: + c.destroy >(); break; - case types::crit_diagnostics: - c.destroy(); + case types::nrp_pa_pdu: + c.destroy >(); break; default: break; } } -void ue_context_mod_resp_ies_o::value_c::set(types::options e) +void ul_ueassociated_nrp_pa_transport_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; @@ -38307,21 +37807,19 @@ void ue_context_mod_resp_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::rrc_state: - break; - case types::user_location_info: - c.init(); + case types::routing_id: + c.init >(); break; - case types::crit_diagnostics: - c.init(); + case types::nrp_pa_pdu: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -ue_context_mod_resp_ies_o::value_c::value_c(const ue_context_mod_resp_ies_o::value_c& other) +ul_ueassociated_nrp_pa_transport_ies_o::value_c::value_c(const ul_ueassociated_nrp_pa_transport_ies_o::value_c& other) { type_ = other.type(); switch (type_) { @@ -38331,23 +37829,20 @@ ue_context_mod_resp_ies_o::value_c::value_c(const ue_context_mod_resp_ies_o::val case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::rrc_state: - c.init(other.c.get()); - break; - case types::user_location_info: - c.init(other.c.get()); + case types::routing_id: + c.init(other.c.get >()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::nrp_pa_pdu: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); } } -ue_context_mod_resp_ies_o::value_c& ue_context_mod_resp_ies_o::value_c:: - operator=(const ue_context_mod_resp_ies_o::value_c& other) +ul_ueassociated_nrp_pa_transport_ies_o::value_c& +ul_ueassociated_nrp_pa_transport_ies_o::value_c::operator=(const ul_ueassociated_nrp_pa_transport_ies_o::value_c& other) { if (this == &other) { return *this; @@ -38360,50 +37855,82 @@ ue_context_mod_resp_ies_o::value_c& ue_context_mod_resp_ies_o::value_c:: case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::rrc_state: - c.set(other.c.get()); - break; - case types::user_location_info: - c.set(other.c.get()); + case types::routing_id: + c.set(other.c.get >()); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::nrp_pa_pdu: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); } return *this; } -void ue_context_mod_resp_ies_o::value_c::to_json(json_writer& j) const +uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() { - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type(types::amf_ue_ngap_id, type_, "Value"); + return c.get(); +} +const uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type(types::ran_ue_ngap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const +{ + assert_choice_type(types::nrp_pa_pdu, type_, "Value"); + return c.get >(); +} +void ul_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_ue_ngap_id: j.write_int("INTEGER (0..1099511627775)", c.get()); break; case types::ran_ue_ngap_id: j.write_int("INTEGER (0..4294967295)", c.get()); break; - case types::rrc_state: - j.write_str("RRCState", c.get().to_string()); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); + case types::routing_id: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::nrp_pa_pdu: + j.write_str("OCTET STRING", c.get >().to_string()); break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ue_context_mod_resp_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { @@ -38413,22 +37940,19 @@ SRSASN_CODE ue_context_mod_resp_ies_o::value_c::pack(bit_ref& bref) const case types::ran_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::rrc_state: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); + case types::routing_id: + HANDLE_CODE(c.get >().pack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::nrp_pa_pdu: + HANDLE_CODE(c.get >().pack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_mod_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { @@ -38438,41 +37962,35 @@ SRSASN_CODE ue_context_mod_resp_ies_o::value_c::unpack(cbit_ref& bref) case types::ran_ue_ngap_id: HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); break; - case types::rrc_state: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::routing_id: + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::nrp_pa_pdu: + HANDLE_CODE(c.get >().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_mod_resp_ies_o::value_c"); + log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_context_mod_resp_ies_o::value_c::types_opts::to_string() const +const char* ul_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "RRCState", - "UserLocationInformation", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 5, value, "ue_context_mod_resp_ies_o::value_c::types"); + static const char* options[] = { + "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "OCTET STRING"}; + return convert_enum_idx(options, 4, value, "ul_ueassociated_nrp_pa_transport_ies_o::value_c::types"); } -// UEContextReleaseCommand-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_release_cmd_ies_o::idx_to_id(uint32_t idx) +// WriteReplaceWarningRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t write_replace_warning_request_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {114, 15}; - return map_enum_number(options, 2, idx, "id"); + static const uint32_t options[] = {35, 95, 122, 87, 47, 125, 124, 20, 123, 17, 141}; + return map_enum_number(options, 11, idx, "id"); } -bool ue_context_release_cmd_ies_o::is_id_valid(const uint32_t& id) +bool write_replace_warning_request_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {114, 15}; + static const uint32_t options[] = {35, 95, 122, 87, 47, 125, 124, 20, 123, 17, 141}; for (const auto& o : options) { if (o == id) { return true; @@ -38480,40 +37998,103 @@ bool ue_context_release_cmd_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ue_context_release_cmd_ies_o::get_crit(const uint32_t& id) +crit_e write_replace_warning_request_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 114: + case 35: return crit_e::reject; - case 15: + case 95: + return crit_e::reject; + case 122: + return crit_e::ignore; + case 87: + return crit_e::reject; + case 47: + return crit_e::reject; + case 125: + return crit_e::ignore; + case 124: + return crit_e::ignore; + case 20: + return crit_e::ignore; + case 123: + return crit_e::ignore; + case 17: + return crit_e::reject; + case 141: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ue_context_release_cmd_ies_o::value_c ue_context_release_cmd_ies_o::get_value(const uint32_t& id) +write_replace_warning_request_ies_o::value_c write_replace_warning_request_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 114: - ret.set(value_c::types::ue_ngap_ids); + case 35: + ret.set(value_c::types::msg_id); break; - case 15: - ret.set(value_c::types::cause); + case 95: + ret.set(value_c::types::serial_num); + break; + case 122: + ret.set(value_c::types::warning_area_list); + break; + case 87: + ret.set(value_c::types::repeat_period); + break; + case 47: + ret.set(value_c::types::nof_broadcasts_requested); + break; + case 125: + ret.set(value_c::types::warning_type); + break; + case 124: + ret.set(value_c::types::warning_security_info); + break; + case 20: + ret.set(value_c::types::data_coding_scheme); + break; + case 123: + ret.set(value_c::types::warning_msg_contents); + break; + case 17: + ret.set(value_c::types::concurrent_warning_msg_ind); + break; + case 141: + ret.set(value_c::types::warning_area_coordinates); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ue_context_release_cmd_ies_o::get_presence(const uint32_t& id) +presence_e write_replace_warning_request_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 114: + case 35: return presence_e::mandatory; - case 15: + case 95: return presence_e::mandatory; + case 122: + return presence_e::optional; + case 87: + return presence_e::mandatory; + case 47: + return presence_e::mandatory; + case 125: + return presence_e::optional; + case 124: + return presence_e::optional; + case 20: + return presence_e::optional; + case 123: + return presence_e::optional; + case 17: + return presence_e::optional; + case 141: + return presence_e::optional; default: asn1::log_error("The id=%d is not recognized", id); } @@ -38521,517 +38102,435 @@ presence_e ue_context_release_cmd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ue_ngap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_ngap_ids() -{ - assert_choice_type("UE-NGAP-IDs", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_release_cmd_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const ue_ngap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_ngap_ids() const -{ - assert_choice_type("UE-NGAP-IDs", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_release_cmd_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -void ue_context_release_cmd_ies_o::value_c::destroy_() +void write_replace_warning_request_ies_o::value_c::destroy_() { switch (type_) { - case types::ue_ngap_ids: - c.destroy(); + case types::msg_id: + c.destroy >(); break; - case types::cause: - c.destroy(); + case types::serial_num: + c.destroy >(); + break; + case types::warning_area_list: + c.destroy(); + break; + case types::warning_type: + c.destroy >(); + break; + case types::warning_security_info: + c.destroy >(); + break; + case types::data_coding_scheme: + c.destroy >(); + break; + case types::warning_msg_contents: + c.destroy >(); + break; + case types::warning_area_coordinates: + c.destroy >(); break; default: break; } } -void ue_context_release_cmd_ies_o::value_c::set(types::options e) +void write_replace_warning_request_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::ue_ngap_ids: - c.init(); + case types::msg_id: + c.init >(); break; - case types::cause: - c.init(); + case types::serial_num: + c.init >(); + break; + case types::warning_area_list: + c.init(); + break; + case types::repeat_period: + break; + case types::nof_broadcasts_requested: + break; + case types::warning_type: + c.init >(); + break; + case types::warning_security_info: + c.init >(); + break; + case types::data_coding_scheme: + c.init >(); + break; + case types::warning_msg_contents: + c.init >(); + break; + case types::concurrent_warning_msg_ind: + break; + case types::warning_area_coordinates: + c.init >(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); } } -ue_context_release_cmd_ies_o::value_c::value_c(const ue_context_release_cmd_ies_o::value_c& other) +write_replace_warning_request_ies_o::value_c::value_c(const write_replace_warning_request_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::ue_ngap_ids: - c.init(other.c.get()); + case types::msg_id: + c.init(other.c.get >()); break; - case types::cause: - c.init(other.c.get()); + case types::serial_num: + c.init(other.c.get >()); + break; + case types::warning_area_list: + c.init(other.c.get()); + break; + case types::repeat_period: + c.init(other.c.get()); + break; + case types::nof_broadcasts_requested: + c.init(other.c.get()); + break; + case types::warning_type: + c.init(other.c.get >()); + break; + case types::warning_security_info: + c.init(other.c.get >()); + break; + case types::data_coding_scheme: + c.init(other.c.get >()); + break; + case types::warning_msg_contents: + c.init(other.c.get >()); + break; + case types::concurrent_warning_msg_ind: + c.init(other.c.get()); + break; + case types::warning_area_coordinates: + c.init(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); } } -ue_context_release_cmd_ies_o::value_c& ue_context_release_cmd_ies_o::value_c:: - operator=(const ue_context_release_cmd_ies_o::value_c& other) +write_replace_warning_request_ies_o::value_c& +write_replace_warning_request_ies_o::value_c::operator=(const write_replace_warning_request_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::ue_ngap_ids: - c.set(other.c.get()); + case types::msg_id: + c.set(other.c.get >()); break; - case types::cause: - c.set(other.c.get()); + case types::serial_num: + c.set(other.c.get >()); + break; + case types::warning_area_list: + c.set(other.c.get()); + break; + case types::repeat_period: + c.set(other.c.get()); + break; + case types::nof_broadcasts_requested: + c.set(other.c.get()); + break; + case types::warning_type: + c.set(other.c.get >()); + break; + case types::warning_security_info: + c.set(other.c.get >()); + break; + case types::data_coding_scheme: + c.set(other.c.get >()); + break; + case types::warning_msg_contents: + c.set(other.c.get >()); + break; + case types::concurrent_warning_msg_ind: + c.set(other.c.get()); + break; + case types::warning_area_coordinates: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); } return *this; } -void ue_context_release_cmd_ies_o::value_c::to_json(json_writer& j) const +fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() { - j.start_obj(); - switch (type_) { - case types::ue_ngap_ids: - j.write_fieldname("UE-NGAP-IDs"); - c.get().to_json(j); - break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); - } - j.end_obj(); + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); } -SRSASN_CODE ue_context_release_cmd_ies_o::value_c::pack(bit_ref& bref) const +fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::ue_ngap_ids: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); } -SRSASN_CODE ue_context_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) +warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::ue_ngap_ids: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_context_release_cmd_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); } - -std::string ue_context_release_cmd_ies_o::value_c::types_opts::to_string() const +uint32_t& write_replace_warning_request_ies_o::value_c::repeat_period() { - static const char* options[] = {"UE-NGAP-IDs", "Cause"}; - return convert_enum_idx(options, 2, value, "ue_context_release_cmd_ies_o::value_c::types"); + assert_choice_type(types::repeat_period, type_, "Value"); + return c.get(); } - -// UEContextReleaseComplete-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_release_complete_ies_o::idx_to_id(uint32_t idx) +uint32_t& write_replace_warning_request_ies_o::value_c::nof_broadcasts_requested() { - static const uint32_t options[] = {10, 85, 121, 32, 60, 19}; - return map_enum_number(options, 6, idx, "id"); + assert_choice_type(types::nof_broadcasts_requested, type_, "Value"); + return c.get(); } -bool ue_context_release_complete_ies_o::is_id_valid(const uint32_t& id) +fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() { - static const uint32_t options[] = {10, 85, 121, 32, 60, 19}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; + assert_choice_type(types::warning_type, type_, "Value"); + return c.get >(); } -crit_e ue_context_release_complete_ies_o::get_crit(const uint32_t& id) +fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() { - switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 121: - return crit_e::ignore; - case 32: - return crit_e::ignore; - case 60: - return crit_e::reject; - case 19: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + assert_choice_type(types::warning_security_info, type_, "Value"); + return c.get >(); } -ue_context_release_complete_ies_o::value_c ue_context_release_complete_ies_o::get_value(const uint32_t& id) +fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() { - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 121: - ret.set(value_c::types::user_location_info); - break; - case 32: - ret.set(value_c::types::info_on_recommended_cells_and_ran_nodes_for_paging); - break; - case 60: - ret.set(value_c::types::pdu_session_res_list_cxt_rel_cpl); - break; - case 19: - ret.set(value_c::types::crit_diagnostics); - break; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return ret; + assert_choice_type(types::data_coding_scheme, type_, "Value"); + return c.get >(); } -presence_e ue_context_release_complete_ies_o::get_presence(const uint32_t& id) +bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 121: - return presence_e::optional; - case 32: - return presence_e::optional; - case 60: - return presence_e::optional; - case 19: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + assert_choice_type(types::warning_msg_contents, type_, "Value"); + return c.get >(); } - -// Value ::= OPEN TYPE -uint64_t& ue_context_release_complete_ies_o::value_c::amf_ue_ngap_id() +concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::concurrent_warning_msg_ind, type_, "Value"); + return c.get(); } -uint64_t& ue_context_release_complete_ies_o::value_c::ran_ue_ngap_id() +bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::warning_area_coordinates, type_, "Value"); + return c.get >(); } -user_location_info_c& ue_context_release_complete_ies_o::value_c::user_location_info() +const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() const { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); } -info_on_recommended_cells_and_ran_nodes_for_paging_s& -ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_ran_nodes_for_paging() +const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() const { - assert_choice_type("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); } -pdu_session_res_list_cxt_rel_cpl_l& ue_context_release_complete_ies_o::value_c::pdu_session_res_list_cxt_rel_cpl() +const warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() const { - assert_choice_type("PDUSessionResourceListCxtRelCpl", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); } -crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() +const uint32_t& write_replace_warning_request_ies_o::value_c::repeat_period() const { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::repeat_period, type_, "Value"); + return c.get(); } -const uint64_t& ue_context_release_complete_ies_o::value_c::amf_ue_ngap_id() const +const uint32_t& write_replace_warning_request_ies_o::value_c::nof_broadcasts_requested() const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::nof_broadcasts_requested, type_, "Value"); + return c.get(); } -const uint64_t& ue_context_release_complete_ies_o::value_c::ran_ue_ngap_id() const +const fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::warning_type, type_, "Value"); + return c.get >(); } -const user_location_info_c& ue_context_release_complete_ies_o::value_c::user_location_info() const +const fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() const { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::warning_security_info, type_, "Value"); + return c.get >(); } -const info_on_recommended_cells_and_ran_nodes_for_paging_s& -ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_ran_nodes_for_paging() const +const fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() const { - assert_choice_type("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::data_coding_scheme, type_, "Value"); + return c.get >(); } -const pdu_session_res_list_cxt_rel_cpl_l& -ue_context_release_complete_ies_o::value_c::pdu_session_res_list_cxt_rel_cpl() const +const bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() const { - assert_choice_type("PDUSessionResourceListCxtRelCpl", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::warning_msg_contents, type_, "Value"); + return c.get >(); } -const crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() const +const concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() const { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); + assert_choice_type(types::concurrent_warning_msg_ind, type_, "Value"); + return c.get(); } -void ue_context_release_complete_ies_o::value_c::destroy_() +const bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() const { - switch (type_) { - case types::user_location_info: - c.destroy(); - break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - c.destroy(); - break; - case types::pdu_session_res_list_cxt_rel_cpl: - c.destroy(); - break; - case types::crit_diagnostics: - c.destroy(); - break; - default: - break; - } + assert_choice_type(types::warning_area_coordinates, type_, "Value"); + return c.get >(); } -void ue_context_release_complete_ies_o::value_c::set(types::options e) +void write_replace_warning_request_ies_o::value_c::to_json(json_writer& j) const { - destroy_(); - type_ = e; + j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::user_location_info: - c.init(); - break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - c.init(); + case types::msg_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_list_cxt_rel_cpl: - c.init(); + case types::serial_num: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::crit_diagnostics: - c.init(); + case types::warning_area_list: + j.write_fieldname("WarningAreaList"); + c.get().to_json(j); break; - case types::nulltype: + case types::repeat_period: + j.write_int("INTEGER (0..131071)", c.get()); break; - default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); - } -} -ue_context_release_complete_ies_o::value_c::value_c(const ue_context_release_complete_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); + case types::nof_broadcasts_requested: + j.write_int("INTEGER (0..65535)", c.get()); break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); + case types::warning_type: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::user_location_info: - c.init(other.c.get()); + case types::warning_security_info: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - c.init(other.c.get()); + case types::data_coding_scheme: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_list_cxt_rel_cpl: - c.init(other.c.get()); + case types::warning_msg_contents: + j.write_str("OCTET STRING", c.get >().to_string()); break; - case types::crit_diagnostics: - c.init(other.c.get()); + case types::concurrent_warning_msg_ind: + j.write_str("ConcurrentWarningMessageInd", "true"); break; - case types::nulltype: + case types::warning_area_coordinates: + j.write_str("OCTET STRING", c.get >().to_string()); break; default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); } + j.end_obj(); } -ue_context_release_complete_ies_o::value_c& ue_context_release_complete_ies_o::value_c:: - operator=(const ue_context_release_complete_ies_o::value_c& other) +SRSASN_CODE write_replace_warning_request_ies_o::value_c::pack(bit_ref& bref) const { - if (this == &other) { - return *this; - } - set(other.type()); + varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::user_location_info: - c.set(other.c.get()); + case types::msg_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - c.set(other.c.get()); + case types::serial_num: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::pdu_session_res_list_cxt_rel_cpl: - c.set(other.c.get()); + case types::warning_area_list: + HANDLE_CODE(c.get().pack(bref)); break; - case types::crit_diagnostics: - c.set(other.c.get()); + case types::repeat_period: + HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)131071u, false, true)); break; - case types::nulltype: + case types::nof_broadcasts_requested: + HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)65535u, false, true)); break; - default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); - } - - return *this; -} -void ue_context_release_complete_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::warning_type: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::warning_security_info: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); + case types::data_coding_scheme: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - j.write_fieldname("InfoOnRecommendedCellsAndRANNodesForPaging"); - c.get().to_json(j); + case types::warning_msg_contents: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::pdu_session_res_list_cxt_rel_cpl: - j.start_array("PDUSessionResourceListCxtRelCpl"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::concurrent_warning_msg_ind: + HANDLE_CODE(c.get().pack(bref)); break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); + case types::warning_area_coordinates: + HANDLE_CODE((c.get >().pack(bref))); break; default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - j.end_obj(); + return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_release_complete_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_request_ies_o::value_c::unpack(cbit_ref& bref) { - varlength_field_pack_guard varlen_scope(bref, true); + varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::msg_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); + case types::serial_num: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - HANDLE_CODE(c.get().pack(bref)); + case types::warning_area_list: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pdu_session_res_list_cxt_rel_cpl: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::repeat_period: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)131071u, false, true)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); + case types::nof_broadcasts_requested: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)65535u, false, true)); break; - default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_context_release_complete_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + case types::warning_type: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::warning_security_info: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); + case types::data_coding_scheme: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::info_on_recommended_cells_and_ran_nodes_for_paging: - HANDLE_CODE(c.get().unpack(bref)); + case types::warning_msg_contents: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::pdu_session_res_list_cxt_rel_cpl: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::concurrent_warning_msg_ind: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); + case types::warning_area_coordinates: + HANDLE_CODE((c.get >().unpack(bref))); break; default: - log_invalid_choice_id(type_, "ue_context_release_complete_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_context_release_complete_ies_o::value_c::types_opts::to_string() const +const char* write_replace_warning_request_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"INTEGER (0..1099511627775)", - "INTEGER (0..4294967295)", - "UserLocationInformation", - "InfoOnRecommendedCellsAndRANNodesForPaging", - "PDUSessionResourceListCxtRelCpl", - "CriticalityDiagnostics"}; - return convert_enum_idx(options, 6, value, "ue_context_release_complete_ies_o::value_c::types"); + static const char* options[] = {"BIT STRING", + "BIT STRING", + "WarningAreaList", + "INTEGER (0..131071)", + "INTEGER (0..65535)", + "OCTET STRING", + "OCTET STRING", + "BIT STRING", + "OCTET STRING", + "ConcurrentWarningMessageInd", + "OCTET STRING"}; + return convert_enum_idx(options, 11, value, "write_replace_warning_request_ies_o::value_c::types"); } -// UEContextReleaseRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_context_release_request_ies_o::idx_to_id(uint32_t idx) +// WriteReplaceWarningResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t write_replace_warning_resp_ies_o::idx_to_id(uint32_t idx) { - static const uint32_t options[] = {10, 85, 133, 15}; + static const uint32_t options[] = {35, 95, 13, 19}; return map_enum_number(options, 4, idx, "id"); } -bool ue_context_release_request_ies_o::is_id_valid(const uint32_t& id) +bool write_replace_warning_resp_ies_o::is_id_valid(const uint32_t& id) { - static const uint32_t options[] = {10, 85, 133, 15}; + static const uint32_t options[] = {35, 95, 13, 19}; for (const auto& o : options) { if (o == id) { return true; @@ -39039,54 +38538,54 @@ bool ue_context_release_request_ies_o::is_id_valid(const uint32_t& id) } return false; } -crit_e ue_context_release_request_ies_o::get_crit(const uint32_t& id) +crit_e write_replace_warning_resp_ies_o::get_crit(const uint32_t& id) { switch (id) { - case 10: - return crit_e::reject; - case 85: + case 35: return crit_e::reject; - case 133: + case 95: return crit_e::reject; - case 15: + case 13: + return crit_e::ignore; + case 19: return crit_e::ignore; default: asn1::log_error("The id=%d is not recognized", id); } return {}; } -ue_context_release_request_ies_o::value_c ue_context_release_request_ies_o::get_value(const uint32_t& id) +write_replace_warning_resp_ies_o::value_c write_replace_warning_resp_ies_o::get_value(const uint32_t& id) { value_c ret{}; switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); + case 35: + ret.set(value_c::types::msg_id); break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); + case 95: + ret.set(value_c::types::serial_num); break; - case 133: - ret.set(value_c::types::pdu_session_res_list_cxt_rel_req); + case 13: + ret.set(value_c::types::broadcast_completed_area_list); break; - case 15: - ret.set(value_c::types::cause); + case 19: + ret.set(value_c::types::crit_diagnostics); break; default: asn1::log_error("The id=%d is not recognized", id); } return ret; } -presence_e ue_context_release_request_ies_o::get_presence(const uint32_t& id) +presence_e write_replace_warning_resp_ies_o::get_presence(const uint32_t& id) { switch (id) { - case 10: + case 35: return presence_e::mandatory; - case 85: + case 95: return presence_e::mandatory; - case 133: + case 13: + return presence_e::optional; + case 19: return presence_e::optional; - case 15: - return presence_e::mandatory; default: asn1::log_error("The id=%d is not recognized", id); } @@ -39094,3174 +38593,3202 @@ presence_e ue_context_release_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_release_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ue_context_release_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -pdu_session_res_list_cxt_rel_req_l& ue_context_release_request_ies_o::value_c::pdu_session_res_list_cxt_rel_req() -{ - assert_choice_type("PDUSessionResourceListCxtRelReq", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_release_request_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_release_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_release_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const pdu_session_res_list_cxt_rel_req_l& -ue_context_release_request_ies_o::value_c::pdu_session_res_list_cxt_rel_req() const -{ - assert_choice_type("PDUSessionResourceListCxtRelReq", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_release_request_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -void ue_context_release_request_ies_o::value_c::destroy_() +void write_replace_warning_resp_ies_o::value_c::destroy_() { switch (type_) { - case types::pdu_session_res_list_cxt_rel_req: - c.destroy(); + case types::msg_id: + c.destroy >(); break; - case types::cause: - c.destroy(); + case types::serial_num: + c.destroy >(); + break; + case types::broadcast_completed_area_list: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); break; default: break; } } -void ue_context_release_request_ies_o::value_c::set(types::options e) +void write_replace_warning_resp_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_ue_ngap_id: + case types::msg_id: + c.init >(); break; - case types::ran_ue_ngap_id: + case types::serial_num: + c.init >(); break; - case types::pdu_session_res_list_cxt_rel_req: - c.init(); + case types::broadcast_completed_area_list: + c.init(); break; - case types::cause: - c.init(); + case types::crit_diagnostics: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); } } -ue_context_release_request_ies_o::value_c::value_c(const ue_context_release_request_ies_o::value_c& other) +write_replace_warning_resp_ies_o::value_c::value_c(const write_replace_warning_resp_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); + case types::msg_id: + c.init(other.c.get >()); break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); + case types::serial_num: + c.init(other.c.get >()); break; - case types::pdu_session_res_list_cxt_rel_req: - c.init(other.c.get()); + case types::broadcast_completed_area_list: + c.init(other.c.get()); break; - case types::cause: - c.init(other.c.get()); + case types::crit_diagnostics: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); } } -ue_context_release_request_ies_o::value_c& ue_context_release_request_ies_o::value_c:: - operator=(const ue_context_release_request_ies_o::value_c& other) +write_replace_warning_resp_ies_o::value_c& +write_replace_warning_resp_ies_o::value_c::operator=(const write_replace_warning_resp_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); + case types::msg_id: + c.set(other.c.get >()); break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); + case types::serial_num: + c.set(other.c.get >()); break; - case types::pdu_session_res_list_cxt_rel_req: - c.set(other.c.get()); + case types::broadcast_completed_area_list: + c.set(other.c.get()); break; - case types::cause: - c.set(other.c.get()); + case types::crit_diagnostics: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); } return *this; } -void ue_context_release_request_ies_o::value_c::to_json(json_writer& j) const +fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() +{ + assert_choice_type(types::broadcast_completed_area_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() const +{ + assert_choice_type(types::broadcast_completed_area_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +void write_replace_warning_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); + case types::msg_id: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); + case types::serial_num: + j.write_str("BIT STRING", c.get >().to_string()); break; - case types::pdu_session_res_list_cxt_rel_req: - j.start_array("PDUSessionResourceListCxtRelReq"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::broadcast_completed_area_list: + j.write_fieldname("BroadcastCompletedAreaList"); + c.get().to_json(j); break; - case types::cause: - j.write_fieldname("Cause"); - c.get().to_json(j); + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ue_context_release_request_ies_o::value_c::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_resp_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + case types::msg_id: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::serial_num: + HANDLE_CODE((c.get >().pack(bref))); break; - case types::pdu_session_res_list_cxt_rel_req: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + case types::broadcast_completed_area_list: + HANDLE_CODE(c.get().pack(bref)); break; - case types::cause: - HANDLE_CODE(c.get().pack(bref)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_release_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE write_replace_warning_resp_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); + case types::msg_id: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); + case types::serial_num: + HANDLE_CODE((c.get >().unpack(bref))); break; - case types::pdu_session_res_list_cxt_rel_req: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 256, true)); + case types::broadcast_completed_area_list: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::cause: - HANDLE_CODE(c.get().unpack(bref)); + case types::crit_diagnostics: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "ue_context_release_request_ies_o::value_c"); + log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ue_context_release_request_ies_o::value_c::types_opts::to_string() const +const char* write_replace_warning_resp_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "PDUSessionResourceListCxtRelReq", "Cause"}; - return convert_enum_idx(options, 4, value, "ue_context_release_request_ies_o::value_c::types"); + static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCompletedAreaList", "CriticalityDiagnostics"}; + return convert_enum_idx(options, 4, value, "write_replace_warning_resp_ies_o::value_c::types"); } -// UERadioCapabilityCheckRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_radio_cap_check_request_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 85, 117}; - return map_enum_number(options, 3, idx, "id"); -} -bool ue_radio_cap_check_request_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {10, 85, 117}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e ue_radio_cap_check_request_ies_o::get_crit(const uint32_t& id) +template struct asn1::ngap_nr::protocol_ie_field_s; + +location_report_ies_container::location_report_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + user_location_info(121, crit_e::ignore), + ue_presence_in_area_of_interest_list(116, crit_e::ignore), + location_report_request_type(33, crit_e::ignore), + ps_cell_info(149, crit_e::ignore) +{} +SRSASN_CODE location_report_ies_container::pack(bit_ref& bref) const { - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 117: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + uint32_t nof_ies = 4; + nof_ies += ue_presence_in_area_of_interest_list_present ? 1 : 0; + nof_ies += ps_cell_info_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(user_location_info.pack(bref)); + if (ue_presence_in_area_of_interest_list_present) { + HANDLE_CODE(ue_presence_in_area_of_interest_list.pack(bref)); } - return {}; -} -ue_radio_cap_check_request_ies_o::value_c ue_radio_cap_check_request_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 117: - ret.set(value_c::types::ue_radio_cap); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + HANDLE_CODE(location_report_request_type.pack(bref)); + if (ps_cell_info_present) { + HANDLE_CODE(ps_cell_info.pack(bref)); } - return ret; + + return SRSASN_SUCCESS; } -presence_e ue_radio_cap_check_request_ies_o::get_presence(const uint32_t& id) +SRSASN_CODE location_report_ies_container::unpack(cbit_ref& bref) { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 117: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 4; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 121: + nof_mandatory_ies--; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); + break; + case 116: + ue_presence_in_area_of_interest_list_present = true; + ue_presence_in_area_of_interest_list.id = c.id; + ue_presence_in_area_of_interest_list.crit = c.crit; + ue_presence_in_area_of_interest_list.value = c.value.ue_presence_in_area_of_interest_list(); + break; + case 33: + nof_mandatory_ies--; + location_report_request_type.id = c.id; + location_report_request_type.crit = c.crit; + location_report_request_type.value = c.value.location_report_request_type(); + break; + case 149: + ps_cell_info_present = true; + ps_cell_info.id = c.id; + ps_cell_info.crit = c.crit; + ps_cell_info.value = c.value.ps_cell_info(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } - return {}; -} + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); -// Value ::= OPEN TYPE -uint64_t& ue_radio_cap_check_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ue_radio_cap_check_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ue_radio_cap_check_request_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ue_radio_cap_check_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint64_t& ue_radio_cap_check_request_ies_o::value_c::ran_ue_ngap_id() const +void location_report_ies_container::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + user_location_info.to_json(j); + if (ue_presence_in_area_of_interest_list_present) { + j.write_fieldname(""); + ue_presence_in_area_of_interest_list.to_json(j); + } + j.write_fieldname(""); + location_report_request_type.to_json(j); + if (ps_cell_info_present) { + j.write_fieldname(""); + ps_cell_info.to_json(j); + } + j.end_obj(); } -const unbounded_octstring& ue_radio_cap_check_request_ies_o::value_c::ue_radio_cap() const + +// LocationReport ::= SEQUENCE +SRSASN_CODE location_report_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_check_request_ies_o::value_c::destroy_() +SRSASN_CODE location_report_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::ue_radio_cap: - c.destroy >(); - break; - default: - break; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_check_request_ies_o::value_c::set(types::options e) +void location_report_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ue_radio_cap: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ue_radio_cap_check_request_ies_o::value_c::value_c(const ue_radio_cap_check_request_ies_o::value_c& other) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +location_report_ctrl_ies_container::location_report_ctrl_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + location_report_request_type(33, crit_e::ignore) +{} +SRSASN_CODE location_report_ctrl_ies_container::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ue_radio_cap: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); - } + uint32_t nof_ies = 3; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(location_report_request_type.pack(bref)); + + return SRSASN_SUCCESS; } -ue_radio_cap_check_request_ies_o::value_c& ue_radio_cap_check_request_ies_o::value_c:: - operator=(const ue_radio_cap_check_request_ies_o::value_c& other) +SRSASN_CODE location_report_ctrl_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ue_radio_cap: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 33: + nof_mandatory_ies--; + location_report_request_type.id = c.id; + location_report_request_type.crit = c.crit; + location_report_request_type.value = c.value.location_report_request_type(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ue_radio_cap_check_request_ies_o::value_c::to_json(json_writer& j) const +void location_report_ctrl_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::ue_radio_cap: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); - } + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + location_report_request_type.to_json(j); j.end_obj(); } -SRSASN_CODE ue_radio_cap_check_request_ies_o::value_c::pack(bit_ref& bref) const + +// LocationReportingControl ::= SEQUENCE +SRSASN_CODE location_report_ctrl_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_check_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE location_report_ctrl_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_request_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ue_radio_cap_check_request_ies_o::value_c::types_opts::to_string() const +void location_report_ctrl_s::to_json(json_writer& j) const { - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING"}; - return convert_enum_idx(options, 3, value, "ue_radio_cap_check_request_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UERadioCapabilityCheckResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_radio_cap_check_resp_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +location_report_fail_ind_ies_container::location_report_fail_ind_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), cause(15, crit_e::ignore) +{} +SRSASN_CODE location_report_fail_ind_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85, 30, 19}; - return map_enum_number(options, 4, idx, "id"); + uint32_t nof_ies = 3; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(cause.pack(bref)); + + return SRSASN_SUCCESS; } -bool ue_radio_cap_check_resp_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE location_report_fail_ind_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {10, 85, 30, 19}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; -} -crit_e ue_radio_cap_check_resp_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::ignore; - case 85: - return crit_e::ignore; - case 30: - return crit_e::reject; - case 19: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} -ue_radio_cap_check_resp_ies_o::value_c ue_radio_cap_check_resp_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 30: - ret.set(value_c::types::ims_voice_support_ind); - break; - case 19: - ret.set(value_c::types::crit_diagnostics); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return ret; + return SRSASN_SUCCESS; } -presence_e ue_radio_cap_check_resp_ies_o::get_presence(const uint32_t& id) +void location_report_fail_ind_ies_container::to_json(json_writer& j) const { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 30: - return presence_e::mandatory; - case 19: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + cause.to_json(j); + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& ue_radio_cap_check_resp_ies_o::value_c::amf_ue_ngap_id() +// LocationReportingFailureIndication ::= SEQUENCE +SRSASN_CODE location_report_fail_ind_s::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uint64_t& ue_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() +SRSASN_CODE location_report_fail_ind_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -ims_voice_support_ind_e& ue_radio_cap_check_resp_ies_o::value_c::ims_voice_support_ind() +void location_report_fail_ind_s::to_json(json_writer& j) const { - assert_choice_type("IMSVoiceSupportIndicator", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -crit_diagnostics_s& ue_radio_cap_check_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_radio_cap_check_resp_ies_o::value_c::amf_ue_ngap_id() const + +template struct asn1::ngap_nr::protocol_ie_field_s; + +nas_non_delivery_ind_ies_container::nas_non_delivery_ind_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + nas_pdu(38, crit_e::ignore), + cause(15, crit_e::ignore) +{} +SRSASN_CODE nas_non_delivery_ind_ies_container::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 4; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(nas_pdu.pack(bref)); + HANDLE_CODE(cause.pack(bref)); + + return SRSASN_SUCCESS; } -const uint64_t& ue_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() const +SRSASN_CODE nas_non_delivery_ind_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 4; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 38: + nof_mandatory_ies--; + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); + break; + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const ims_voice_support_ind_e& ue_radio_cap_check_resp_ies_o::value_c::ims_voice_support_ind() const +void nas_non_delivery_ind_ies_container::to_json(json_writer& j) const { - assert_choice_type("IMSVoiceSupportIndicator", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + nas_pdu.to_json(j); + j.write_fieldname(""); + cause.to_json(j); + j.end_obj(); } -const crit_diagnostics_s& ue_radio_cap_check_resp_ies_o::value_c::crit_diagnostics() const + +// NASNonDeliveryIndication ::= SEQUENCE +SRSASN_CODE nas_non_delivery_ind_s::pack(bit_ref& bref) const { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_check_resp_ies_o::value_c::destroy_() +SRSASN_CODE nas_non_delivery_ind_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::crit_diagnostics: - c.destroy(); - break; - default: - break; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_check_resp_ies_o::value_c::set(types::options e) +void nas_non_delivery_ind_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ims_voice_support_ind: - break; - case types::crit_diagnostics: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ue_radio_cap_check_resp_ies_o::value_c::value_c(const ue_radio_cap_check_resp_ies_o::value_c& other) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ng_reset_ies_container::ng_reset_ies_container() : cause(15, crit_e::ignore), reset_type(88, crit_e::reject) {} +SRSASN_CODE ng_reset_ies_container::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ims_voice_support_ind: - c.init(other.c.get()); - break; - case types::crit_diagnostics: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); - } + uint32_t nof_ies = 2; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(cause.pack(bref)); + HANDLE_CODE(reset_type.pack(bref)); + + return SRSASN_SUCCESS; } -ue_radio_cap_check_resp_ies_o::value_c& ue_radio_cap_check_resp_ies_o::value_c:: - operator=(const ue_radio_cap_check_resp_ies_o::value_c& other) +SRSASN_CODE ng_reset_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ims_voice_support_ind: - c.set(other.c.get()); - break; - case types::crit_diagnostics: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); + break; + case 88: + nof_mandatory_ies--; + reset_type.id = c.id; + reset_type.crit = c.crit; + reset_type.value = c.value.reset_type(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ue_radio_cap_check_resp_ies_o::value_c::to_json(json_writer& j) const +void ng_reset_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::ims_voice_support_ind: - j.write_str("IMSVoiceSupportIndicator", c.get().to_string()); - break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); - } + j.write_fieldname(""); + cause.to_json(j); + j.write_fieldname(""); + reset_type.to_json(j); j.end_obj(); } -SRSASN_CODE ue_radio_cap_check_resp_ies_o::value_c::pack(bit_ref& bref) const + +// NGReset ::= SEQUENCE +SRSASN_CODE ng_reset_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ims_voice_support_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_check_resp_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ng_reset_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ims_voice_support_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_check_resp_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ue_radio_cap_check_resp_ies_o::value_c::types_opts::to_string() const +void ng_reset_s::to_json(json_writer& j) const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "IMSVoiceSupportIndicator", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 4, value, "ue_radio_cap_check_resp_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UERadioCapabilityInfoIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ue_radio_cap_info_ind_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 85, 117, 118}; - return map_enum_number(options, 4, idx, "id"); -} -bool ue_radio_cap_info_ind_ies_o::is_id_valid(const uint32_t& id) +template struct asn1::ngap_nr::protocol_ie_field_s; + +ng_reset_ack_ies_container::ng_reset_ack_ies_container() : + ue_associated_lc_ng_conn_list(111, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE ng_reset_ack_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85, 117, 118}; - for (const auto& o : options) { - if (o == id) { - return true; - } + uint32_t nof_ies = 0; + nof_ies += ue_associated_lc_ng_conn_list_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + if (ue_associated_lc_ng_conn_list_present) { + HANDLE_CODE(ue_associated_lc_ng_conn_list.pack(bref)); } - return false; -} -crit_e ue_radio_cap_info_ind_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 117: - return crit_e::ignore; - case 118: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } - return {}; + + return SRSASN_SUCCESS; } -ue_radio_cap_info_ind_ies_o::value_c ue_radio_cap_info_ind_ies_o::get_value(const uint32_t& id) +SRSASN_CODE ng_reset_ack_ies_container::unpack(cbit_ref& bref) { - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 117: - ret.set(value_c::types::ue_radio_cap); - break; - case 118: - ret.set(value_c::types::ue_radio_cap_for_paging); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 111: + ue_associated_lc_ng_conn_list_present = true; + ue_associated_lc_ng_conn_list.id = c.id; + ue_associated_lc_ng_conn_list.crit = c.crit; + ue_associated_lc_ng_conn_list.value = c.value.ue_associated_lc_ng_conn_list(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } - return ret; + + return SRSASN_SUCCESS; } -presence_e ue_radio_cap_info_ind_ies_o::get_presence(const uint32_t& id) +void ng_reset_ack_ies_container::to_json(json_writer& j) const { - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 117: - return presence_e::mandatory; - case 118: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + if (ue_associated_lc_ng_conn_list_present) { + j.write_fieldname(""); + ue_associated_lc_ng_conn_list.to_json(j); } - return {}; + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& ue_radio_cap_info_ind_ies_o::value_c::amf_ue_ngap_id() +// NGResetAcknowledge ::= SEQUENCE +SRSASN_CODE ng_reset_ack_s::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uint64_t& ue_radio_cap_info_ind_ies_o::value_c::ran_ue_ngap_id() +SRSASN_CODE ng_reset_ack_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap() +void ng_reset_ack_s::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ue_radio_cap_for_paging_s& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ng_setup_fail_ies_container::ng_setup_fail_ies_container() : + cause(15, crit_e::ignore), time_to_wait(107, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE ng_setup_fail_ies_container::pack(bit_ref& bref) const { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 1; + nof_ies += time_to_wait_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(cause.pack(bref)); + if (time_to_wait_present) { + HANDLE_CODE(time_to_wait.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + + return SRSASN_SUCCESS; } -const uint64_t& ue_radio_cap_info_ind_ies_o::value_c::amf_ue_ngap_id() const +SRSASN_CODE ng_setup_fail_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 1; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); + break; + case 107: + time_to_wait_present = true; + time_to_wait.id = c.id; + time_to_wait.crit = c.crit; + time_to_wait.value = c.value.time_to_wait(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint64_t& ue_radio_cap_info_ind_ies_o::value_c::ran_ue_ngap_id() const +void ng_setup_fail_ies_container::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + cause.to_json(j); + if (time_to_wait_present) { + j.write_fieldname(""); + time_to_wait.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); } -const unbounded_octstring& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap() const + +// NGSetupFailure ::= SEQUENCE +SRSASN_CODE ng_setup_fail_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const ue_radio_cap_for_paging_s& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() const -{ - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_info_ind_ies_o::value_c::destroy_() +SRSASN_CODE ng_setup_fail_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::ue_radio_cap: - c.destroy >(); - break; - case types::ue_radio_cap_for_paging: - c.destroy(); - break; - default: - break; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ue_radio_cap_info_ind_ies_o::value_c::set(types::options e) +void ng_setup_fail_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ue_radio_cap: - c.init >(); - break; - case types::ue_radio_cap_for_paging: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ue_radio_cap_info_ind_ies_o::value_c::value_c(const ue_radio_cap_info_ind_ies_o::value_c& other) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ng_setup_request_ies_container::ng_setup_request_ies_container() : + global_ran_node_id(27, crit_e::reject), + ran_node_name(82, crit_e::ignore), + supported_ta_list(102, crit_e::reject), + default_paging_drx(21, crit_e::ignore), + ue_retention_info(147, crit_e::ignore) +{} +SRSASN_CODE ng_setup_request_ies_container::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ue_radio_cap: - c.init(other.c.get >()); - break; - case types::ue_radio_cap_for_paging: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); + uint32_t nof_ies = 3; + nof_ies += ran_node_name_present ? 1 : 0; + nof_ies += ue_retention_info_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(global_ran_node_id.pack(bref)); + if (ran_node_name_present) { + HANDLE_CODE(ran_node_name.pack(bref)); + } + HANDLE_CODE(supported_ta_list.pack(bref)); + HANDLE_CODE(default_paging_drx.pack(bref)); + if (ue_retention_info_present) { + HANDLE_CODE(ue_retention_info.pack(bref)); } + + return SRSASN_SUCCESS; } -ue_radio_cap_info_ind_ies_o::value_c& ue_radio_cap_info_ind_ies_o::value_c:: - operator=(const ue_radio_cap_info_ind_ies_o::value_c& other) +SRSASN_CODE ng_setup_request_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ue_radio_cap: - c.set(other.c.get >()); - break; - case types::ue_radio_cap_for_paging: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 27: + nof_mandatory_ies--; + global_ran_node_id.id = c.id; + global_ran_node_id.crit = c.crit; + global_ran_node_id.value = c.value.global_ran_node_id(); + break; + case 82: + ran_node_name_present = true; + ran_node_name.id = c.id; + ran_node_name.crit = c.crit; + ran_node_name.value = c.value.ran_node_name(); + break; + case 102: + nof_mandatory_ies--; + supported_ta_list.id = c.id; + supported_ta_list.crit = c.crit; + supported_ta_list.value = c.value.supported_ta_list(); + break; + case 21: + nof_mandatory_ies--; + default_paging_drx.id = c.id; + default_paging_drx.crit = c.crit; + default_paging_drx.value = c.value.default_paging_drx(); + break; + case 147: + ue_retention_info_present = true; + ue_retention_info.id = c.id; + ue_retention_info.crit = c.crit; + ue_retention_info.value = c.value.ue_retention_info(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ue_radio_cap_info_ind_ies_o::value_c::to_json(json_writer& j) const +void ng_setup_request_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::ue_radio_cap: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::ue_radio_cap_for_paging: - j.write_fieldname("UERadioCapabilityForPaging"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); + j.write_fieldname(""); + global_ran_node_id.to_json(j); + if (ran_node_name_present) { + j.write_fieldname(""); + ran_node_name.to_json(j); + } + j.write_fieldname(""); + supported_ta_list.to_json(j); + j.write_fieldname(""); + default_paging_drx.to_json(j); + if (ue_retention_info_present) { + j.write_fieldname(""); + ue_retention_info.to_json(j); } j.end_obj(); } -SRSASN_CODE ue_radio_cap_info_ind_ies_o::value_c::pack(bit_ref& bref) const + +// NGSetupRequest ::= SEQUENCE +SRSASN_CODE ng_setup_request_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_info_ind_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE ng_setup_request_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ue_radio_cap: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::ue_radio_cap_for_paging: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ue_radio_cap_info_ind_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ue_radio_cap_info_ind_ies_o::value_c::types_opts::to_string() const +void ng_setup_request_s::to_json(json_writer& j) const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "UERadioCapabilityForPaging"}; - return convert_enum_idx(options, 4, value, "ue_radio_cap_info_ind_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UETNLABindingReleaseRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t uetnla_binding_release_request_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +ng_setup_resp_ies_container::ng_setup_resp_ies_container() : + amf_name(1, crit_e::reject), + served_guami_list(96, crit_e::reject), + relative_amf_capacity(86, crit_e::ignore), + plmn_support_list(80, crit_e::reject), + crit_diagnostics(19, crit_e::ignore), + ue_retention_info(147, crit_e::ignore) +{} +SRSASN_CODE ng_setup_resp_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85}; - return map_enum_number(options, 2, idx, "id"); + uint32_t nof_ies = 4; + nof_ies += crit_diagnostics_present ? 1 : 0; + nof_ies += ue_retention_info_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_name.pack(bref)); + HANDLE_CODE(served_guami_list.pack(bref)); + HANDLE_CODE(relative_amf_capacity.pack(bref)); + HANDLE_CODE(plmn_support_list.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + if (ue_retention_info_present) { + HANDLE_CODE(ue_retention_info.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool uetnla_binding_release_request_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE ng_setup_resp_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {10, 85}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 4; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 1: + nof_mandatory_ies--; + amf_name.id = c.id; + amf_name.crit = c.crit; + amf_name.value = c.value.amf_name(); + break; + case 96: + nof_mandatory_ies--; + served_guami_list.id = c.id; + served_guami_list.crit = c.crit; + served_guami_list.value = c.value.served_guami_list(); + break; + case 86: + nof_mandatory_ies--; + relative_amf_capacity.id = c.id; + relative_amf_capacity.crit = c.crit; + relative_amf_capacity.value = c.value.relative_amf_capacity(); + break; + case 80: + nof_mandatory_ies--; + plmn_support_list.id = c.id; + plmn_support_list.crit = c.crit; + plmn_support_list.value = c.value.plmn_support_list(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + case 147: + ue_retention_info_present = true; + ue_retention_info.id = c.id; + ue_retention_info.crit = c.crit; + ue_retention_info.value = c.value.ue_retention_info(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; -} -crit_e uetnla_binding_release_request_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return {}; + return SRSASN_SUCCESS; } -uetnla_binding_release_request_ies_o::value_c uetnla_binding_release_request_ies_o::get_value(const uint32_t& id) +void ng_setup_resp_ies_container::to_json(json_writer& j) const { - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_fieldname(""); + amf_name.to_json(j); + j.write_fieldname(""); + served_guami_list.to_json(j); + j.write_fieldname(""); + relative_amf_capacity.to_json(j); + j.write_fieldname(""); + plmn_support_list.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); } - return ret; -} -presence_e uetnla_binding_release_request_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); + if (ue_retention_info_present) { + j.write_fieldname(""); + ue_retention_info.to_json(j); } - return {}; + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& uetnla_binding_release_request_ies_o::value_c::amf_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& uetnla_binding_release_request_ies_o::value_c::ran_ue_ngap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& uetnla_binding_release_request_ies_o::value_c::amf_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& uetnla_binding_release_request_ies_o::value_c::ran_ue_ngap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -void uetnla_binding_release_request_ies_o::value_c::destroy_() {} -void uetnla_binding_release_request_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; -} -uetnla_binding_release_request_ies_o::value_c::value_c(const uetnla_binding_release_request_ies_o::value_c& other) +// NGSetupResponse ::= SEQUENCE +SRSASN_CODE ng_setup_resp_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uetnla_binding_release_request_ies_o::value_c& uetnla_binding_release_request_ies_o::value_c:: - operator=(const uetnla_binding_release_request_ies_o::value_c& other) +SRSASN_CODE ng_setup_resp_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); - return *this; + return SRSASN_SUCCESS; } -void uetnla_binding_release_request_ies_o::value_c::to_json(json_writer& j) const +void ng_setup_resp_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - default: - log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); - } + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); j.end_obj(); } -SRSASN_CODE uetnla_binding_release_request_ies_o::value_c::pack(bit_ref& bref) const + +template struct asn1::ngap_nr::protocol_ie_field_s; + +overload_start_ies_container::overload_start_ies_container() : + amf_overload_resp(2, crit_e::reject), + amf_traffic_load_reduction_ind(9, crit_e::ignore), + overload_start_nssai_list(49, crit_e::ignore) +{} +SRSASN_CODE overload_start_ies_container::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - default: - log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; + uint32_t nof_ies = 0; + nof_ies += amf_overload_resp_present ? 1 : 0; + nof_ies += amf_traffic_load_reduction_ind_present ? 1 : 0; + nof_ies += overload_start_nssai_list_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + if (amf_overload_resp_present) { + HANDLE_CODE(amf_overload_resp.pack(bref)); + } + if (amf_traffic_load_reduction_ind_present) { + HANDLE_CODE(amf_traffic_load_reduction_ind.pack(bref)); } + if (overload_start_nssai_list_present) { + HANDLE_CODE(overload_start_nssai_list.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE uetnla_binding_release_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE overload_start_ies_container::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - default: - log_invalid_choice_id(type_, "uetnla_binding_release_request_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string uetnla_binding_release_request_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"INTEGER (0..1099511627775)", "INTEGER (0..4294967295)"}; - return convert_enum_idx(options, 2, value, "uetnla_binding_release_request_ies_o::value_c::types"); -} + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); -// UplinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ul_nas_transport_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {10, 85, 38, 121}; - return map_enum_number(options, 4, idx, "id"); -} -bool ul_nas_transport_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {10, 85, 38, 121}; - for (const auto& o : options) { - if (o == id) { - return true; + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 2: + amf_overload_resp_present = true; + amf_overload_resp.id = c.id; + amf_overload_resp.crit = c.crit; + amf_overload_resp.value = c.value.amf_overload_resp(); + break; + case 9: + amf_traffic_load_reduction_ind_present = true; + amf_traffic_load_reduction_ind.id = c.id; + amf_traffic_load_reduction_ind.crit = c.crit; + amf_traffic_load_reduction_ind.value = c.value.amf_traffic_load_reduction_ind(); + break; + case 49: + overload_start_nssai_list_present = true; + overload_start_nssai_list.id = c.id; + overload_start_nssai_list.crit = c.crit; + overload_start_nssai_list.value = c.value.overload_start_nssai_list(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; + + return SRSASN_SUCCESS; } -crit_e ul_nas_transport_ies_o::get_crit(const uint32_t& id) +void overload_start_ies_container::to_json(json_writer& j) const { - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 38: - return crit_e::reject; - case 121: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + if (amf_overload_resp_present) { + j.write_fieldname(""); + amf_overload_resp.to_json(j); } - return {}; -} -ul_nas_transport_ies_o::value_c ul_nas_transport_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 38: - ret.set(value_c::types::nas_pdu); - break; - case 121: - ret.set(value_c::types::user_location_info); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + if (amf_traffic_load_reduction_ind_present) { + j.write_fieldname(""); + amf_traffic_load_reduction_ind.to_json(j); } - return ret; -} -presence_e ul_nas_transport_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 38: - return presence_e::mandatory; - case 121: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); + if (overload_start_nssai_list_present) { + j.write_fieldname(""); + overload_start_nssai_list.to_json(j); } - return {}; + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& ul_nas_transport_ies_o::value_c::amf_ue_ngap_id() +// OverloadStart ::= SEQUENCE +SRSASN_CODE overload_start_s::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uint64_t& ul_nas_transport_ies_o::value_c::ran_ue_ngap_id() +SRSASN_CODE overload_start_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() +void overload_start_s::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() + +SRSASN_CODE protocol_ie_container_empty_l::pack(bit_ref& bref) const { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + return SRSASN_SUCCESS; } -const uint64_t& ul_nas_transport_ies_o::value_c::amf_ue_ngap_id() const +SRSASN_CODE protocol_ie_container_empty_l::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + if (nof_ies > 0) { + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint64_t& ul_nas_transport_ies_o::value_c::ran_ue_ngap_id() const +void protocol_ie_container_empty_l::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.end_obj(); } -const unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() const + +// OverloadStop ::= SEQUENCE +SRSASN_CODE overload_stop_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -const user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() const +SRSASN_CODE overload_stop_s::unpack(cbit_ref& bref) { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ul_nas_transport_ies_o::value_c::destroy_() +void overload_stop_s::to_json(json_writer& j) const { - switch (type_) { - case types::nas_pdu: - c.destroy >(); - break; - case types::user_location_info: - c.destroy(); - break; - default: - break; - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -void ul_nas_transport_ies_o::value_c::set(types::options e) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_modify_confirm_ies_container::pdu_session_res_modify_confirm_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_modify_list_mod_cfm(62, crit_e::ignore), + pdu_session_res_failed_to_modify_list_mod_cfm(131, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_modify_confirm_ies_container::pack(bit_ref& bref) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::nas_pdu: - c.init >(); - break; - case types::user_location_info: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); + uint32_t nof_ies = 3; + nof_ies += pdu_session_res_failed_to_modify_list_mod_cfm_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(pdu_session_res_modify_list_mod_cfm.pack(bref)); + if (pdu_session_res_failed_to_modify_list_mod_cfm_present) { + HANDLE_CODE(pdu_session_res_failed_to_modify_list_mod_cfm.pack(bref)); } -} -ul_nas_transport_ies_o::value_c::value_c(const ul_nas_transport_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::nas_pdu: - c.init(other.c.get >()); - break; - case types::user_location_info: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } + + return SRSASN_SUCCESS; } -ul_nas_transport_ies_o::value_c& ul_nas_transport_ies_o::value_c:: - operator=(const ul_nas_transport_ies_o::value_c& other) +SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::nas_pdu: - c.set(other.c.get >()); - break; - case types::user_location_info: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 62: + nof_mandatory_ies--; + pdu_session_res_modify_list_mod_cfm.id = c.id; + pdu_session_res_modify_list_mod_cfm.crit = c.crit; + pdu_session_res_modify_list_mod_cfm.value = c.value.pdu_session_res_modify_list_mod_cfm(); + break; + case 131: + pdu_session_res_failed_to_modify_list_mod_cfm_present = true; + pdu_session_res_failed_to_modify_list_mod_cfm.id = c.id; + pdu_session_res_failed_to_modify_list_mod_cfm.crit = c.crit; + pdu_session_res_failed_to_modify_list_mod_cfm.value = c.value.pdu_session_res_failed_to_modify_list_mod_cfm(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ul_nas_transport_ies_o::value_c::to_json(json_writer& j) const +void pdu_session_res_modify_confirm_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::nas_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::user_location_info: - j.write_fieldname("UserLocationInformation"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + pdu_session_res_modify_list_mod_cfm.to_json(j); + if (pdu_session_res_failed_to_modify_list_mod_cfm_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_modify_list_mod_cfm.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); } j.end_obj(); } -SRSASN_CODE ul_nas_transport_ies_o::value_c::pack(bit_ref& bref) const + +// PDUSessionResourceModifyConfirm ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_confirm_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ul_nas_transport_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_confirm_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::nas_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::user_location_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_nas_transport_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ul_nas_transport_ies_o::value_c::types_opts::to_string() const +void pdu_session_res_modify_confirm_s::to_json(json_writer& j) const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "UserLocationInformation"}; - return convert_enum_idx(options, 4, value, "ul_nas_transport_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UplinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ul_non_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_modify_ind_ies_container::pdu_session_res_modify_ind_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + pdu_session_res_modify_list_mod_ind(63, crit_e::reject) +{} +SRSASN_CODE pdu_session_res_modify_ind_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {89, 46}; - return map_enum_number(options, 2, idx, "id"); + uint32_t nof_ies = 3; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(pdu_session_res_modify_list_mod_ind.pack(bref)); + + return SRSASN_SUCCESS; } -bool ul_non_ueassociated_nrp_pa_transport_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pdu_session_res_modify_ind_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {89, 46}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 63: + nof_mandatory_ies--; + pdu_session_res_modify_list_mod_ind.id = c.id; + pdu_session_res_modify_list_mod_ind.crit = c.crit; + pdu_session_res_modify_list_mod_ind.value = c.value.pdu_session_res_modify_list_mod_ind(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -crit_e ul_non_ueassociated_nrp_pa_transport_ies_o::get_crit(const uint32_t& id) +void pdu_session_res_modify_ind_ies_container::to_json(json_writer& j) const { - switch (id) { - case 89: - return crit_e::reject; - case 46: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + pdu_session_res_modify_list_mod_ind.to_json(j); + j.end_obj(); } -ul_non_ueassociated_nrp_pa_transport_ies_o::value_c -ul_non_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) + +// PDUSessionResourceModifyIndication ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_ind_s::pack(bit_ref& bref) const { - value_c ret{}; - switch (id) { - case 89: - ret.set(value_c::types::routing_id); - break; - case 46: - ret.set(value_c::types::nrp_pa_pdu); - break; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return ret; + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -presence_e ul_non_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& id) +SRSASN_CODE pdu_session_res_modify_ind_s::unpack(cbit_ref& bref) { - switch (id) { - case 89: - return presence_e::mandatory; - case 46: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_ind_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// Value ::= OPEN TYPE -unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_modify_request_ies_container::pdu_session_res_modify_request_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + ran_paging_prio(83, crit_e::ignore), + pdu_session_res_modify_list_mod_req(64, crit_e::reject) +{} +SRSASN_CODE pdu_session_res_modify_request_ies_container::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 3; + nof_ies += ran_paging_prio_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (ran_paging_prio_present) { + HANDLE_CODE(ran_paging_prio.pack(bref)); + } + HANDLE_CODE(pdu_session_res_modify_list_mod_req.pack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() +SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 83: + ran_paging_prio_present = true; + ran_paging_prio.id = c.id; + ran_paging_prio.crit = c.crit; + ran_paging_prio.value = c.value.ran_paging_prio(); + break; + case 64: + nof_mandatory_ies--; + pdu_session_res_modify_list_mod_req.id = c.id; + pdu_session_res_modify_list_mod_req.crit = c.crit; + pdu_session_res_modify_list_mod_req.value = c.value.pdu_session_res_modify_list_mod_req(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const +void pdu_session_res_modify_request_ies_container::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (ran_paging_prio_present) { + j.write_fieldname(""); + ran_paging_prio.to_json(j); + } + j.write_fieldname(""); + pdu_session_res_modify_list_mod_req.to_json(j); + j.end_obj(); } -const unbounded_octstring& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const + +// PDUSessionResourceModifyRequest ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_request_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() +SRSASN_CODE pdu_session_res_modify_request_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::routing_id: - c.destroy >(); - break; - case types::nrp_pa_pdu: - c.destroy >(); - break; - default: - break; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::set(types::options e) +void pdu_session_res_modify_request_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::routing_id: - c.init >(); - break; - case types::nrp_pa_pdu: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::value_c( - const ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_modify_resp_ies_container::pdu_session_res_modify_resp_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_modify_list_mod_res(65, crit_e::ignore), + pdu_session_res_failed_to_modify_list_mod_res(54, crit_e::ignore), + user_location_info(121, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_modify_resp_ies_container::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::routing_id: - c.init(other.c.get >()); - break; - case types::nrp_pa_pdu: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); + uint32_t nof_ies = 2; + nof_ies += pdu_session_res_modify_list_mod_res_present ? 1 : 0; + nof_ies += pdu_session_res_failed_to_modify_list_mod_res_present ? 1 : 0; + nof_ies += user_location_info_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (pdu_session_res_modify_list_mod_res_present) { + HANDLE_CODE(pdu_session_res_modify_list_mod_res.pack(bref)); + } + if (pdu_session_res_failed_to_modify_list_mod_res_present) { + HANDLE_CODE(pdu_session_res_failed_to_modify_list_mod_res.pack(bref)); + } + if (user_location_info_present) { + HANDLE_CODE(user_location_info.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } + + return SRSASN_SUCCESS; } -ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& ul_non_ueassociated_nrp_pa_transport_ies_o::value_c:: - operator=(const ul_non_ueassociated_nrp_pa_transport_ies_o::value_c& other) +SRSASN_CODE pdu_session_res_modify_resp_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::routing_id: - c.set(other.c.get >()); - break; - case types::nrp_pa_pdu: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 65: + pdu_session_res_modify_list_mod_res_present = true; + pdu_session_res_modify_list_mod_res.id = c.id; + pdu_session_res_modify_list_mod_res.crit = c.crit; + pdu_session_res_modify_list_mod_res.value = c.value.pdu_session_res_modify_list_mod_res(); + break; + case 54: + pdu_session_res_failed_to_modify_list_mod_res_present = true; + pdu_session_res_failed_to_modify_list_mod_res.id = c.id; + pdu_session_res_failed_to_modify_list_mod_res.crit = c.crit; + pdu_session_res_failed_to_modify_list_mod_res.value = c.value.pdu_session_res_failed_to_modify_list_mod_res(); + break; + case 121: + user_location_info_present = true; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const +void pdu_session_res_modify_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::routing_id: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::nrp_pa_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (pdu_session_res_modify_list_mod_res_present) { + j.write_fieldname(""); + pdu_session_res_modify_list_mod_res.to_json(j); + } + if (pdu_session_res_failed_to_modify_list_mod_res_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_modify_list_mod_res.to_json(j); + } + if (user_location_info_present) { + j.write_fieldname(""); + user_location_info.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); } j.end_obj(); } -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::pack(bit_ref& bref) const + +// PDUSessionResourceModifyResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_resp_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::routing_id: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::nrp_pa_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_modify_resp_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::routing_id: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::nrp_pa_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const +void pdu_session_res_modify_resp_s::to_json(json_writer& j) const { - static const char* options[] = {"OCTET STRING", "OCTET STRING"}; - return convert_enum_idx(options, 2, value, "ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UplinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ul_ran_cfg_transfer_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_notify_ies_container::pdu_session_res_notify_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + pdu_session_res_notify_list(66, crit_e::reject), + pdu_session_res_released_list_not(67, crit_e::ignore), + user_location_info(121, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_notify_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {99, 158}; - return map_enum_number(options, 2, idx, "id"); + uint32_t nof_ies = 2; + nof_ies += pdu_session_res_notify_list_present ? 1 : 0; + nof_ies += pdu_session_res_released_list_not_present ? 1 : 0; + nof_ies += user_location_info_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (pdu_session_res_notify_list_present) { + HANDLE_CODE(pdu_session_res_notify_list.pack(bref)); + } + if (pdu_session_res_released_list_not_present) { + HANDLE_CODE(pdu_session_res_released_list_not.pack(bref)); + } + if (user_location_info_present) { + HANDLE_CODE(user_location_info.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool ul_ran_cfg_transfer_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pdu_session_res_notify_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {99, 158}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 66: + pdu_session_res_notify_list_present = true; + pdu_session_res_notify_list.id = c.id; + pdu_session_res_notify_list.crit = c.crit; + pdu_session_res_notify_list.value = c.value.pdu_session_res_notify_list(); + break; + case 67: + pdu_session_res_released_list_not_present = true; + pdu_session_res_released_list_not.id = c.id; + pdu_session_res_released_list_not.crit = c.crit; + pdu_session_res_released_list_not.value = c.value.pdu_session_res_released_list_not(); + break; + case 121: + user_location_info_present = true; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; -} -crit_e ul_ran_cfg_transfer_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 99: - return crit_e::ignore; - case 158: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return {}; + return SRSASN_SUCCESS; } -ul_ran_cfg_transfer_ies_o::value_c ul_ran_cfg_transfer_ies_o::get_value(const uint32_t& id) +void pdu_session_res_notify_ies_container::to_json(json_writer& j) const { - value_c ret{}; - switch (id) { - case 99: - ret.set(value_c::types::son_cfg_transfer_ul); - break; - case 158: - ret.set(value_c::types::endc_son_cfg_transfer_ul); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (pdu_session_res_notify_list_present) { + j.write_fieldname(""); + pdu_session_res_notify_list.to_json(j); } - return ret; -} -presence_e ul_ran_cfg_transfer_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 99: - return presence_e::optional; - case 158: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + if (pdu_session_res_released_list_not_present) { + j.write_fieldname(""); + pdu_session_res_released_list_not.to_json(j); } - return {}; + if (user_location_info_present) { + j.write_fieldname(""); + user_location_info.to_json(j); + } + j.end_obj(); } -// Value ::= OPEN TYPE -son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() +// PDUSessionResourceNotify ::= SEQUENCE +SRSASN_CODE pdu_session_res_notify_s::pack(bit_ref& bref) const { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& ul_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_ul() +SRSASN_CODE pdu_session_res_notify_s::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -const son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() const +void pdu_session_res_notify_s::to_json(json_writer& j) const { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_ul() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -void ul_ran_cfg_transfer_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::son_cfg_transfer_ul: - c.destroy(); - break; - case types::endc_son_cfg_transfer_ul: - c.destroy >(); - break; - default: - break; - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -void ul_ran_cfg_transfer_ies_o::value_c::set(types::options e) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_release_cmd_ies_container::pdu_session_res_release_cmd_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + ran_paging_prio(83, crit_e::ignore), + nas_pdu(38, crit_e::ignore), + pdu_session_res_to_release_list_rel_cmd(79, crit_e::reject) +{} +SRSASN_CODE pdu_session_res_release_cmd_ies_container::pack(bit_ref& bref) const { - destroy_(); - type_ = e; - switch (type_) { - case types::son_cfg_transfer_ul: - c.init(); - break; - case types::endc_son_cfg_transfer_ul: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + uint32_t nof_ies = 3; + nof_ies += ran_paging_prio_present ? 1 : 0; + nof_ies += nas_pdu_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (ran_paging_prio_present) { + HANDLE_CODE(ran_paging_prio.pack(bref)); } -} -ul_ran_cfg_transfer_ies_o::value_c::value_c(const ul_ran_cfg_transfer_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::son_cfg_transfer_ul: - c.init(other.c.get()); - break; - case types::endc_son_cfg_transfer_ul: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.pack(bref)); } + HANDLE_CODE(pdu_session_res_to_release_list_rel_cmd.pack(bref)); + + return SRSASN_SUCCESS; } -ul_ran_cfg_transfer_ies_o::value_c& ul_ran_cfg_transfer_ies_o::value_c:: - operator=(const ul_ran_cfg_transfer_ies_o::value_c& other) +SRSASN_CODE pdu_session_res_release_cmd_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::son_cfg_transfer_ul: - c.set(other.c.get()); - break; - case types::endc_son_cfg_transfer_ul: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 83: + ran_paging_prio_present = true; + ran_paging_prio.id = c.id; + ran_paging_prio.crit = c.crit; + ran_paging_prio.value = c.value.ran_paging_prio(); + break; + case 38: + nas_pdu_present = true; + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); + break; + case 79: + nof_mandatory_ies--; + pdu_session_res_to_release_list_rel_cmd.id = c.id; + pdu_session_res_to_release_list_rel_cmd.crit = c.crit; + pdu_session_res_to_release_list_rel_cmd.value = c.value.pdu_session_res_to_release_list_rel_cmd(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ul_ran_cfg_transfer_ies_o::value_c::to_json(json_writer& j) const +void pdu_session_res_release_cmd_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::son_cfg_transfer_ul: - j.write_fieldname("SONConfigurationTransfer"); - c.get().to_json(j); - break; - case types::endc_son_cfg_transfer_ul: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (ran_paging_prio_present) { + j.write_fieldname(""); + ran_paging_prio.to_json(j); } + if (nas_pdu_present) { + j.write_fieldname(""); + nas_pdu.to_json(j); + } + j.write_fieldname(""); + pdu_session_res_to_release_list_rel_cmd.to_json(j); j.end_obj(); } -SRSASN_CODE ul_ran_cfg_transfer_ies_o::value_c::pack(bit_ref& bref) const + +// PDUSessionResourceReleaseCommand ::= SEQUENCE +SRSASN_CODE pdu_session_res_release_cmd_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::son_cfg_transfer_ul: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::endc_son_cfg_transfer_ul: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ul_ran_cfg_transfer_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_release_cmd_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::son_cfg_transfer_ul: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::endc_son_cfg_transfer_ul: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ran_cfg_transfer_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ul_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const +void pdu_session_res_release_cmd_s::to_json(json_writer& j) const { - static const char* options[] = {"SONConfigurationTransfer", "OCTET STRING"}; - return convert_enum_idx(options, 2, value, "ul_ran_cfg_transfer_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UplinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ul_ran_status_transfer_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_release_resp_ies_container::pdu_session_res_release_resp_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_released_list_rel_res(70, crit_e::ignore), + user_location_info(121, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_release_resp_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85, 84}; - return map_enum_number(options, 3, idx, "id"); + uint32_t nof_ies = 3; + nof_ies += user_location_info_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(pdu_session_res_released_list_rel_res.pack(bref)); + if (user_location_info_present) { + HANDLE_CODE(user_location_info.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool ul_ran_status_transfer_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pdu_session_res_release_resp_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {10, 85, 84}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 70: + nof_mandatory_ies--; + pdu_session_res_released_list_rel_res.id = c.id; + pdu_session_res_released_list_rel_res.crit = c.crit; + pdu_session_res_released_list_rel_res.value = c.value.pdu_session_res_released_list_rel_res(); + break; + case 121: + user_location_info_present = true; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; -} -crit_e ul_ran_status_transfer_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 84: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return {}; + return SRSASN_SUCCESS; } -ul_ran_status_transfer_ies_o::value_c ul_ran_status_transfer_ies_o::get_value(const uint32_t& id) +void pdu_session_res_release_resp_ies_container::to_json(json_writer& j) const { - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 84: - ret.set(value_c::types::ran_status_transfer_transparent_container); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + pdu_session_res_released_list_rel_res.to_json(j); + if (user_location_info_present) { + j.write_fieldname(""); + user_location_info.to_json(j); } - return ret; -} -presence_e ul_ran_status_transfer_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 84: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); } - return {}; + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& ul_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() +// PDUSessionResourceReleaseResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_release_resp_s::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uint64_t& ul_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() +SRSASN_CODE pdu_session_res_release_resp_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -ran_status_transfer_transparent_container_s& -ul_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() +void pdu_session_res_release_resp_s::to_json(json_writer& j) const { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -const uint64_t& ul_ran_status_transfer_ies_o::value_c::amf_ue_ngap_id() const + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_setup_request_ies_container::pdu_session_res_setup_request_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + ran_paging_prio(83, crit_e::ignore), + nas_pdu(38, crit_e::reject), + pdu_session_res_setup_list_su_req(74, crit_e::reject), + ue_aggregate_maximum_bit_rate(110, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_setup_request_ies_container::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 3; + nof_ies += ran_paging_prio_present ? 1 : 0; + nof_ies += nas_pdu_present ? 1 : 0; + nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (ran_paging_prio_present) { + HANDLE_CODE(ran_paging_prio.pack(bref)); + } + if (nas_pdu_present) { + HANDLE_CODE(nas_pdu.pack(bref)); + } + HANDLE_CODE(pdu_session_res_setup_list_su_req.pack(bref)); + if (ue_aggregate_maximum_bit_rate_present) { + HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); + } + + return SRSASN_SUCCESS; } -const uint64_t& ul_ran_status_transfer_ies_o::value_c::ran_ue_ngap_id() const +SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 83: + ran_paging_prio_present = true; + ran_paging_prio.id = c.id; + ran_paging_prio.crit = c.crit; + ran_paging_prio.value = c.value.ran_paging_prio(); + break; + case 38: + nas_pdu_present = true; + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); + break; + case 74: + nof_mandatory_ies--; + pdu_session_res_setup_list_su_req.id = c.id; + pdu_session_res_setup_list_su_req.crit = c.crit; + pdu_session_res_setup_list_su_req.value = c.value.pdu_session_res_setup_list_su_req(); + break; + case 110: + ue_aggregate_maximum_bit_rate_present = true; + ue_aggregate_maximum_bit_rate.id = c.id; + ue_aggregate_maximum_bit_rate.crit = c.crit; + ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const ran_status_transfer_transparent_container_s& -ul_ran_status_transfer_ies_o::value_c::ran_status_transfer_transparent_container() const +void pdu_session_res_setup_request_ies_container::to_json(json_writer& j) const { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (ran_paging_prio_present) { + j.write_fieldname(""); + ran_paging_prio.to_json(j); + } + if (nas_pdu_present) { + j.write_fieldname(""); + nas_pdu.to_json(j); + } + j.write_fieldname(""); + pdu_session_res_setup_list_su_req.to_json(j); + if (ue_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + ue_aggregate_maximum_bit_rate.to_json(j); + } + j.end_obj(); } -void ul_ran_status_transfer_ies_o::value_c::destroy_() + +// PDUSessionResourceSetupRequest ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_request_s::pack(bit_ref& bref) const { - switch (type_) { - case types::ran_status_transfer_transparent_container: - c.destroy(); - break; - default: - break; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -void ul_ran_status_transfer_ies_o::value_c::set(types::options e) +SRSASN_CODE pdu_session_res_setup_request_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::ran_status_transfer_transparent_container: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -ul_ran_status_transfer_ies_o::value_c::value_c(const ul_ran_status_transfer_ies_o::value_c& other) +void pdu_session_res_setup_request_s::to_json(json_writer& j) const { - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_status_transfer_transparent_container: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -ul_ran_status_transfer_ies_o::value_c& ul_ran_status_transfer_ies_o::value_c:: - operator=(const ul_ran_status_transfer_ies_o::value_c& other) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_setup_resp_ies_container::pdu_session_res_setup_resp_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_setup_list_su_res(75, crit_e::ignore), + pdu_session_res_failed_to_setup_list_su_res(58, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_setup_resp_ies_container::pack(bit_ref& bref) const { - if (this == &other) { - return *this; + uint32_t nof_ies = 2; + nof_ies += pdu_session_res_setup_list_su_res_present ? 1 : 0; + nof_ies += pdu_session_res_failed_to_setup_list_su_res_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (pdu_session_res_setup_list_su_res_present) { + HANDLE_CODE(pdu_session_res_setup_list_su_res.pack(bref)); } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_status_transfer_transparent_container: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); + if (pdu_session_res_failed_to_setup_list_su_res_present) { + HANDLE_CODE(pdu_session_res_failed_to_setup_list_su_res.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void ul_ran_status_transfer_ies_o::value_c::to_json(json_writer& j) const +SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(cbit_ref& bref) +{ + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 10: + nof_mandatory_ies--; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); + break; + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 75: + pdu_session_res_setup_list_su_res_present = true; + pdu_session_res_setup_list_su_res.id = c.id; + pdu_session_res_setup_list_su_res.crit = c.crit; + pdu_session_res_setup_list_su_res.value = c.value.pdu_session_res_setup_list_su_res(); + break; + case 58: + pdu_session_res_failed_to_setup_list_su_res_present = true; + pdu_session_res_failed_to_setup_list_su_res.id = c.id; + pdu_session_res_failed_to_setup_list_su_res.crit = c.crit; + pdu_session_res_failed_to_setup_list_su_res.value = c.value.pdu_session_res_failed_to_setup_list_su_res(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} +void pdu_session_res_setup_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::ran_status_transfer_transparent_container: - j.write_fieldname("RANStatusTransfer-TransparentContainer"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); + j.write_fieldname(""); + amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + if (pdu_session_res_setup_list_su_res_present) { + j.write_fieldname(""); + pdu_session_res_setup_list_su_res.to_json(j); + } + if (pdu_session_res_failed_to_setup_list_su_res_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_setup_list_su_res.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); } j.end_obj(); } -SRSASN_CODE ul_ran_status_transfer_ies_o::value_c::pack(bit_ref& bref) const + +// PDUSessionResourceSetupResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_resp_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ran_status_transfer_transparent_container: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ul_ran_status_transfer_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_resp_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::ran_status_transfer_transparent_container: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ran_status_transfer_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ul_ran_status_transfer_ies_o::value_c::types_opts::to_string() const +void pdu_session_res_setup_resp_s::to_json(json_writer& j) const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "RANStatusTransfer-TransparentContainer"}; - return convert_enum_idx(options, 3, value, "ul_ran_status_transfer_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// UplinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t ul_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) +template struct asn1::ngap_nr::protocol_ie_field_s; + +pws_cancel_request_ies_container::pws_cancel_request_ies_container() : + msg_id(35, crit_e::reject), + serial_num(95, crit_e::reject), + warning_area_list(122, crit_e::ignore), + cancel_all_warning_msgs(14, crit_e::reject) +{} +SRSASN_CODE pws_cancel_request_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {10, 85, 89, 46}; - return map_enum_number(options, 4, idx, "id"); + uint32_t nof_ies = 2; + nof_ies += warning_area_list_present ? 1 : 0; + nof_ies += cancel_all_warning_msgs_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + if (warning_area_list_present) { + HANDLE_CODE(warning_area_list.pack(bref)); + } + if (cancel_all_warning_msgs_present) { + HANDLE_CODE(cancel_all_warning_msgs.pack(bref)); + } + + return SRSASN_SUCCESS; } -bool ul_ueassociated_nrp_pa_transport_ies_o::is_id_valid(const uint32_t& id) +SRSASN_CODE pws_cancel_request_ies_container::unpack(cbit_ref& bref) { - static const uint32_t options[] = {10, 85, 89, 46}; - for (const auto& o : options) { - if (o == id) { - return true; + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 35: + nof_mandatory_ies--; + msg_id.id = c.id; + msg_id.crit = c.crit; + msg_id.value = c.value.msg_id(); + break; + case 95: + nof_mandatory_ies--; + serial_num.id = c.id; + serial_num.crit = c.crit; + serial_num.value = c.value.serial_num(); + break; + case 122: + warning_area_list_present = true; + warning_area_list.id = c.id; + warning_area_list.crit = c.crit; + warning_area_list.value = c.value.warning_area_list(); + break; + case 14: + cancel_all_warning_msgs_present = true; + cancel_all_warning_msgs.id = c.id; + cancel_all_warning_msgs.crit = c.crit; + cancel_all_warning_msgs.value = c.value.cancel_all_warning_msgs(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; } } - return false; -} -crit_e ul_ueassociated_nrp_pa_transport_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 10: - return crit_e::reject; - case 85: - return crit_e::reject; - case 89: - return crit_e::reject; - case 46: - return crit_e::reject; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return {}; + return SRSASN_SUCCESS; } -ul_ueassociated_nrp_pa_transport_ies_o::value_c ul_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) +void pws_cancel_request_ies_container::to_json(json_writer& j) const { - value_c ret{}; - switch (id) { - case 10: - ret.set(value_c::types::amf_ue_ngap_id); - break; - case 85: - ret.set(value_c::types::ran_ue_ngap_id); - break; - case 89: - ret.set(value_c::types::routing_id); - break; - case 46: - ret.set(value_c::types::nrp_pa_pdu); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_fieldname(""); + msg_id.to_json(j); + j.write_fieldname(""); + serial_num.to_json(j); + if (warning_area_list_present) { + j.write_fieldname(""); + warning_area_list.to_json(j); } - return ret; -} -presence_e ul_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 10: - return presence_e::mandatory; - case 85: - return presence_e::mandatory; - case 89: - return presence_e::mandatory; - case 46: - return presence_e::mandatory; - default: - asn1::log_error("The id=%d is not recognized", id); + if (cancel_all_warning_msgs_present) { + j.write_fieldname(""); + cancel_all_warning_msgs.to_json(j); } - return {}; + j.end_obj(); } -// Value ::= OPEN TYPE -uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() +// PWSCancelRequest ::= SEQUENCE +SRSASN_CODE pws_cancel_request_s::pack(bit_ref& bref) const { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() +SRSASN_CODE pws_cancel_request_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +void pws_cancel_request_s::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pws_cancel_resp_ies_container::pws_cancel_resp_ies_container() : + msg_id(35, crit_e::reject), + serial_num(95, crit_e::reject), + broadcast_cancelled_area_list(12, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) +{} +SRSASN_CODE pws_cancel_resp_ies_container::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 2; + nof_ies += broadcast_cancelled_area_list_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + if (broadcast_cancelled_area_list_present) { + HANDLE_CODE(broadcast_cancelled_area_list.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + + return SRSASN_SUCCESS; } -const uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::amf_ue_ngap_id() const +SRSASN_CODE pws_cancel_resp_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 35: + nof_mandatory_ies--; + msg_id.id = c.id; + msg_id.crit = c.crit; + msg_id.value = c.value.msg_id(); + break; + case 95: + nof_mandatory_ies--; + serial_num.id = c.id; + serial_num.crit = c.crit; + serial_num.value = c.value.serial_num(); + break; + case 12: + broadcast_cancelled_area_list_present = true; + broadcast_cancelled_area_list.id = c.id; + broadcast_cancelled_area_list.crit = c.crit; + broadcast_cancelled_area_list.value = c.value.broadcast_cancelled_area_list(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const uint64_t& ul_ueassociated_nrp_pa_transport_ies_o::value_c::ran_ue_ngap_id() const +void pws_cancel_resp_ies_container::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname(""); + msg_id.to_json(j); + j.write_fieldname(""); + serial_num.to_json(j); + if (broadcast_cancelled_area_list_present) { + j.write_fieldname(""); + broadcast_cancelled_area_list.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); } -const unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() const + +// PWSCancelResponse ::= SEQUENCE +SRSASN_CODE pws_cancel_resp_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -const unbounded_octstring& ul_ueassociated_nrp_pa_transport_ies_o::value_c::nrp_pa_pdu() const +SRSASN_CODE pws_cancel_resp_s::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -void ul_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() +void pws_cancel_resp_s::to_json(json_writer& j) const { - switch (type_) { - case types::routing_id: - c.destroy >(); - break; - case types::nrp_pa_pdu: - c.destroy >(); - break; - default: - break; - } + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -void ul_ueassociated_nrp_pa_transport_ies_o::value_c::set(types::options e) + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pws_fail_ind_ies_container::pws_fail_ind_ies_container() : + pws_failed_cell_id_list(81, crit_e::reject), global_ran_node_id(27, crit_e::reject) +{} +SRSASN_CODE pws_fail_ind_ies_container::pack(bit_ref& bref) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_ue_ngap_id: - break; - case types::ran_ue_ngap_id: - break; - case types::routing_id: - c.init >(); - break; - case types::nrp_pa_pdu: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); - } -} -ul_ueassociated_nrp_pa_transport_ies_o::value_c::value_c(const ul_ueassociated_nrp_pa_transport_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::amf_ue_ngap_id: - c.init(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.init(other.c.get()); - break; - case types::routing_id: - c.init(other.c.get >()); - break; - case types::nrp_pa_pdu: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); - } + uint32_t nof_ies = 2; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(pws_failed_cell_id_list.pack(bref)); + HANDLE_CODE(global_ran_node_id.pack(bref)); + + return SRSASN_SUCCESS; } -ul_ueassociated_nrp_pa_transport_ies_o::value_c& ul_ueassociated_nrp_pa_transport_ies_o::value_c:: - operator=(const ul_ueassociated_nrp_pa_transport_ies_o::value_c& other) +SRSASN_CODE pws_fail_ind_ies_container::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::amf_ue_ngap_id: - c.set(other.c.get()); - break; - case types::ran_ue_ngap_id: - c.set(other.c.get()); - break; - case types::routing_id: - c.set(other.c.get >()); - break; - case types::nrp_pa_pdu: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 81: + nof_mandatory_ies--; + pws_failed_cell_id_list.id = c.id; + pws_failed_cell_id_list.crit = c.crit; + pws_failed_cell_id_list.value = c.value.pws_failed_cell_id_list(); + break; + case 27: + nof_mandatory_ies--; + global_ran_node_id.id = c.id; + global_ran_node_id.crit = c.crit; + global_ran_node_id.value = c.value.global_ran_node_id(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); - return *this; + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -void ul_ueassociated_nrp_pa_transport_ies_o::value_c::to_json(json_writer& j) const +void pws_fail_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_ue_ngap_id: - j.write_int("INTEGER (0..1099511627775)", c.get()); - break; - case types::ran_ue_ngap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::routing_id: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::nrp_pa_pdu: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); - } + j.write_fieldname(""); + pws_failed_cell_id_list.to_json(j); + j.write_fieldname(""); + global_ran_node_id.to_json(j); j.end_obj(); } -SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_o::value_c::pack(bit_ref& bref) const + +// PWSFailureIndication ::= SEQUENCE +SRSASN_CODE pws_fail_ind_s::pack(bit_ref& bref) const { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::routing_id: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::nrp_pa_pdu: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + return SRSASN_SUCCESS; } -SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE pws_fail_ind_s::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)1099511627775u, false, true)); - break; - case types::ran_ue_ngap_id: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::routing_id: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::nrp_pa_pdu: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ul_ueassociated_nrp_pa_transport_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + return SRSASN_SUCCESS; } - -std::string ul_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_string() const +void pws_fail_ind_s::to_json(json_writer& j) const { - static const char* options[] = { - "INTEGER (0..1099511627775)", "INTEGER (0..4294967295)", "OCTET STRING", "OCTET STRING"}; - return convert_enum_idx(options, 4, value, "ul_ueassociated_nrp_pa_transport_ies_o::value_c::types"); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -// WriteReplaceWarningRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t write_replace_warning_request_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {35, 95, 122, 87, 47, 125, 124, 20, 123, 17, 141}; - return map_enum_number(options, 11, idx, "id"); -} -bool write_replace_warning_request_ies_o::is_id_valid(const uint32_t& id) +template struct asn1::ngap_nr::protocol_ie_field_s; + +pws_restart_ind_ies_container::pws_restart_ind_ies_container() : + cell_id_list_for_restart(16, crit_e::reject), + global_ran_node_id(27, crit_e::reject), + tai_list_for_restart(104, crit_e::reject), + emergency_area_id_list_for_restart(23, crit_e::reject) +{} +SRSASN_CODE pws_restart_ind_ies_container::pack(bit_ref& bref) const { - static const uint32_t options[] = {35, 95, 122, 87, 47, 125, 124, 20, 123, 17, 141}; - for (const auto& o : options) { - if (o == id) { - return true; - } + uint32_t nof_ies = 3; + nof_ies += emergency_area_id_list_for_restart_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(cell_id_list_for_restart.pack(bref)); + HANDLE_CODE(global_ran_node_id.pack(bref)); + HANDLE_CODE(tai_list_for_restart.pack(bref)); + if (emergency_area_id_list_for_restart_present) { + HANDLE_CODE(emergency_area_id_list_for_restart.pack(bref)); } - return false; + + return SRSASN_SUCCESS; } -crit_e write_replace_warning_request_ies_o::get_crit(const uint32_t& id) +SRSASN_CODE pws_restart_ind_ies_container::unpack(cbit_ref& bref) { - switch (id) { - case 35: - return crit_e::reject; - case 95: - return crit_e::reject; - case 122: - return crit_e::ignore; - case 87: - return crit_e::reject; - case 47: - return crit_e::reject; - case 125: - return crit_e::ignore; - case 124: - return crit_e::ignore; - case 20: - return crit_e::ignore; - case 123: - return crit_e::ignore; - case 17: - return crit_e::reject; - case 141: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 16: + nof_mandatory_ies--; + cell_id_list_for_restart.id = c.id; + cell_id_list_for_restart.crit = c.crit; + cell_id_list_for_restart.value = c.value.cell_id_list_for_restart(); + break; + case 27: + nof_mandatory_ies--; + global_ran_node_id.id = c.id; + global_ran_node_id.crit = c.crit; + global_ran_node_id.value = c.value.global_ran_node_id(); + break; + case 104: + nof_mandatory_ies--; + tai_list_for_restart.id = c.id; + tai_list_for_restart.crit = c.crit; + tai_list_for_restart.value = c.value.tai_list_for_restart(); + break; + case 23: + emergency_area_id_list_for_restart_present = true; + emergency_area_id_list_for_restart.id = c.id; + emergency_area_id_list_for_restart.crit = c.crit; + emergency_area_id_list_for_restart.value = c.value.emergency_area_id_list_for_restart(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } } - return {}; -} -write_replace_warning_request_ies_o::value_c write_replace_warning_request_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 35: - ret.set(value_c::types::msg_id); - break; - case 95: - ret.set(value_c::types::serial_num); - break; - case 122: - ret.set(value_c::types::warning_area_list); - break; - case 87: - ret.set(value_c::types::repeat_period); - break; - case 47: - ret.set(value_c::types::nof_broadcasts_requested); - break; - case 125: - ret.set(value_c::types::warning_type); - break; - case 124: - ret.set(value_c::types::warning_security_info); - break; - case 20: - ret.set(value_c::types::data_coding_scheme); - break; - case 123: - ret.set(value_c::types::warning_msg_contents); - break; - case 17: - ret.set(value_c::types::concurrent_warning_msg_ind); - break; - case 141: - ret.set(value_c::types::warning_area_coordinates); - break; - default: - asn1::log_error("The id=%d is not recognized", id); + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } - return ret; + return SRSASN_SUCCESS; } -presence_e write_replace_warning_request_ies_o::get_presence(const uint32_t& id) +void pws_restart_ind_ies_container::to_json(json_writer& j) const { - switch (id) { - case 35: - return presence_e::mandatory; - case 95: - return presence_e::mandatory; - case 122: - return presence_e::optional; - case 87: - return presence_e::mandatory; - case 47: - return presence_e::mandatory; - case 125: - return presence_e::optional; - case 124: - return presence_e::optional; - case 20: - return presence_e::optional; - case 123: - return presence_e::optional; - case 17: - return presence_e::optional; - case 141: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); + j.start_obj(); + j.write_fieldname(""); + cell_id_list_for_restart.to_json(j); + j.write_fieldname(""); + global_ran_node_id.to_json(j); + j.write_fieldname(""); + tai_list_for_restart.to_json(j); + if (emergency_area_id_list_for_restart_present) { + j.write_fieldname(""); + emergency_area_id_list_for_restart.to_json(j); } - return {}; + j.end_obj(); } -// Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& write_replace_warning_request_ies_o::value_c::repeat_period() -{ - assert_choice_type("INTEGER (0..131071)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& write_replace_warning_request_ies_o::value_c::nof_broadcasts_requested() -{ - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() +// PWSRestartIndication ::= SEQUENCE +SRSASN_CODE pws_restart_ind_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() +SRSASN_CODE pws_restart_ind_s::unpack(cbit_ref& bref) { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -unbounded_octstring& write_replace_warning_request_ies_o::value_c::warning_msg_contents() +void pws_restart_ind_s::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() + +template struct asn1::ngap_nr::protocol_ie_field_s; + +paging_ies_container::paging_ies_container() : + ue_paging_id(115, crit_e::ignore), + paging_drx(50, crit_e::ignore), + tai_list_for_paging(103, crit_e::ignore), + paging_prio(52, crit_e::ignore), + ue_radio_cap_for_paging(118, crit_e::ignore), + paging_origin(51, crit_e::ignore), + assist_data_for_paging(11, crit_e::ignore) +{} +SRSASN_CODE paging_ies_container::pack(bit_ref& bref) const { - assert_choice_type("ConcurrentWarningMessageInd", type_.to_string(), "Value"); - return c.get(); + uint32_t nof_ies = 2; + nof_ies += paging_drx_present ? 1 : 0; + nof_ies += paging_prio_present ? 1 : 0; + nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; + nof_ies += paging_origin_present ? 1 : 0; + nof_ies += assist_data_for_paging_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(ue_paging_id.pack(bref)); + if (paging_drx_present) { + HANDLE_CODE(paging_drx.pack(bref)); + } + HANDLE_CODE(tai_list_for_paging.pack(bref)); + if (paging_prio_present) { + HANDLE_CODE(paging_prio.pack(bref)); + } + if (ue_radio_cap_for_paging_present) { + HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); + } + if (paging_origin_present) { + HANDLE_CODE(paging_origin.pack(bref)); + } + if (assist_data_for_paging_present) { + HANDLE_CODE(assist_data_for_paging.pack(bref)); + } + + return SRSASN_SUCCESS; } -unbounded_octstring& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() +SRSASN_CODE paging_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 115: + nof_mandatory_ies--; + ue_paging_id.id = c.id; + ue_paging_id.crit = c.crit; + ue_paging_id.value = c.value.ue_paging_id(); + break; + case 50: + paging_drx_present = true; + paging_drx.id = c.id; + paging_drx.crit = c.crit; + paging_drx.value = c.value.paging_drx(); + break; + case 103: + nof_mandatory_ies--; + tai_list_for_paging.id = c.id; + tai_list_for_paging.crit = c.crit; + tai_list_for_paging.value = c.value.tai_list_for_paging(); + break; + case 52: + paging_prio_present = true; + paging_prio.id = c.id; + paging_prio.crit = c.crit; + paging_prio.value = c.value.paging_prio(); + break; + case 118: + ue_radio_cap_for_paging_present = true; + ue_radio_cap_for_paging.id = c.id; + ue_radio_cap_for_paging.crit = c.crit; + ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); + break; + case 51: + paging_origin_present = true; + paging_origin.id = c.id; + paging_origin.crit = c.crit; + paging_origin.value = c.value.paging_origin(); + break; + case 11: + assist_data_for_paging_present = true; + assist_data_for_paging.id = c.id; + assist_data_for_paging.crit = c.crit; + assist_data_for_paging.value = c.value.assist_data_for_paging(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() const +void paging_ies_container::to_json(json_writer& j) const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname(""); + ue_paging_id.to_json(j); + if (paging_drx_present) { + j.write_fieldname(""); + paging_drx.to_json(j); + } + j.write_fieldname(""); + tai_list_for_paging.to_json(j); + if (paging_prio_present) { + j.write_fieldname(""); + paging_prio.to_json(j); + } + if (ue_radio_cap_for_paging_present) { + j.write_fieldname(""); + ue_radio_cap_for_paging.to_json(j); + } + if (paging_origin_present) { + j.write_fieldname(""); + paging_origin.to_json(j); + } + if (assist_data_for_paging_present) { + j.write_fieldname(""); + assist_data_for_paging.to_json(j); + } + j.end_obj(); } -const warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() const + +// Paging ::= SEQUENCE +SRSASN_CODE paging_s::pack(bit_ref& bref) const { - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -const uint32_t& write_replace_warning_request_ies_o::value_c::repeat_period() const +SRSASN_CODE paging_s::unpack(cbit_ref& bref) { - assert_choice_type("INTEGER (0..131071)", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -const uint32_t& write_replace_warning_request_ies_o::value_c::nof_broadcasts_requested() const +void paging_s::to_json(json_writer& j) const { - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -const fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() const + +template struct asn1::ngap_nr::protocol_ie_field_s; + +path_switch_request_ies_container::path_switch_request_ies_container() : + ran_ue_ngap_id(85, crit_e::reject), + source_amf_ue_ngap_id(100, crit_e::reject), + user_location_info(121, crit_e::ignore), + ue_security_cap(119, crit_e::ignore), + pdu_session_res_to_be_switched_dl_list(76, crit_e::reject), + pdu_session_res_failed_to_setup_list_ps_req(57, crit_e::ignore) +{} +SRSASN_CODE path_switch_request_ies_container::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 5; + nof_ies += pdu_session_res_failed_to_setup_list_ps_req_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(source_amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(user_location_info.pack(bref)); + HANDLE_CODE(ue_security_cap.pack(bref)); + HANDLE_CODE(pdu_session_res_to_be_switched_dl_list.pack(bref)); + if (pdu_session_res_failed_to_setup_list_ps_req_present) { + HANDLE_CODE(pdu_session_res_failed_to_setup_list_ps_req.pack(bref)); + } + + return SRSASN_SUCCESS; } -const fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() const +SRSASN_CODE path_switch_request_ies_container::unpack(cbit_ref& bref) { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 5; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 85: + nof_mandatory_ies--; + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); + break; + case 100: + nof_mandatory_ies--; + source_amf_ue_ngap_id.id = c.id; + source_amf_ue_ngap_id.crit = c.crit; + source_amf_ue_ngap_id.value = c.value.source_amf_ue_ngap_id(); + break; + case 121: + nof_mandatory_ies--; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); + break; + case 119: + nof_mandatory_ies--; + ue_security_cap.id = c.id; + ue_security_cap.crit = c.crit; + ue_security_cap.value = c.value.ue_security_cap(); + break; + case 76: + nof_mandatory_ies--; + pdu_session_res_to_be_switched_dl_list.id = c.id; + pdu_session_res_to_be_switched_dl_list.crit = c.crit; + pdu_session_res_to_be_switched_dl_list.value = c.value.pdu_session_res_to_be_switched_dl_list(); + break; + case 57: + pdu_session_res_failed_to_setup_list_ps_req_present = true; + pdu_session_res_failed_to_setup_list_ps_req.id = c.id; + pdu_session_res_failed_to_setup_list_ps_req.crit = c.crit; + pdu_session_res_failed_to_setup_list_ps_req.value = c.value.pdu_session_res_failed_to_setup_list_ps_req(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() const +void path_switch_request_ies_container::to_json(json_writer& j) const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname(""); + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + source_amf_ue_ngap_id.to_json(j); + j.write_fieldname(""); + user_location_info.to_json(j); + j.write_fieldname(""); + ue_security_cap.to_json(j); + j.write_fieldname(""); + pdu_session_res_to_be_switched_dl_list.to_json(j); + if (pdu_session_res_failed_to_setup_list_ps_req_present) { + j.write_fieldname(""); + pdu_session_res_failed_to_setup_list_ps_req.to_json(j); + } + j.end_obj(); } -const unbounded_octstring& write_replace_warning_request_ies_o::value_c::warning_msg_contents() const + +// PathSwitchRequest ::= SEQUENCE +SRSASN_CODE path_switch_request_s::pack(bit_ref& bref) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } -const concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() const +SRSASN_CODE path_switch_request_s::unpack(cbit_ref& bref) { - assert_choice_type("ConcurrentWarningMessageInd", type_.to_string(), "Value"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; } -const unbounded_octstring& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() const +void path_switch_request_s::to_json(json_writer& j) const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); } -void write_replace_warning_request_ies_o::value_c::destroy_() + +template struct asn1::ngap_nr::protocol_ie_field_s; + +path_switch_request_ack_ies_container::path_switch_request_ack_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + ue_security_cap(119, crit_e::reject), + security_context(93, crit_e::reject), + new_security_context_ind(41, crit_e::reject), + pdu_session_res_switched_list(77, crit_e::ignore), + pdu_session_res_released_list_ps_ack(68, crit_e::ignore), + allowed_nssai(0, crit_e::reject), + core_network_assist_info(18, crit_e::ignore), + rrc_inactive_transition_report_request(91, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore), + redirection_voice_fallback(146, crit_e::ignore) +{} +SRSASN_CODE path_switch_request_ack_ies_container::pack(bit_ref& bref) const { - switch (type_) { - case types::msg_id: - c.destroy >(); - break; - case types::serial_num: - c.destroy >(); - break; - case types::warning_area_list: - c.destroy(); - break; - case types::warning_type: - c.destroy >(); - break; - case types::warning_security_info: - c.destroy >(); - break; - case types::data_coding_scheme: - c.destroy >(); - break; - case types::warning_msg_contents: - c.destroy >(); - break; - case types::warning_area_coordinates: - c.destroy >(); - break; - default: - break; + uint32_t nof_ies = 5; + nof_ies += ue_security_cap_present ? 1 : 0; + nof_ies += new_security_context_ind_present ? 1 : 0; + nof_ies += pdu_session_res_released_list_ps_ack_present ? 1 : 0; + nof_ies += core_network_assist_info_present ? 1 : 0; + nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; + nof_ies += redirection_voice_fallback_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (ue_security_cap_present) { + HANDLE_CODE(ue_security_cap.pack(bref)); } -} -void write_replace_warning_request_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::msg_id: - c.init >(); - break; - case types::serial_num: - c.init >(); - break; - case types::warning_area_list: - c.init(); - break; - case types::repeat_period: - break; - case types::nof_broadcasts_requested: - break; - case types::warning_type: - c.init >(); - break; - case types::warning_security_info: - c.init >(); - break; - case types::data_coding_scheme: - c.init >(); - break; - case types::warning_msg_contents: - c.init >(); - break; - case types::concurrent_warning_msg_ind: - break; - case types::warning_area_coordinates: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); + HANDLE_CODE(security_context.pack(bref)); + if (new_security_context_ind_present) { + HANDLE_CODE(new_security_context_ind.pack(bref)); } -} -write_replace_warning_request_ies_o::value_c::value_c(const write_replace_warning_request_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::msg_id: - c.init(other.c.get >()); - break; - case types::serial_num: - c.init(other.c.get >()); - break; - case types::warning_area_list: - c.init(other.c.get()); - break; - case types::repeat_period: - c.init(other.c.get()); - break; - case types::nof_broadcasts_requested: - c.init(other.c.get()); - break; - case types::warning_type: - c.init(other.c.get >()); - break; - case types::warning_security_info: - c.init(other.c.get >()); - break; - case types::data_coding_scheme: - c.init(other.c.get >()); - break; - case types::warning_msg_contents: - c.init(other.c.get >()); - break; - case types::concurrent_warning_msg_ind: - c.init(other.c.get()); - break; - case types::warning_area_coordinates: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); + HANDLE_CODE(pdu_session_res_switched_list.pack(bref)); + if (pdu_session_res_released_list_ps_ack_present) { + HANDLE_CODE(pdu_session_res_released_list_ps_ack.pack(bref)); } -} -write_replace_warning_request_ies_o::value_c& write_replace_warning_request_ies_o::value_c:: - operator=(const write_replace_warning_request_ies_o::value_c& other) -{ - if (this == &other) { - return *this; + HANDLE_CODE(allowed_nssai.pack(bref)); + if (core_network_assist_info_present) { + HANDLE_CODE(core_network_assist_info.pack(bref)); } - set(other.type()); - switch (type_) { - case types::msg_id: - c.set(other.c.get >()); - break; - case types::serial_num: - c.set(other.c.get >()); - break; - case types::warning_area_list: - c.set(other.c.get()); - break; - case types::repeat_period: - c.set(other.c.get()); - break; - case types::nof_broadcasts_requested: - c.set(other.c.get()); - break; - case types::warning_type: - c.set(other.c.get >()); - break; - case types::warning_security_info: - c.set(other.c.get >()); - break; - case types::data_coding_scheme: - c.set(other.c.get >()); - break; - case types::warning_msg_contents: - c.set(other.c.get >()); - break; - case types::concurrent_warning_msg_ind: - c.set(other.c.get()); - break; - case types::warning_area_coordinates: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); + if (rrc_inactive_transition_report_request_present) { + HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); } - - return *this; -} -void write_replace_warning_request_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::msg_id: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::serial_num: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::warning_area_list: - j.write_fieldname("WarningAreaList"); - c.get().to_json(j); - break; - case types::repeat_period: - j.write_int("INTEGER (0..131071)", c.get()); - break; - case types::nof_broadcasts_requested: - j.write_int("INTEGER (0..65535)", c.get()); - break; - case types::warning_type: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::warning_security_info: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::data_coding_scheme: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::warning_msg_contents: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - case types::concurrent_warning_msg_ind: - j.write_str("ConcurrentWarningMessageInd", "true"); - break; - case types::warning_area_coordinates: - j.write_str("OCTET STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } - j.end_obj(); -} -SRSASN_CODE write_replace_warning_request_ies_o::value_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::serial_num: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::warning_area_list: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::repeat_period: - HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)131071u, false, true)); - break; - case types::nof_broadcasts_requested: - HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)65535u, false, true)); - break; - case types::warning_type: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::warning_security_info: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::data_coding_scheme: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::warning_msg_contents: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::concurrent_warning_msg_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::warning_area_coordinates: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; + if (redirection_voice_fallback_present) { + HANDLE_CODE(redirection_voice_fallback.pack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE write_replace_warning_request_ies_o::value_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ack_ies_container::unpack(cbit_ref& bref) { - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::serial_num: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::warning_area_list: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::repeat_period: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)131071u, false, true)); - break; - case types::nof_broadcasts_requested: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)65535u, false, true)); - break; - case types::warning_type: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::warning_security_info: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::data_coding_scheme: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::warning_msg_contents: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::concurrent_warning_msg_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::warning_area_coordinates: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_request_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); -std::string write_replace_warning_request_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"BIT STRING", - "BIT STRING", - "WarningAreaList", - "INTEGER (0..131071)", - "INTEGER (0..65535)", - "OCTET STRING", - "OCTET STRING", - "BIT STRING", - "OCTET STRING", - "ConcurrentWarningMessageInd", - "OCTET STRING"}; - return convert_enum_idx(options, 11, value, "write_replace_warning_request_ies_o::value_c::types"); -} - -// WriteReplaceWarningResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -uint32_t write_replace_warning_resp_ies_o::idx_to_id(uint32_t idx) -{ - static const uint32_t options[] = {35, 95, 13, 19}; - return map_enum_number(options, 4, idx, "id"); -} -bool write_replace_warning_resp_ies_o::is_id_valid(const uint32_t& id) -{ - static const uint32_t options[] = {35, 95, 13, 19}; - for (const auto& o : options) { - if (o == id) { - return true; - } - } - return false; -} -crit_e write_replace_warning_resp_ies_o::get_crit(const uint32_t& id) -{ - switch (id) { - case 35: - return crit_e::reject; - case 95: - return crit_e::reject; - case 13: - return crit_e::ignore; - case 19: - return crit_e::ignore; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} -write_replace_warning_resp_ies_o::value_c write_replace_warning_resp_ies_o::get_value(const uint32_t& id) -{ - value_c ret{}; - switch (id) { - case 35: - ret.set(value_c::types::msg_id); - break; - case 95: - ret.set(value_c::types::serial_num); - break; - case 13: - ret.set(value_c::types::broadcast_completed_area_list); - break; - case 19: - ret.set(value_c::types::crit_diagnostics); - break; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return ret; -} -presence_e write_replace_warning_resp_ies_o::get_presence(const uint32_t& id) -{ - switch (id) { - case 35: - return presence_e::mandatory; - case 95: - return presence_e::mandatory; - case 13: - return presence_e::optional; - case 19: - return presence_e::optional; - default: - asn1::log_error("The id=%d is not recognized", id); - } - return {}; -} - -// Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() -{ - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() const -{ - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -void write_replace_warning_resp_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::msg_id: - c.destroy >(); - break; - case types::serial_num: - c.destroy >(); - break; - case types::broadcast_completed_area_list: - c.destroy(); - break; - case types::crit_diagnostics: - c.destroy(); - break; - default: - break; - } -} -void write_replace_warning_resp_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::msg_id: - c.init >(); - break; - case types::serial_num: - c.init >(); - break; - case types::broadcast_completed_area_list: - c.init(); - break; - case types::crit_diagnostics: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - } -} -write_replace_warning_resp_ies_o::value_c::value_c(const write_replace_warning_resp_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::msg_id: - c.init(other.c.get >()); - break; - case types::serial_num: - c.init(other.c.get >()); - break; - case types::broadcast_completed_area_list: - c.init(other.c.get()); - break; - case types::crit_diagnostics: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - } -} -write_replace_warning_resp_ies_o::value_c& write_replace_warning_resp_ies_o::value_c:: - operator=(const write_replace_warning_resp_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::msg_id: - c.set(other.c.get >()); - break; - case types::serial_num: - c.set(other.c.get >()); - break; - case types::broadcast_completed_area_list: - c.set(other.c.get()); - break; - case types::crit_diagnostics: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - } - - return *this; -} -void write_replace_warning_resp_ies_o::value_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::msg_id: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::serial_num: - j.write_str("BIT STRING", c.get >().to_string()); - break; - case types::broadcast_completed_area_list: - j.write_fieldname("BroadcastCompletedAreaList"); - c.get().to_json(j); - break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - } - j.end_obj(); -} -SRSASN_CODE write_replace_warning_resp_ies_o::value_c::pack(bit_ref& bref) const -{ - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::serial_num: - HANDLE_CODE((c.get >().pack(bref))); - break; - case types::broadcast_completed_area_list: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE write_replace_warning_resp_ies_o::value_c::unpack(cbit_ref& bref) -{ - varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::msg_id: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::serial_num: - HANDLE_CODE((c.get >().unpack(bref))); - break; - case types::broadcast_completed_area_list: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "write_replace_warning_resp_ies_o::value_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string write_replace_warning_resp_ies_o::value_c::types_opts::to_string() const -{ - static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCompletedAreaList", "CriticalityDiagnostics"}; - return convert_enum_idx(options, 4, value, "write_replace_warning_resp_ies_o::value_c::types"); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -location_report_ies_container::location_report_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - user_location_info(121, crit_e::ignore), - ue_presence_in_area_of_interest_list(116, crit_e::ignore), - location_report_request_type(33, crit_e::ignore), - ps_cell_info(149, crit_e::ignore) -{} -SRSASN_CODE location_report_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 4; - nof_ies += ue_presence_in_area_of_interest_list_present ? 1 : 0; - nof_ies += ps_cell_info_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(user_location_info.pack(bref)); - if (ue_presence_in_area_of_interest_list_present) { - HANDLE_CODE(ue_presence_in_area_of_interest_list.pack(bref)); - } - HANDLE_CODE(location_report_request_type.pack(bref)); - if (ps_cell_info_present) { - HANDLE_CODE(ps_cell_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE location_report_ies_container::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; + uint32_t nof_mandatory_ies = 5; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -42276,29 +41803,65 @@ SRSASN_CODE location_report_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 121: + case 119: + ue_security_cap_present = true; + ue_security_cap.id = c.id; + ue_security_cap.crit = c.crit; + ue_security_cap.value = c.value.ue_security_cap(); + break; + case 93: nof_mandatory_ies--; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); + security_context.id = c.id; + security_context.crit = c.crit; + security_context.value = c.value.security_context(); break; - case 116: - ue_presence_in_area_of_interest_list_present = true; - ue_presence_in_area_of_interest_list.id = c.id; - ue_presence_in_area_of_interest_list.crit = c.crit; - ue_presence_in_area_of_interest_list.value = c.value.ue_presence_in_area_of_interest_list(); + case 41: + new_security_context_ind_present = true; + new_security_context_ind.id = c.id; + new_security_context_ind.crit = c.crit; + new_security_context_ind.value = c.value.new_security_context_ind(); break; - case 33: + case 77: nof_mandatory_ies--; - location_report_request_type.id = c.id; - location_report_request_type.crit = c.crit; - location_report_request_type.value = c.value.location_report_request_type(); + pdu_session_res_switched_list.id = c.id; + pdu_session_res_switched_list.crit = c.crit; + pdu_session_res_switched_list.value = c.value.pdu_session_res_switched_list(); break; - case 149: - ps_cell_info_present = true; - ps_cell_info.id = c.id; - ps_cell_info.crit = c.crit; - ps_cell_info.value = c.value.ps_cell_info(); + case 68: + pdu_session_res_released_list_ps_ack_present = true; + pdu_session_res_released_list_ps_ack.id = c.id; + pdu_session_res_released_list_ps_ack.crit = c.crit; + pdu_session_res_released_list_ps_ack.value = c.value.pdu_session_res_released_list_ps_ack(); + break; + case 0: + nof_mandatory_ies--; + allowed_nssai.id = c.id; + allowed_nssai.crit = c.crit; + allowed_nssai.value = c.value.allowed_nssai(); + break; + case 18: + core_network_assist_info_present = true; + core_network_assist_info.id = c.id; + core_network_assist_info.crit = c.crit; + core_network_assist_info.value = c.value.core_network_assist_info(); + break; + case 91: + rrc_inactive_transition_report_request_present = true; + rrc_inactive_transition_report_request.id = c.id; + rrc_inactive_transition_report_request.crit = c.crit; + rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); + break; + case 146: + redirection_voice_fallback_present = true; + redirection_voice_fallback.id = c.id; + redirection_voice_fallback.crit = c.crit; + redirection_voice_fallback.value = c.value.redirection_voice_fallback(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -42312,44 +41875,66 @@ SRSASN_CODE location_report_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void location_report_ies_container::to_json(json_writer& j) const +void path_switch_request_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); + if (ue_security_cap_present) { + j.write_fieldname(""); + ue_security_cap.to_json(j); + } j.write_fieldname(""); - user_location_info.to_json(j); - if (ue_presence_in_area_of_interest_list_present) { + security_context.to_json(j); + if (new_security_context_ind_present) { j.write_fieldname(""); - ue_presence_in_area_of_interest_list.to_json(j); + new_security_context_ind.to_json(j); } j.write_fieldname(""); - location_report_request_type.to_json(j); - if (ps_cell_info_present) { + pdu_session_res_switched_list.to_json(j); + if (pdu_session_res_released_list_ps_ack_present) { j.write_fieldname(""); - ps_cell_info.to_json(j); + pdu_session_res_released_list_ps_ack.to_json(j); + } + j.write_fieldname(""); + allowed_nssai.to_json(j); + if (core_network_assist_info_present) { + j.write_fieldname(""); + core_network_assist_info.to_json(j); + } + if (rrc_inactive_transition_report_request_present) { + j.write_fieldname(""); + rrc_inactive_transition_report_request.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + if (redirection_voice_fallback_present) { + j.write_fieldname(""); + redirection_voice_fallback.to_json(j); } j.end_obj(); } -// LocationReport ::= SEQUENCE -SRSASN_CODE location_report_s::pack(bit_ref& bref) const +// PathSwitchRequestAcknowledge ::= SEQUENCE +SRSASN_CODE path_switch_request_ack_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE location_report_s::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ack_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void location_report_s::to_json(json_writer& j) const +void path_switch_request_ack_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42357,25 +41942,30 @@ void location_report_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -location_report_ctrl_ies_container::location_report_ctrl_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - location_report_request_type(33, crit_e::ignore) +path_switch_request_fail_ies_container::path_switch_request_fail_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + pdu_session_res_released_list_ps_fail(69, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE location_report_ctrl_ies_container::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_fail_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; + nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(location_report_request_type.pack(bref)); + HANDLE_CODE(pdu_session_res_released_list_ps_fail.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_ctrl_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_fail_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42383,7 +41973,7 @@ SRSASN_CODE location_report_ctrl_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -42398,11 +41988,17 @@ SRSASN_CODE location_report_ctrl_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 33: + case 69: nof_mandatory_ies--; - location_report_request_type.id = c.id; - location_report_request_type.crit = c.crit; - location_report_request_type.value = c.value.location_report_request_type(); + pdu_session_res_released_list_ps_fail.id = c.id; + pdu_session_res_released_list_ps_fail.crit = c.crit; + pdu_session_res_released_list_ps_fail.value = c.value.pdu_session_res_released_list_ps_fail(); + break; + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -42416,7 +42012,7 @@ SRSASN_CODE location_report_ctrl_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void location_report_ctrl_ies_container::to_json(json_writer& j) const +void path_switch_request_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -42424,26 +42020,30 @@ void location_report_ctrl_ies_container::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - location_report_request_type.to_json(j); + pdu_session_res_released_list_ps_fail.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } j.end_obj(); } -// LocationReportingControl ::= SEQUENCE -SRSASN_CODE location_report_ctrl_s::pack(bit_ref& bref) const +// PathSwitchRequestFailure ::= SEQUENCE +SRSASN_CODE path_switch_request_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE location_report_ctrl_s::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void location_report_ctrl_s::to_json(json_writer& j) const +void path_switch_request_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42451,278 +42051,207 @@ void location_report_ctrl_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template +private_ie_container_item_s::private_ie_container_item_s(private_ie_id_c id_, crit_e crit_) : + id(id_), crit(crit_) -location_report_fail_ind_ies_container::location_report_fail_ind_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - cause(15, crit_e::ignore) {} -SRSASN_CODE location_report_fail_ind_ies_container::pack(bit_ref& bref) const +template +SRSASN_CODE private_ie_container_item_s::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(cause.pack(bref)); - + HANDLE_CODE(id.pack(bref)); + HANDLE_CODE(crit.pack(bref)); + { + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(value.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE location_report_fail_ind_ies_container::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} -void location_report_fail_ind_ies_container::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - cause.to_json(j); - j.end_obj(); -} - -// LocationReportingFailureIndication ::= SEQUENCE -SRSASN_CODE location_report_fail_ind_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE location_report_fail_ind_s::unpack(cbit_ref& bref) +template +SRSASN_CODE private_ie_container_item_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - + HANDLE_CODE(id.unpack(bref)); + HANDLE_CODE(crit.unpack(bref)); + { + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(value.unpack(bref)); + } return SRSASN_SUCCESS; } -void location_report_fail_ind_s::to_json(json_writer& j) const +template +void private_ie_container_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); + j.write_fieldname("id"); + id.to_json(j); + j.write_str("criticality", crit.to_string()); j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; - -nas_non_delivery_ind_ies_container::nas_non_delivery_ind_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - nas_pdu(38, crit_e::ignore), - cause(15, crit_e::ignore) -{} -SRSASN_CODE nas_non_delivery_ind_ies_container::pack(bit_ref& bref) const +SRSASN_CODE private_ie_container_empty_l::pack(bit_ref& bref) const { - uint32_t nof_ies = 4; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(nas_pdu.pack(bref)); - HANDLE_CODE(cause.pack(bref)); + uint32_t nof_ies = 0; + pack_length(bref, nof_ies, 1u, 65535u, true); return SRSASN_SUCCESS; } -SRSASN_CODE nas_non_delivery_ind_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE private_ie_container_empty_l::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 38: - nof_mandatory_ies--; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - + unpack_length(nof_ies, bref, 1u, 65535u, true); + if (nof_ies > 0) { return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -void nas_non_delivery_ind_ies_container::to_json(json_writer& j) const +void private_ie_container_empty_l::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - nas_pdu.to_json(j); - j.write_fieldname(""); - cause.to_json(j); j.end_obj(); } -// NASNonDeliveryIndication ::= SEQUENCE -SRSASN_CODE nas_non_delivery_ind_s::pack(bit_ref& bref) const +// PrivateMessage ::= SEQUENCE +SRSASN_CODE private_msg_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); + HANDLE_CODE(private_ies.pack(bref)); + + bref.align_bytes_zero(); return SRSASN_SUCCESS; } -SRSASN_CODE nas_non_delivery_ind_s::unpack(cbit_ref& bref) +SRSASN_CODE private_msg_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); + HANDLE_CODE(private_ies.unpack(bref)); + + bref.align_bytes(); return SRSASN_SUCCESS; } -void nas_non_delivery_ind_s::to_json(json_writer& j) const +void private_msg_s::to_json(json_writer& j) const { + j.start_array(); j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); + j.start_obj("PrivateMessage"); + j.write_fieldname("privateIEs"); + private_ies.to_json(j); j.end_obj(); + j.end_obj(); + j.end_array(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ng_reset_ies_container::ng_reset_ies_container() : cause(15, crit_e::ignore), reset_type(88, crit_e::reject) {} -SRSASN_CODE ng_reset_ies_container::pack(bit_ref& bref) const +ran_cfg_upd_ies_container::ran_cfg_upd_ies_container() : + ran_node_name(82, crit_e::ignore), + supported_ta_list(102, crit_e::reject), + default_paging_drx(21, crit_e::ignore), + global_ran_node_id(27, crit_e::ignore) +{} +SRSASN_CODE ran_cfg_upd_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 2; + uint32_t nof_ies = 0; + nof_ies += ran_node_name_present ? 1 : 0; + nof_ies += supported_ta_list_present ? 1 : 0; + nof_ies += default_paging_drx_present ? 1 : 0; + nof_ies += global_ran_node_id_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(cause.pack(bref)); - HANDLE_CODE(reset_type.pack(bref)); + if (ran_node_name_present) { + HANDLE_CODE(ran_node_name.pack(bref)); + } + if (supported_ta_list_present) { + HANDLE_CODE(supported_ta_list.pack(bref)); + } + if (default_paging_drx_present) { + HANDLE_CODE(default_paging_drx.pack(bref)); + } + if (global_ran_node_id_present) { + HANDLE_CODE(global_ran_node_id.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 2; - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); + case 82: + ran_node_name_present = true; + ran_node_name.id = c.id; + ran_node_name.crit = c.crit; + ran_node_name.value = c.value.ran_node_name(); break; - case 88: - nof_mandatory_ies--; - reset_type.id = c.id; - reset_type.crit = c.crit; - reset_type.value = c.value.reset_type(); + case 102: + supported_ta_list_present = true; + supported_ta_list.id = c.id; + supported_ta_list.crit = c.crit; + supported_ta_list.value = c.value.supported_ta_list(); + break; + case 21: + default_paging_drx_present = true; + default_paging_drx.id = c.id; + default_paging_drx.crit = c.crit; + default_paging_drx.value = c.value.default_paging_drx(); + break; + case 27: + global_ran_node_id_present = true; + global_ran_node_id.id = c.id; + global_ran_node_id.crit = c.crit; + global_ran_node_id.value = c.value.global_ran_node_id(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); return SRSASN_ERROR_DECODE_FAIL; } } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } return SRSASN_SUCCESS; } -void ng_reset_ies_container::to_json(json_writer& j) const +void ran_cfg_upd_ies_container::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname(""); - cause.to_json(j); - j.write_fieldname(""); - reset_type.to_json(j); + if (ran_node_name_present) { + j.write_fieldname(""); + ran_node_name.to_json(j); + } + if (supported_ta_list_present) { + j.write_fieldname(""); + supported_ta_list.to_json(j); + } + if (default_paging_drx_present) { + j.write_fieldname(""); + default_paging_drx.to_json(j); + } + if (global_ran_node_id_present) { + j.write_fieldname(""); + global_ran_node_id.to_json(j); + } j.end_obj(); } -// NGReset ::= SEQUENCE -SRSASN_CODE ng_reset_s::pack(bit_ref& bref) const +// RANConfigurationUpdate ::= SEQUENCE +SRSASN_CODE ran_cfg_upd_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_s::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ng_reset_s::to_json(json_writer& j) const +void ran_cfg_upd_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42730,102 +42259,34 @@ void ng_reset_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; - -ng_reset_ack_ies_container::ng_reset_ack_ies_container() : - ue_associated_lc_ng_conn_list(111, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE ng_reset_ack_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += ue_associated_lc_ng_conn_list_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - if (ue_associated_lc_ng_conn_list_present) { - HANDLE_CODE(ue_associated_lc_ng_conn_list.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ng_reset_ack_ies_container::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 111: - ue_associated_lc_ng_conn_list_present = true; - ue_associated_lc_ng_conn_list.id = c.id; - ue_associated_lc_ng_conn_list.crit = c.crit; - ue_associated_lc_ng_conn_list.value = c.value.ue_associated_lc_ng_conn_list(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void ng_reset_ack_ies_container::to_json(json_writer& j) const -{ - j.start_obj(); - if (ue_associated_lc_ng_conn_list_present) { - j.write_fieldname(""); - ue_associated_lc_ng_conn_list.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); -} - -// NGResetAcknowledge ::= SEQUENCE -SRSASN_CODE ng_reset_ack_s::pack(bit_ref& bref) const +// RANConfigurationUpdateAcknowledge ::= SEQUENCE +SRSASN_CODE ran_cfg_upd_ack_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, protocol_ies, 0, 65535, true)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ack_s::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_ack_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(protocol_ies, bref, 0, 65535, true)); return SRSASN_SUCCESS; } -void ng_reset_ack_s::to_json(json_writer& j) const +void ran_cfg_upd_ack_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ng_setup_fail_ies_container::ng_setup_fail_ies_container() : - cause(15, crit_e::ignore), - time_to_wait(107, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) +ran_cfg_upd_fail_ies_container::ran_cfg_upd_fail_ies_container() : + cause(15, crit_e::ignore), time_to_wait(107, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE ng_setup_fail_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ran_cfg_upd_fail_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 1; nof_ies += time_to_wait_present ? 1 : 0; @@ -42842,7 +42303,7 @@ SRSASN_CODE ng_setup_fail_ies_container::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_fail_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_fail_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42850,7 +42311,7 @@ SRSASN_CODE ng_setup_fail_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 1; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 15: @@ -42883,7 +42344,7 @@ SRSASN_CODE ng_setup_fail_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ng_setup_fail_ies_container::to_json(json_writer& j) const +void ran_cfg_upd_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -42899,22 +42360,22 @@ void ng_setup_fail_ies_container::to_json(json_writer& j) const j.end_obj(); } -// NGSetupFailure ::= SEQUENCE -SRSASN_CODE ng_setup_fail_s::pack(bit_ref& bref) const +// RANConfigurationUpdateFailure ::= SEQUENCE +SRSASN_CODE ran_cfg_upd_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE ran_cfg_upd_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ng_setup_fail_s::to_json(json_writer& j) const +void ran_cfg_upd_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42922,74 +42383,60 @@ void ng_setup_fail_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ng_setup_request_ies_container::ng_setup_request_ies_container() : - global_ran_node_id(27, crit_e::reject), - ran_node_name(82, crit_e::ignore), - supported_ta_list(102, crit_e::reject), - default_paging_drx(21, crit_e::ignore), - ue_retention_info(147, crit_e::ignore) +rrc_inactive_transition_report_ies_container::rrc_inactive_transition_report_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + rrc_state(92, crit_e::ignore), + user_location_info(121, crit_e::ignore) {} -SRSASN_CODE ng_setup_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE rrc_inactive_transition_report_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += ran_node_name_present ? 1 : 0; - nof_ies += ue_retention_info_present ? 1 : 0; + uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(global_ran_node_id.pack(bref)); - if (ran_node_name_present) { - HANDLE_CODE(ran_node_name.pack(bref)); - } - HANDLE_CODE(supported_ta_list.pack(bref)); - HANDLE_CODE(default_paging_drx.pack(bref)); - if (ue_retention_info_present) { - HANDLE_CODE(ue_retention_info.pack(bref)); - } + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(rrc_state.pack(bref)); + HANDLE_CODE(user_location_info.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE rrc_inactive_transition_report_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 4; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 27: + case 10: nof_mandatory_ies--; - global_ran_node_id.id = c.id; - global_ran_node_id.crit = c.crit; - global_ran_node_id.value = c.value.global_ran_node_id(); - break; - case 82: - ran_node_name_present = true; - ran_node_name.id = c.id; - ran_node_name.crit = c.crit; - ran_node_name.value = c.value.ran_node_name(); + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 102: + case 85: nof_mandatory_ies--; - supported_ta_list.id = c.id; - supported_ta_list.crit = c.crit; - supported_ta_list.value = c.value.supported_ta_list(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 21: + case 92: nof_mandatory_ies--; - default_paging_drx.id = c.id; - default_paging_drx.crit = c.crit; - default_paging_drx.value = c.value.default_paging_drx(); + rrc_state.id = c.id; + rrc_state.crit = c.crit; + rrc_state.value = c.value.rrc_state(); break; - case 147: - ue_retention_info_present = true; - ue_retention_info.id = c.id; - ue_retention_info.crit = c.crit; - ue_retention_info.value = c.value.ue_retention_info(); + case 121: + nof_mandatory_ies--; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43003,42 +42450,36 @@ SRSASN_CODE ng_setup_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ng_setup_request_ies_container::to_json(json_writer& j) const +void rrc_inactive_transition_report_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - global_ran_node_id.to_json(j); - if (ran_node_name_present) { - j.write_fieldname(""); - ran_node_name.to_json(j); - } + amf_ue_ngap_id.to_json(j); j.write_fieldname(""); - supported_ta_list.to_json(j); + ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - default_paging_drx.to_json(j); - if (ue_retention_info_present) { - j.write_fieldname(""); - ue_retention_info.to_json(j); - } + rrc_state.to_json(j); + j.write_fieldname(""); + user_location_info.to_json(j); j.end_obj(); } -// NGSetupRequest ::= SEQUENCE -SRSASN_CODE ng_setup_request_s::pack(bit_ref& bref) const +// RRCInactiveTransitionReport ::= SEQUENCE +SRSASN_CODE rrc_inactive_transition_report_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_request_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_inactive_transition_report_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ng_setup_request_s::to_json(json_writer& j) const +void rrc_inactive_transition_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43046,82 +42487,74 @@ void ng_setup_request_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ng_setup_resp_ies_container::ng_setup_resp_ies_container() : - amf_name(1, crit_e::reject), - served_guami_list(96, crit_e::reject), - relative_amf_capacity(86, crit_e::ignore), - plmn_support_list(80, crit_e::reject), - crit_diagnostics(19, crit_e::ignore), - ue_retention_info(147, crit_e::ignore) +reroute_nas_request_ies_container::reroute_nas_request_ies_container() : + ran_ue_ngap_id(85, crit_e::reject), + amf_ue_ngap_id(10, crit_e::ignore), + ngap_msg(42, crit_e::reject), + amf_set_id(3, crit_e::reject), + allowed_nssai(0, crit_e::reject) {} -SRSASN_CODE ng_setup_resp_ies_container::pack(bit_ref& bref) const +SRSASN_CODE reroute_nas_request_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 4; - nof_ies += crit_diagnostics_present ? 1 : 0; - nof_ies += ue_retention_info_present ? 1 : 0; + uint32_t nof_ies = 3; + nof_ies += amf_ue_ngap_id_present ? 1 : 0; + nof_ies += allowed_nssai_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(amf_name.pack(bref)); - HANDLE_CODE(served_guami_list.pack(bref)); - HANDLE_CODE(relative_amf_capacity.pack(bref)); - HANDLE_CODE(plmn_support_list.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - if (ue_retention_info_present) { - HANDLE_CODE(ue_retention_info.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + if (amf_ue_ngap_id_present) { + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + } + HANDLE_CODE(ngap_msg.pack(bref)); + HANDLE_CODE(amf_set_id.pack(bref)); + if (allowed_nssai_present) { + HANDLE_CODE(allowed_nssai.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_resp_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE reroute_nas_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 4; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 1: + case 85: nof_mandatory_ies--; - amf_name.id = c.id; - amf_name.crit = c.crit; - amf_name.value = c.value.amf_name(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 96: - nof_mandatory_ies--; - served_guami_list.id = c.id; - served_guami_list.crit = c.crit; - served_guami_list.value = c.value.served_guami_list(); + case 10: + amf_ue_ngap_id_present = true; + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 86: + case 42: nof_mandatory_ies--; - relative_amf_capacity.id = c.id; - relative_amf_capacity.crit = c.crit; - relative_amf_capacity.value = c.value.relative_amf_capacity(); + ngap_msg.id = c.id; + ngap_msg.crit = c.crit; + ngap_msg.value = c.value.ngap_msg(); break; - case 80: + case 3: nof_mandatory_ies--; - plmn_support_list.id = c.id; - plmn_support_list.crit = c.crit; - plmn_support_list.value = c.value.plmn_support_list(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); + amf_set_id.id = c.id; + amf_set_id.crit = c.crit; + amf_set_id.value = c.value.amf_set_id(); break; - case 147: - ue_retention_info_present = true; - ue_retention_info.id = c.id; - ue_retention_info.crit = c.crit; - ue_retention_info.value = c.value.ue_retention_info(); + case 0: + allowed_nssai_present = true; + allowed_nssai.id = c.id; + allowed_nssai.crit = c.crit; + allowed_nssai.value = c.value.allowed_nssai(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43135,192 +42568,42 @@ SRSASN_CODE ng_setup_resp_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ng_setup_resp_ies_container::to_json(json_writer& j) const +void reroute_nas_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - amf_name.to_json(j); - j.write_fieldname(""); - served_guami_list.to_json(j); - j.write_fieldname(""); - relative_amf_capacity.to_json(j); - j.write_fieldname(""); - plmn_support_list.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - if (ue_retention_info_present) { - j.write_fieldname(""); - ue_retention_info.to_json(j); - } - j.end_obj(); -} - -// NGSetupResponse ::= SEQUENCE -SRSASN_CODE ng_setup_resp_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ng_setup_resp_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ng_setup_resp_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -overload_start_ies_container::overload_start_ies_container() : - amf_overload_resp(2, crit_e::reject), - amf_traffic_load_reduction_ind(9, crit_e::ignore), - overload_start_nssai_list(49, crit_e::ignore) -{} -SRSASN_CODE overload_start_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += amf_overload_resp_present ? 1 : 0; - nof_ies += amf_traffic_load_reduction_ind_present ? 1 : 0; - nof_ies += overload_start_nssai_list_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - if (amf_overload_resp_present) { - HANDLE_CODE(amf_overload_resp.pack(bref)); - } - if (amf_traffic_load_reduction_ind_present) { - HANDLE_CODE(amf_traffic_load_reduction_ind.pack(bref)); - } - if (overload_start_nssai_list_present) { - HANDLE_CODE(overload_start_nssai_list.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE overload_start_ies_container::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 2: - amf_overload_resp_present = true; - amf_overload_resp.id = c.id; - amf_overload_resp.crit = c.crit; - amf_overload_resp.value = c.value.amf_overload_resp(); - break; - case 9: - amf_traffic_load_reduction_ind_present = true; - amf_traffic_load_reduction_ind.id = c.id; - amf_traffic_load_reduction_ind.crit = c.crit; - amf_traffic_load_reduction_ind.value = c.value.amf_traffic_load_reduction_ind(); - break; - case 49: - overload_start_nssai_list_present = true; - overload_start_nssai_list.id = c.id; - overload_start_nssai_list.crit = c.crit; - overload_start_nssai_list.value = c.value.overload_start_nssai_list(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void overload_start_ies_container::to_json(json_writer& j) const -{ - j.start_obj(); - if (amf_overload_resp_present) { - j.write_fieldname(""); - amf_overload_resp.to_json(j); - } - if (amf_traffic_load_reduction_ind_present) { + ran_ue_ngap_id.to_json(j); + if (amf_ue_ngap_id_present) { j.write_fieldname(""); - amf_traffic_load_reduction_ind.to_json(j); + amf_ue_ngap_id.to_json(j); } - if (overload_start_nssai_list_present) { + j.write_fieldname(""); + ngap_msg.to_json(j); + j.write_fieldname(""); + amf_set_id.to_json(j); + if (allowed_nssai_present) { j.write_fieldname(""); - overload_start_nssai_list.to_json(j); - } - j.end_obj(); -} - -// OverloadStart ::= SEQUENCE -SRSASN_CODE overload_start_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE overload_start_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void overload_start_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -SRSASN_CODE protocol_ie_container_empty_l::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - return SRSASN_SUCCESS; -} -SRSASN_CODE protocol_ie_container_empty_l::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - if (nof_ies > 0) { - return SRSASN_ERROR_DECODE_FAIL; + allowed_nssai.to_json(j); } - return SRSASN_SUCCESS; -} -void protocol_ie_container_empty_l::to_json(json_writer& j) const -{ - j.start_obj(); j.end_obj(); } -// OverloadStop ::= SEQUENCE -SRSASN_CODE overload_stop_s::pack(bit_ref& bref) const +// RerouteNASRequest ::= SEQUENCE +SRSASN_CODE reroute_nas_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE overload_stop_s::unpack(cbit_ref& bref) +SRSASN_CODE reroute_nas_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void overload_stop_s::to_json(json_writer& j) const +void reroute_nas_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43328,35 +42611,30 @@ void overload_stop_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_modify_confirm_ies_container::pdu_session_res_modify_confirm_ies_container() : +secondary_rat_data_usage_report_ies_container::secondary_rat_data_usage_report_ies_container() : amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_modify_list_mod_cfm(62, crit_e::ignore), - pdu_session_res_failed_to_modify_list_mod_cfm(131, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) + pdu_session_res_secondary_ratusage_list(142, crit_e::ignore), + ho_flag(143, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_modify_confirm_ies_container::pack(bit_ref& bref) const +SRSASN_CODE secondary_rat_data_usage_report_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; - nof_ies += pdu_session_res_failed_to_modify_list_mod_cfm_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; + nof_ies += ho_flag_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_modify_list_mod_cfm.pack(bref)); - if (pdu_session_res_failed_to_modify_list_mod_cfm_present) { - HANDLE_CODE(pdu_session_res_failed_to_modify_list_mod_cfm.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); + HANDLE_CODE(pdu_session_res_secondary_ratusage_list.pack(bref)); + if (ho_flag_present) { + HANDLE_CODE(ho_flag.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE secondary_rat_data_usage_report_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43364,7 +42642,7 @@ SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43379,23 +42657,17 @@ SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 62: + case 142: nof_mandatory_ies--; - pdu_session_res_modify_list_mod_cfm.id = c.id; - pdu_session_res_modify_list_mod_cfm.crit = c.crit; - pdu_session_res_modify_list_mod_cfm.value = c.value.pdu_session_res_modify_list_mod_cfm(); - break; - case 131: - pdu_session_res_failed_to_modify_list_mod_cfm_present = true; - pdu_session_res_failed_to_modify_list_mod_cfm.id = c.id; - pdu_session_res_failed_to_modify_list_mod_cfm.crit = c.crit; - pdu_session_res_failed_to_modify_list_mod_cfm.value = c.value.pdu_session_res_failed_to_modify_list_mod_cfm(); + pdu_session_res_secondary_ratusage_list.id = c.id; + pdu_session_res_secondary_ratusage_list.crit = c.crit; + pdu_session_res_secondary_ratusage_list.value = c.value.pdu_session_res_secondary_ratusage_list(); break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); + case 143: + ho_flag_present = true; + ho_flag.id = c.id; + ho_flag.crit = c.crit; + ho_flag.value = c.value.ho_flag(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43409,7 +42681,7 @@ SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_modify_confirm_ies_container::to_json(json_writer& j) const +void secondary_rat_data_usage_report_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -43417,34 +42689,30 @@ void pdu_session_res_modify_confirm_ies_container::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - pdu_session_res_modify_list_mod_cfm.to_json(j); - if (pdu_session_res_failed_to_modify_list_mod_cfm_present) { - j.write_fieldname(""); - pdu_session_res_failed_to_modify_list_mod_cfm.to_json(j); - } - if (crit_diagnostics_present) { + pdu_session_res_secondary_ratusage_list.to_json(j); + if (ho_flag_present) { j.write_fieldname(""); - crit_diagnostics.to_json(j); + ho_flag.to_json(j); } j.end_obj(); } -// PDUSessionResourceModifyConfirm ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_confirm_s::pack(bit_ref& bref) const +// SecondaryRATDataUsageReport ::= SEQUENCE +SRSASN_CODE secondary_rat_data_usage_report_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_confirm_s::unpack(cbit_ref& bref) +SRSASN_CODE secondary_rat_data_usage_report_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_modify_confirm_s::to_json(json_writer& j) const +void secondary_rat_data_usage_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43452,33 +42720,35 @@ void pdu_session_res_modify_confirm_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_modify_ind_ies_container::pdu_session_res_modify_ind_ies_container() : +trace_fail_ind_ies_container::trace_fail_ind_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - pdu_session_res_modify_list_mod_ind(63, crit_e::reject) + ngran_trace_id(44, crit_e::ignore), + cause(15, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_modify_ind_ies_container::pack(bit_ref& bref) const +SRSASN_CODE trace_fail_ind_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; + uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_modify_list_mod_ind.pack(bref)); + HANDLE_CODE(ngran_trace_id.pack(bref)); + HANDLE_CODE(cause.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE trace_fail_ind_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 4; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43493,11 +42763,17 @@ SRSASN_CODE pdu_session_res_modify_ind_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 63: + case 44: nof_mandatory_ies--; - pdu_session_res_modify_list_mod_ind.id = c.id; - pdu_session_res_modify_list_mod_ind.crit = c.crit; - pdu_session_res_modify_list_mod_ind.value = c.value.pdu_session_res_modify_list_mod_ind(); + ngran_trace_id.id = c.id; + ngran_trace_id.crit = c.crit; + ngran_trace_id.value = c.value.ngran_trace_id(); + break; + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43511,7 +42787,7 @@ SRSASN_CODE pdu_session_res_modify_ind_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_ies_container::to_json(json_writer& j) const +void trace_fail_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -43519,26 +42795,28 @@ void pdu_session_res_modify_ind_ies_container::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - pdu_session_res_modify_list_mod_ind.to_json(j); + ngran_trace_id.to_json(j); + j.write_fieldname(""); + cause.to_json(j); j.end_obj(); } -// PDUSessionResourceModifyIndication ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_ind_s::pack(bit_ref& bref) const +// TraceFailureIndication ::= SEQUENCE +SRSASN_CODE trace_fail_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_s::unpack(cbit_ref& bref) +SRSASN_CODE trace_fail_ind_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_s::to_json(json_writer& j) const +void trace_fail_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43546,30 +42824,23 @@ void pdu_session_res_modify_ind_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_modify_request_ies_container::pdu_session_res_modify_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ran_paging_prio(83, crit_e::ignore), - pdu_session_res_modify_list_mod_req(64, crit_e::reject) +trace_start_ies_container::trace_start_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), trace_activation(108, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_modify_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE trace_start_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; - nof_ies += ran_paging_prio_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ran_paging_prio_present) { - HANDLE_CODE(ran_paging_prio.pack(bref)); - } - HANDLE_CODE(pdu_session_res_modify_list_mod_req.pack(bref)); + HANDLE_CODE(trace_activation.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE trace_start_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43577,7 +42848,7 @@ SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43592,17 +42863,11 @@ SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 83: - ran_paging_prio_present = true; - ran_paging_prio.id = c.id; - ran_paging_prio.crit = c.crit; - ran_paging_prio.value = c.value.ran_paging_prio(); - break; - case 64: + case 108: nof_mandatory_ies--; - pdu_session_res_modify_list_mod_req.id = c.id; - pdu_session_res_modify_list_mod_req.crit = c.crit; - pdu_session_res_modify_list_mod_req.value = c.value.pdu_session_res_modify_list_mod_req(); + trace_activation.id = c.id; + trace_activation.crit = c.crit; + trace_activation.value = c.value.trace_activation(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43616,38 +42881,34 @@ SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_modify_request_ies_container::to_json(json_writer& j) const +void trace_start_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (ran_paging_prio_present) { - j.write_fieldname(""); - ran_paging_prio.to_json(j); - } j.write_fieldname(""); - pdu_session_res_modify_list_mod_req.to_json(j); + trace_activation.to_json(j); j.end_obj(); } -// PDUSessionResourceModifyRequest ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_request_s::pack(bit_ref& bref) const +// TraceStart ::= SEQUENCE +SRSASN_CODE trace_start_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_s::unpack(cbit_ref& bref) +SRSASN_CODE trace_start_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_modify_request_s::to_json(json_writer& j) const +void trace_start_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43655,51 +42916,38 @@ void pdu_session_res_modify_request_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_modify_resp_ies_container::pdu_session_res_modify_resp_ies_container() : +ue_context_mod_fail_ies_container::ue_context_mod_fail_ies_container() : amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_modify_list_mod_res(65, crit_e::ignore), - pdu_session_res_failed_to_modify_list_mod_res(54, crit_e::ignore), - user_location_info(121, crit_e::ignore), + cause(15, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_modify_resp_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_fail_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 2; - nof_ies += pdu_session_res_modify_list_mod_res_present ? 1 : 0; - nof_ies += pdu_session_res_failed_to_modify_list_mod_res_present ? 1 : 0; - nof_ies += user_location_info_present ? 1 : 0; + uint32_t nof_ies = 3; nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_modify_list_mod_res_present) { - HANDLE_CODE(pdu_session_res_modify_list_mod_res.pack(bref)); - } - if (pdu_session_res_failed_to_modify_list_mod_res_present) { - HANDLE_CODE(pdu_session_res_failed_to_modify_list_mod_res.pack(bref)); - } - if (user_location_info_present) { - HANDLE_CODE(user_location_info.pack(bref)); - } + HANDLE_CODE(cause.pack(bref)); if (crit_diagnostics_present) { HANDLE_CODE(crit_diagnostics.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_fail_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 2; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43714,23 +42962,11 @@ SRSASN_CODE pdu_session_res_modify_resp_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 65: - pdu_session_res_modify_list_mod_res_present = true; - pdu_session_res_modify_list_mod_res.id = c.id; - pdu_session_res_modify_list_mod_res.crit = c.crit; - pdu_session_res_modify_list_mod_res.value = c.value.pdu_session_res_modify_list_mod_res(); - break; - case 54: - pdu_session_res_failed_to_modify_list_mod_res_present = true; - pdu_session_res_failed_to_modify_list_mod_res.id = c.id; - pdu_session_res_failed_to_modify_list_mod_res.crit = c.crit; - pdu_session_res_failed_to_modify_list_mod_res.value = c.value.pdu_session_res_failed_to_modify_list_mod_res(); - break; - case 121: - user_location_info_present = true; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); break; case 19: crit_diagnostics_present = true; @@ -43750,25 +42986,15 @@ SRSASN_CODE pdu_session_res_modify_resp_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_ies_container::to_json(json_writer& j) const +void ue_context_mod_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (pdu_session_res_modify_list_mod_res_present) { - j.write_fieldname(""); - pdu_session_res_modify_list_mod_res.to_json(j); - } - if (pdu_session_res_failed_to_modify_list_mod_res_present) { - j.write_fieldname(""); - pdu_session_res_failed_to_modify_list_mod_res.to_json(j); - } - if (user_location_info_present) { - j.write_fieldname(""); - user_location_info.to_json(j); - } + j.write_fieldname(""); + cause.to_json(j); if (crit_diagnostics_present) { j.write_fieldname(""); crit_diagnostics.to_json(j); @@ -43776,22 +43002,22 @@ void pdu_session_res_modify_resp_ies_container::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceModifyResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_resp_s::pack(bit_ref& bref) const +// UEContextModificationFailure ::= SEQUENCE +SRSASN_CODE ue_context_mod_fail_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_fail_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_s::to_json(json_writer& j) const +void ue_context_mod_fail_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43799,38 +43025,68 @@ void pdu_session_res_modify_resp_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_notify_ies_container::pdu_session_res_notify_ies_container() : +ue_context_mod_request_ies_container::ue_context_mod_request_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - pdu_session_res_notify_list(66, crit_e::reject), - pdu_session_res_released_list_not(67, crit_e::ignore), - user_location_info(121, crit_e::ignore) + ran_paging_prio(83, crit_e::ignore), + security_key(94, crit_e::reject), + idx_to_rfsp(31, crit_e::ignore), + ue_aggregate_maximum_bit_rate(110, crit_e::ignore), + ue_security_cap(119, crit_e::reject), + core_network_assist_info(18, crit_e::ignore), + emergency_fallback_ind(24, crit_e::reject), + new_amf_ue_ngap_id(40, crit_e::ignore), + rrc_inactive_transition_report_request(91, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_notify_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; - nof_ies += pdu_session_res_notify_list_present ? 1 : 0; - nof_ies += pdu_session_res_released_list_not_present ? 1 : 0; - nof_ies += user_location_info_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); + nof_ies += ran_paging_prio_present ? 1 : 0; + nof_ies += security_key_present ? 1 : 0; + nof_ies += idx_to_rfsp_present ? 1 : 0; + nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; + nof_ies += ue_security_cap_present ? 1 : 0; + nof_ies += core_network_assist_info_present ? 1 : 0; + nof_ies += emergency_fallback_ind_present ? 1 : 0; + nof_ies += new_amf_ue_ngap_id_present ? 1 : 0; + nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_notify_list_present) { - HANDLE_CODE(pdu_session_res_notify_list.pack(bref)); + if (ran_paging_prio_present) { + HANDLE_CODE(ran_paging_prio.pack(bref)); } - if (pdu_session_res_released_list_not_present) { - HANDLE_CODE(pdu_session_res_released_list_not.pack(bref)); + if (security_key_present) { + HANDLE_CODE(security_key.pack(bref)); } - if (user_location_info_present) { - HANDLE_CODE(user_location_info.pack(bref)); + if (idx_to_rfsp_present) { + HANDLE_CODE(idx_to_rfsp.pack(bref)); + } + if (ue_aggregate_maximum_bit_rate_present) { + HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); + } + if (ue_security_cap_present) { + HANDLE_CODE(ue_security_cap.pack(bref)); + } + if (core_network_assist_info_present) { + HANDLE_CODE(core_network_assist_info.pack(bref)); + } + if (emergency_fallback_ind_present) { + HANDLE_CODE(emergency_fallback_ind.pack(bref)); + } + if (new_amf_ue_ngap_id_present) { + HANDLE_CODE(new_amf_ue_ngap_id.pack(bref)); + } + if (rrc_inactive_transition_report_request_present) { + HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43838,7 +43094,7 @@ SRSASN_CODE pdu_session_res_notify_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43853,23 +43109,59 @@ SRSASN_CODE pdu_session_res_notify_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 66: - pdu_session_res_notify_list_present = true; - pdu_session_res_notify_list.id = c.id; - pdu_session_res_notify_list.crit = c.crit; - pdu_session_res_notify_list.value = c.value.pdu_session_res_notify_list(); + case 83: + ran_paging_prio_present = true; + ran_paging_prio.id = c.id; + ran_paging_prio.crit = c.crit; + ran_paging_prio.value = c.value.ran_paging_prio(); break; - case 67: - pdu_session_res_released_list_not_present = true; - pdu_session_res_released_list_not.id = c.id; - pdu_session_res_released_list_not.crit = c.crit; - pdu_session_res_released_list_not.value = c.value.pdu_session_res_released_list_not(); + case 94: + security_key_present = true; + security_key.id = c.id; + security_key.crit = c.crit; + security_key.value = c.value.security_key(); break; - case 121: - user_location_info_present = true; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); + case 31: + idx_to_rfsp_present = true; + idx_to_rfsp.id = c.id; + idx_to_rfsp.crit = c.crit; + idx_to_rfsp.value = c.value.idx_to_rfsp(); + break; + case 110: + ue_aggregate_maximum_bit_rate_present = true; + ue_aggregate_maximum_bit_rate.id = c.id; + ue_aggregate_maximum_bit_rate.crit = c.crit; + ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); + break; + case 119: + ue_security_cap_present = true; + ue_security_cap.id = c.id; + ue_security_cap.crit = c.crit; + ue_security_cap.value = c.value.ue_security_cap(); + break; + case 18: + core_network_assist_info_present = true; + core_network_assist_info.id = c.id; + core_network_assist_info.crit = c.crit; + core_network_assist_info.value = c.value.core_network_assist_info(); + break; + case 24: + emergency_fallback_ind_present = true; + emergency_fallback_ind.id = c.id; + emergency_fallback_ind.crit = c.crit; + emergency_fallback_ind.value = c.value.emergency_fallback_ind(); + break; + case 40: + new_amf_ue_ngap_id_present = true; + new_amf_ue_ngap_id.id = c.id; + new_amf_ue_ngap_id.crit = c.crit; + new_amf_ue_ngap_id.value = c.value.new_amf_ue_ngap_id(); + break; + case 91: + rrc_inactive_transition_report_request_present = true; + rrc_inactive_transition_report_request.id = c.id; + rrc_inactive_transition_report_request.crit = c.crit; + rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -43883,44 +43175,68 @@ SRSASN_CODE pdu_session_res_notify_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_notify_ies_container::to_json(json_writer& j) const +void ue_context_mod_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (pdu_session_res_notify_list_present) { + if (ran_paging_prio_present) { j.write_fieldname(""); - pdu_session_res_notify_list.to_json(j); + ran_paging_prio.to_json(j); } - if (pdu_session_res_released_list_not_present) { + if (security_key_present) { j.write_fieldname(""); - pdu_session_res_released_list_not.to_json(j); + security_key.to_json(j); } - if (user_location_info_present) { + if (idx_to_rfsp_present) { j.write_fieldname(""); - user_location_info.to_json(j); + idx_to_rfsp.to_json(j); + } + if (ue_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + ue_aggregate_maximum_bit_rate.to_json(j); + } + if (ue_security_cap_present) { + j.write_fieldname(""); + ue_security_cap.to_json(j); + } + if (core_network_assist_info_present) { + j.write_fieldname(""); + core_network_assist_info.to_json(j); + } + if (emergency_fallback_ind_present) { + j.write_fieldname(""); + emergency_fallback_ind.to_json(j); + } + if (new_amf_ue_ngap_id_present) { + j.write_fieldname(""); + new_amf_ue_ngap_id.to_json(j); + } + if (rrc_inactive_transition_report_request_present) { + j.write_fieldname(""); + rrc_inactive_transition_report_request.to_json(j); } j.end_obj(); } -// PDUSessionResourceNotify ::= SEQUENCE -SRSASN_CODE pdu_session_res_notify_s::pack(bit_ref& bref) const +// UEContextModificationRequest ::= SEQUENCE +SRSASN_CODE ue_context_mod_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_notify_s::to_json(json_writer& j) const +void ue_context_mod_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43928,43 +43244,46 @@ void pdu_session_res_notify_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_release_cmd_ies_container::pdu_session_res_release_cmd_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ran_paging_prio(83, crit_e::ignore), - nas_pdu(38, crit_e::ignore), - pdu_session_res_to_release_list_rel_cmd(79, crit_e::reject) +ue_context_mod_resp_ies_container::ue_context_mod_resp_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + rrc_state(92, crit_e::ignore), + user_location_info(121, crit_e::ignore), + crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_release_cmd_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_resp_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += ran_paging_prio_present ? 1 : 0; - nof_ies += nas_pdu_present ? 1 : 0; + uint32_t nof_ies = 2; + nof_ies += rrc_state_present ? 1 : 0; + nof_ies += user_location_info_present ? 1 : 0; + nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ran_paging_prio_present) { - HANDLE_CODE(ran_paging_prio.pack(bref)); + if (rrc_state_present) { + HANDLE_CODE(rrc_state.pack(bref)); } - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.pack(bref)); + if (user_location_info_present) { + HANDLE_CODE(user_location_info.pack(bref)); + } + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } - HANDLE_CODE(pdu_session_res_to_release_list_rel_cmd.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_cmd_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_mod_resp_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -43979,23 +43298,23 @@ SRSASN_CODE pdu_session_res_release_cmd_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 83: - ran_paging_prio_present = true; - ran_paging_prio.id = c.id; - ran_paging_prio.crit = c.crit; - ran_paging_prio.value = c.value.ran_paging_prio(); + case 92: + rrc_state_present = true; + rrc_state.id = c.id; + rrc_state.crit = c.crit; + rrc_state.value = c.value.rrc_state(); break; - case 38: - nas_pdu_present = true; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); + case 121: + user_location_info_present = true; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); break; - case 79: - nof_mandatory_ies--; - pdu_session_res_to_release_list_rel_cmd.id = c.id; - pdu_session_res_to_release_list_rel_cmd.crit = c.crit; - pdu_session_res_to_release_list_rel_cmd.value = c.value.pdu_session_res_to_release_list_rel_cmd(); + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44009,42 +43328,127 @@ SRSASN_CODE pdu_session_res_release_cmd_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_release_cmd_ies_container::to_json(json_writer& j) const +void ue_context_mod_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (ran_paging_prio_present) { + if (rrc_state_present) { j.write_fieldname(""); - ran_paging_prio.to_json(j); + rrc_state.to_json(j); } - if (nas_pdu_present) { + if (user_location_info_present) { j.write_fieldname(""); - nas_pdu.to_json(j); + user_location_info.to_json(j); + } + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); +} + +// UEContextModificationResponse ::= SEQUENCE +SRSASN_CODE ue_context_mod_resp_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_context_mod_resp_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ue_context_mod_resp_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + +template struct asn1::ngap_nr::protocol_ie_field_s; + +ue_context_release_cmd_ies_container::ue_context_release_cmd_ies_container() : + ue_ngap_ids(114, crit_e::reject), cause(15, crit_e::ignore) +{} +SRSASN_CODE ue_context_release_cmd_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 2; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(ue_ngap_ids.pack(bref)); + HANDLE_CODE(cause.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_context_release_cmd_ies_container::unpack(cbit_ref& bref) +{ + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 2; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 114: + nof_mandatory_ies--; + ue_ngap_ids.id = c.id; + ue_ngap_ids.crit = c.crit; + ue_ngap_ids.value = c.value.ue_ngap_ids(); + break; + case 15: + nof_mandatory_ies--; + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; +} +void ue_context_release_cmd_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); j.write_fieldname(""); - pdu_session_res_to_release_list_rel_cmd.to_json(j); + ue_ngap_ids.to_json(j); + j.write_fieldname(""); + cause.to_json(j); j.end_obj(); } -// PDUSessionResourceReleaseCommand ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_cmd_s::pack(bit_ref& bref) const +// UEContextReleaseCommand ::= SEQUENCE +SRSASN_CODE ue_context_release_cmd_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_cmd_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_cmd_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_release_cmd_s::to_json(json_writer& j) const +void ue_context_release_cmd_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44052,43 +43456,51 @@ void pdu_session_res_release_cmd_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_release_resp_ies_container::pdu_session_res_release_resp_ies_container() : +ue_context_release_complete_ies_container::ue_context_release_complete_ies_container() : amf_ue_ngap_id(10, crit_e::ignore), ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_released_list_rel_res(70, crit_e::ignore), user_location_info(121, crit_e::ignore), + info_on_recommended_cells_and_ran_nodes_for_paging(32, crit_e::ignore), + pdu_session_res_list_cxt_rel_cpl(60, crit_e::reject), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_release_resp_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_complete_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; + uint32_t nof_ies = 2; nof_ies += user_location_info_present ? 1 : 0; + nof_ies += info_on_recommended_cells_and_ran_nodes_for_paging_present ? 1 : 0; + nof_ies += pdu_session_res_list_cxt_rel_cpl_present ? 1 : 0; nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_released_list_rel_res.pack(bref)); if (user_location_info_present) { HANDLE_CODE(user_location_info.pack(bref)); } + if (info_on_recommended_cells_and_ran_nodes_for_paging_present) { + HANDLE_CODE(info_on_recommended_cells_and_ran_nodes_for_paging.pack(bref)); + } + if (pdu_session_res_list_cxt_rel_cpl_present) { + HANDLE_CODE(pdu_session_res_list_cxt_rel_cpl.pack(bref)); + } if (crit_diagnostics_present) { HANDLE_CODE(crit_diagnostics.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_resp_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_complete_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -44103,18 +43515,25 @@ SRSASN_CODE pdu_session_res_release_resp_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 70: - nof_mandatory_ies--; - pdu_session_res_released_list_rel_res.id = c.id; - pdu_session_res_released_list_rel_res.crit = c.crit; - pdu_session_res_released_list_rel_res.value = c.value.pdu_session_res_released_list_rel_res(); - break; case 121: user_location_info_present = true; user_location_info.id = c.id; user_location_info.crit = c.crit; user_location_info.value = c.value.user_location_info(); break; + case 32: + info_on_recommended_cells_and_ran_nodes_for_paging_present = true; + info_on_recommended_cells_and_ran_nodes_for_paging.id = c.id; + info_on_recommended_cells_and_ran_nodes_for_paging.crit = c.crit; + info_on_recommended_cells_and_ran_nodes_for_paging.value = + c.value.info_on_recommended_cells_and_ran_nodes_for_paging(); + break; + case 60: + pdu_session_res_list_cxt_rel_cpl_present = true; + pdu_session_res_list_cxt_rel_cpl.id = c.id; + pdu_session_res_list_cxt_rel_cpl.crit = c.crit; + pdu_session_res_list_cxt_rel_cpl.value = c.value.pdu_session_res_list_cxt_rel_cpl(); + break; case 19: crit_diagnostics_present = true; crit_diagnostics.id = c.id; @@ -44133,19 +43552,25 @@ SRSASN_CODE pdu_session_res_release_resp_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_release_resp_ies_container::to_json(json_writer& j) const +void ue_context_release_complete_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - pdu_session_res_released_list_rel_res.to_json(j); if (user_location_info_present) { j.write_fieldname(""); user_location_info.to_json(j); } + if (info_on_recommended_cells_and_ran_nodes_for_paging_present) { + j.write_fieldname(""); + info_on_recommended_cells_and_ran_nodes_for_paging.to_json(j); + } + if (pdu_session_res_list_cxt_rel_cpl_present) { + j.write_fieldname(""); + pdu_session_res_list_cxt_rel_cpl.to_json(j); + } if (crit_diagnostics_present) { j.write_fieldname(""); crit_diagnostics.to_json(j); @@ -44153,22 +43578,22 @@ void pdu_session_res_release_resp_ies_container::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceReleaseResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_resp_s::pack(bit_ref& bref) const +// UEContextReleaseComplete ::= SEQUENCE +SRSASN_CODE ue_context_release_complete_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_resp_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_complete_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_release_resp_s::to_json(json_writer& j) const +void ue_context_release_complete_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44176,40 +43601,30 @@ void pdu_session_res_release_resp_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_setup_request_ies_container::pdu_session_res_setup_request_ies_container() : +ue_context_release_request_ies_container::ue_context_release_request_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - ran_paging_prio(83, crit_e::ignore), - nas_pdu(38, crit_e::reject), - pdu_session_res_setup_list_su_req(74, crit_e::reject), - ue_aggregate_maximum_bit_rate(110, crit_e::ignore) + pdu_session_res_list_cxt_rel_req(133, crit_e::reject), + cause(15, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_setup_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; - nof_ies += ran_paging_prio_present ? 1 : 0; - nof_ies += nas_pdu_present ? 1 : 0; - nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; + nof_ies += pdu_session_res_list_cxt_rel_req_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ran_paging_prio_present) { - HANDLE_CODE(ran_paging_prio.pack(bref)); - } - if (nas_pdu_present) { - HANDLE_CODE(nas_pdu.pack(bref)); - } - HANDLE_CODE(pdu_session_res_setup_list_su_req.pack(bref)); - if (ue_aggregate_maximum_bit_rate_present) { - HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); + if (pdu_session_res_list_cxt_rel_req_present) { + HANDLE_CODE(pdu_session_res_list_cxt_rel_req.pack(bref)); } + HANDLE_CODE(cause.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44217,7 +43632,7 @@ SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -44232,29 +43647,17 @@ SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 83: - ran_paging_prio_present = true; - ran_paging_prio.id = c.id; - ran_paging_prio.crit = c.crit; - ran_paging_prio.value = c.value.ran_paging_prio(); - break; - case 38: - nas_pdu_present = true; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); + case 133: + pdu_session_res_list_cxt_rel_req_present = true; + pdu_session_res_list_cxt_rel_req.id = c.id; + pdu_session_res_list_cxt_rel_req.crit = c.crit; + pdu_session_res_list_cxt_rel_req.value = c.value.pdu_session_res_list_cxt_rel_req(); break; - case 74: + case 15: nof_mandatory_ies--; - pdu_session_res_setup_list_su_req.id = c.id; - pdu_session_res_setup_list_su_req.crit = c.crit; - pdu_session_res_setup_list_su_req.value = c.value.pdu_session_res_setup_list_su_req(); - break; - case 110: - ue_aggregate_maximum_bit_rate_present = true; - ue_aggregate_maximum_bit_rate.id = c.id; - ue_aggregate_maximum_bit_rate.crit = c.crit; - ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); + cause.id = c.id; + cause.crit = c.crit; + cause.value = c.value.cause(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44268,46 +43671,38 @@ SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_ies_container::to_json(json_writer& j) const +void ue_context_release_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (ran_paging_prio_present) { - j.write_fieldname(""); - ran_paging_prio.to_json(j); - } - if (nas_pdu_present) { + if (pdu_session_res_list_cxt_rel_req_present) { j.write_fieldname(""); - nas_pdu.to_json(j); + pdu_session_res_list_cxt_rel_req.to_json(j); } j.write_fieldname(""); - pdu_session_res_setup_list_su_req.to_json(j); - if (ue_aggregate_maximum_bit_rate_present) { - j.write_fieldname(""); - ue_aggregate_maximum_bit_rate.to_json(j); - } + cause.to_json(j); j.end_obj(); } -// PDUSessionResourceSetupRequest ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_request_s::pack(bit_ref& bref) const +// UEContextReleaseRequest ::= SEQUENCE +SRSASN_CODE ue_context_release_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_context_release_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_s::to_json(json_writer& j) const +void ue_context_release_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44315,38 +43710,26 @@ void pdu_session_res_setup_request_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pdu_session_res_setup_resp_ies_container::pdu_session_res_setup_resp_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_setup_list_su_res(75, crit_e::ignore), - pdu_session_res_failed_to_setup_list_su_res(58, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) +ue_radio_cap_check_request_ies_container::ue_radio_cap_check_request_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), ue_radio_cap(117, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_setup_resp_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_check_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; - nof_ies += pdu_session_res_setup_list_su_res_present ? 1 : 0; - nof_ies += pdu_session_res_failed_to_setup_list_su_res_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; + nof_ies += ue_radio_cap_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_setup_list_su_res_present) { - HANDLE_CODE(pdu_session_res_setup_list_su_res.pack(bref)); - } - if (pdu_session_res_failed_to_setup_list_su_res_present) { - HANDLE_CODE(pdu_session_res_failed_to_setup_list_su_res.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); + if (ue_radio_cap_present) { + HANDLE_CODE(ue_radio_cap.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44354,7 +43737,7 @@ SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -44369,23 +43752,11 @@ SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 75: - pdu_session_res_setup_list_su_res_present = true; - pdu_session_res_setup_list_su_res.id = c.id; - pdu_session_res_setup_list_su_res.crit = c.crit; - pdu_session_res_setup_list_su_res.value = c.value.pdu_session_res_setup_list_su_res(); - break; - case 58: - pdu_session_res_failed_to_setup_list_su_res_present = true; - pdu_session_res_failed_to_setup_list_su_res.id = c.id; - pdu_session_res_failed_to_setup_list_su_res.crit = c.crit; - pdu_session_res_failed_to_setup_list_su_res.value = c.value.pdu_session_res_failed_to_setup_list_su_res(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); + case 117: + ue_radio_cap_present = true; + ue_radio_cap.id = c.id; + ue_radio_cap.crit = c.crit; + ue_radio_cap.value = c.value.ue_radio_cap(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44399,44 +43770,36 @@ SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_setup_resp_ies_container::to_json(json_writer& j) const +void ue_radio_cap_check_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (pdu_session_res_setup_list_su_res_present) { - j.write_fieldname(""); - pdu_session_res_setup_list_su_res.to_json(j); - } - if (pdu_session_res_failed_to_setup_list_su_res_present) { - j.write_fieldname(""); - pdu_session_res_failed_to_setup_list_su_res.to_json(j); - } - if (crit_diagnostics_present) { + if (ue_radio_cap_present) { j.write_fieldname(""); - crit_diagnostics.to_json(j); + ue_radio_cap.to_json(j); } j.end_obj(); } -// PDUSessionResourceSetupResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_resp_s::pack(bit_ref& bref) const +// UERadioCapabilityCheckRequest ::= SEQUENCE +SRSASN_CODE ue_radio_cap_check_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_resp_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_setup_resp_s::to_json(json_writer& j) const +void ue_radio_cap_check_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44444,66 +43807,63 @@ void pdu_session_res_setup_resp_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pws_cancel_request_ies_container::pws_cancel_request_ies_container() : - msg_id(35, crit_e::reject), - serial_num(95, crit_e::reject), - warning_area_list(122, crit_e::ignore), - cancel_all_warning_msgs(14, crit_e::reject) +ue_radio_cap_check_resp_ies_container::ue_radio_cap_check_resp_ies_container() : + amf_ue_ngap_id(10, crit_e::ignore), + ran_ue_ngap_id(85, crit_e::ignore), + ims_voice_support_ind(30, crit_e::reject), + crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE pws_cancel_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_check_resp_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 2; - nof_ies += warning_area_list_present ? 1 : 0; - nof_ies += cancel_all_warning_msgs_present ? 1 : 0; + uint32_t nof_ies = 3; + nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - if (warning_area_list_present) { - HANDLE_CODE(warning_area_list.pack(bref)); - } - if (cancel_all_warning_msgs_present) { - HANDLE_CODE(cancel_all_warning_msgs.pack(bref)); + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(ims_voice_support_ind.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_resp_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 2; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 35: + case 10: nof_mandatory_ies--; - msg_id.id = c.id; - msg_id.crit = c.crit; - msg_id.value = c.value.msg_id(); + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 95: + case 85: nof_mandatory_ies--; - serial_num.id = c.id; - serial_num.crit = c.crit; - serial_num.value = c.value.serial_num(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 122: - warning_area_list_present = true; - warning_area_list.id = c.id; - warning_area_list.crit = c.crit; - warning_area_list.value = c.value.warning_area_list(); + case 30: + nof_mandatory_ies--; + ims_voice_support_ind.id = c.id; + ims_voice_support_ind.crit = c.crit; + ims_voice_support_ind.value = c.value.ims_voice_support_ind(); break; - case 14: - cancel_all_warning_msgs_present = true; - cancel_all_warning_msgs.id = c.id; - cancel_all_warning_msgs.crit = c.crit; - cancel_all_warning_msgs.value = c.value.cancel_all_warning_msgs(); + case 19: + crit_diagnostics_present = true; + crit_diagnostics.id = c.id; + crit_diagnostics.crit = c.crit; + crit_diagnostics.value = c.value.crit_diagnostics(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44517,40 +43877,38 @@ SRSASN_CODE pws_cancel_request_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pws_cancel_request_ies_container::to_json(json_writer& j) const +void ue_radio_cap_check_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - msg_id.to_json(j); + amf_ue_ngap_id.to_json(j); j.write_fieldname(""); - serial_num.to_json(j); - if (warning_area_list_present) { - j.write_fieldname(""); - warning_area_list.to_json(j); - } - if (cancel_all_warning_msgs_present) { + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ims_voice_support_ind.to_json(j); + if (crit_diagnostics_present) { j.write_fieldname(""); - cancel_all_warning_msgs.to_json(j); + crit_diagnostics.to_json(j); } j.end_obj(); } -// PWSCancelRequest ::= SEQUENCE -SRSASN_CODE pws_cancel_request_s::pack(bit_ref& bref) const +// UERadioCapabilityCheckResponse ::= SEQUENCE +SRSASN_CODE ue_radio_cap_check_resp_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_request_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_check_resp_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pws_cancel_request_s::to_json(json_writer& j) const +void ue_radio_cap_check_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44558,66 +43916,63 @@ void pws_cancel_request_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pws_cancel_resp_ies_container::pws_cancel_resp_ies_container() : - msg_id(35, crit_e::reject), - serial_num(95, crit_e::reject), - broadcast_cancelled_area_list(12, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) +ue_radio_cap_info_ind_ies_container::ue_radio_cap_info_ind_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + ue_radio_cap(117, crit_e::ignore), + ue_radio_cap_for_paging(118, crit_e::ignore) {} -SRSASN_CODE pws_cancel_resp_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_info_ind_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 2; - nof_ies += broadcast_cancelled_area_list_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; + uint32_t nof_ies = 3; + nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - if (broadcast_cancelled_area_list_present) { - HANDLE_CODE(broadcast_cancelled_area_list.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(ue_radio_cap.pack(bref)); + if (ue_radio_cap_for_paging_present) { + HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_resp_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_info_ind_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 2; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 35: + case 10: nof_mandatory_ies--; - msg_id.id = c.id; - msg_id.crit = c.crit; - msg_id.value = c.value.msg_id(); + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 95: + case 85: nof_mandatory_ies--; - serial_num.id = c.id; - serial_num.crit = c.crit; - serial_num.value = c.value.serial_num(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 12: - broadcast_cancelled_area_list_present = true; - broadcast_cancelled_area_list.id = c.id; - broadcast_cancelled_area_list.crit = c.crit; - broadcast_cancelled_area_list.value = c.value.broadcast_cancelled_area_list(); + case 117: + nof_mandatory_ies--; + ue_radio_cap.id = c.id; + ue_radio_cap.crit = c.crit; + ue_radio_cap.value = c.value.ue_radio_cap(); break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); + case 118: + ue_radio_cap_for_paging_present = true; + ue_radio_cap_for_paging.id = c.id; + ue_radio_cap_for_paging.crit = c.crit; + ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44631,40 +43986,38 @@ SRSASN_CODE pws_cancel_resp_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pws_cancel_resp_ies_container::to_json(json_writer& j) const +void ue_radio_cap_info_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - msg_id.to_json(j); + amf_ue_ngap_id.to_json(j); j.write_fieldname(""); - serial_num.to_json(j); - if (broadcast_cancelled_area_list_present) { - j.write_fieldname(""); - broadcast_cancelled_area_list.to_json(j); - } - if (crit_diagnostics_present) { + ran_ue_ngap_id.to_json(j); + j.write_fieldname(""); + ue_radio_cap.to_json(j); + if (ue_radio_cap_for_paging_present) { j.write_fieldname(""); - crit_diagnostics.to_json(j); + ue_radio_cap_for_paging.to_json(j); } j.end_obj(); } -// PWSCancelResponse ::= SEQUENCE -SRSASN_CODE pws_cancel_resp_s::pack(bit_ref& bref) const +// UERadioCapabilityInfoIndication ::= SEQUENCE +SRSASN_CODE ue_radio_cap_info_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_resp_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_radio_cap_info_ind_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pws_cancel_resp_s::to_json(json_writer& j) const +void ue_radio_cap_info_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44672,23 +44025,22 @@ void pws_cancel_resp_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pws_fail_ind_ies_container::pws_fail_ind_ies_container() : - pws_failed_cell_id_list(81, crit_e::reject), - global_ran_node_id(27, crit_e::reject) +uetnla_binding_release_request_ies_container::uetnla_binding_release_request_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject) {} -SRSASN_CODE pws_fail_ind_ies_container::pack(bit_ref& bref) const +SRSASN_CODE uetnla_binding_release_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(pws_failed_cell_id_list.pack(bref)); - HANDLE_CODE(global_ran_node_id.pack(bref)); + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_fail_ind_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE uetnla_binding_release_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44696,20 +44048,20 @@ SRSASN_CODE pws_fail_ind_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 81: + case 10: nof_mandatory_ies--; - pws_failed_cell_id_list.id = c.id; - pws_failed_cell_id_list.crit = c.crit; - pws_failed_cell_id_list.value = c.value.pws_failed_cell_id_list(); + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 27: + case 85: nof_mandatory_ies--; - global_ran_node_id.id = c.id; - global_ran_node_id.crit = c.crit; - global_ran_node_id.value = c.value.global_ran_node_id(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44723,32 +44075,32 @@ SRSASN_CODE pws_fail_ind_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pws_fail_ind_ies_container::to_json(json_writer& j) const +void uetnla_binding_release_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - pws_failed_cell_id_list.to_json(j); + amf_ue_ngap_id.to_json(j); j.write_fieldname(""); - global_ran_node_id.to_json(j); + ran_ue_ngap_id.to_json(j); j.end_obj(); } -// PWSFailureIndication ::= SEQUENCE -SRSASN_CODE pws_fail_ind_s::pack(bit_ref& bref) const +// UETNLABindingReleaseRequest ::= SEQUENCE +SRSASN_CODE uetnla_binding_release_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_fail_ind_s::unpack(cbit_ref& bref) +SRSASN_CODE uetnla_binding_release_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pws_fail_ind_s::to_json(json_writer& j) const +void uetnla_binding_release_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44756,63 +44108,60 @@ void pws_fail_ind_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -pws_restart_ind_ies_container::pws_restart_ind_ies_container() : - cell_id_list_for_restart(16, crit_e::reject), - global_ran_node_id(27, crit_e::reject), - tai_list_for_restart(104, crit_e::reject), - emergency_area_id_list_for_restart(23, crit_e::reject) +ul_nas_transport_ies_container::ul_nas_transport_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + nas_pdu(38, crit_e::reject), + user_location_info(121, crit_e::ignore) {} -SRSASN_CODE pws_restart_ind_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ul_nas_transport_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += emergency_area_id_list_for_restart_present ? 1 : 0; + uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(cell_id_list_for_restart.pack(bref)); - HANDLE_CODE(global_ran_node_id.pack(bref)); - HANDLE_CODE(tai_list_for_restart.pack(bref)); - if (emergency_area_id_list_for_restart_present) { - HANDLE_CODE(emergency_area_id_list_for_restart.pack(bref)); - } + HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + HANDLE_CODE(ran_ue_ngap_id.pack(bref)); + HANDLE_CODE(nas_pdu.pack(bref)); + HANDLE_CODE(user_location_info.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_restart_ind_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ul_nas_transport_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 4; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 16: + case 10: nof_mandatory_ies--; - cell_id_list_for_restart.id = c.id; - cell_id_list_for_restart.crit = c.crit; - cell_id_list_for_restart.value = c.value.cell_id_list_for_restart(); + amf_ue_ngap_id.id = c.id; + amf_ue_ngap_id.crit = c.crit; + amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); break; - case 27: + case 85: nof_mandatory_ies--; - global_ran_node_id.id = c.id; - global_ran_node_id.crit = c.crit; - global_ran_node_id.value = c.value.global_ran_node_id(); + ran_ue_ngap_id.id = c.id; + ran_ue_ngap_id.crit = c.crit; + ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 104: + case 38: nof_mandatory_ies--; - tai_list_for_restart.id = c.id; - tai_list_for_restart.crit = c.crit; - tai_list_for_restart.value = c.value.tai_list_for_restart(); + nas_pdu.id = c.id; + nas_pdu.crit = c.crit; + nas_pdu.value = c.value.nas_pdu(); break; - case 23: - emergency_area_id_list_for_restart_present = true; - emergency_area_id_list_for_restart.id = c.id; - emergency_area_id_list_for_restart.crit = c.crit; - emergency_area_id_list_for_restart.value = c.value.emergency_area_id_list_for_restart(); + case 121: + nof_mandatory_ies--; + user_location_info.id = c.id; + user_location_info.crit = c.crit; + user_location_info.value = c.value.user_location_info(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44826,38 +44175,36 @@ SRSASN_CODE pws_restart_ind_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void pws_restart_ind_ies_container::to_json(json_writer& j) const +void ul_nas_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - cell_id_list_for_restart.to_json(j); + amf_ue_ngap_id.to_json(j); j.write_fieldname(""); - global_ran_node_id.to_json(j); + ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - tai_list_for_restart.to_json(j); - if (emergency_area_id_list_for_restart_present) { - j.write_fieldname(""); - emergency_area_id_list_for_restart.to_json(j); - } + nas_pdu.to_json(j); + j.write_fieldname(""); + user_location_info.to_json(j); j.end_obj(); } -// PWSRestartIndication ::= SEQUENCE -SRSASN_CODE pws_restart_ind_s::pack(bit_ref& bref) const +// UplinkNASTransport ::= SEQUENCE +SRSASN_CODE ul_nas_transport_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pws_restart_ind_s::unpack(cbit_ref& bref) +SRSASN_CODE ul_nas_transport_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pws_restart_ind_s::to_json(json_writer& j) const +void ul_nas_transport_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44865,48 +44212,22 @@ void pws_restart_ind_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -paging_ies_container::paging_ies_container() : - ue_paging_id(115, crit_e::ignore), - paging_drx(50, crit_e::ignore), - tai_list_for_paging(103, crit_e::ignore), - paging_prio(52, crit_e::ignore), - ue_radio_cap_for_paging(118, crit_e::ignore), - paging_origin(51, crit_e::ignore), - assist_data_for_paging(11, crit_e::ignore) +ul_non_ueassociated_nrp_pa_transport_ies_container::ul_non_ueassociated_nrp_pa_transport_ies_container() : + routing_id(89, crit_e::reject), nrp_pa_pdu(46, crit_e::reject) {} -SRSASN_CODE paging_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; - nof_ies += paging_drx_present ? 1 : 0; - nof_ies += paging_prio_present ? 1 : 0; - nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; - nof_ies += paging_origin_present ? 1 : 0; - nof_ies += assist_data_for_paging_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(ue_paging_id.pack(bref)); - if (paging_drx_present) { - HANDLE_CODE(paging_drx.pack(bref)); - } - HANDLE_CODE(tai_list_for_paging.pack(bref)); - if (paging_prio_present) { - HANDLE_CODE(paging_prio.pack(bref)); - } - if (ue_radio_cap_for_paging_present) { - HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); - } - if (paging_origin_present) { - HANDLE_CODE(paging_origin.pack(bref)); - } - if (assist_data_for_paging_present) { - HANDLE_CODE(assist_data_for_paging.pack(bref)); - } + HANDLE_CODE(routing_id.pack(bref)); + HANDLE_CODE(nrp_pa_pdu.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE paging_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44914,50 +44235,20 @@ SRSASN_CODE paging_ies_container::unpack(cbit_ref& bref) uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 115: + case 89: nof_mandatory_ies--; - ue_paging_id.id = c.id; - ue_paging_id.crit = c.crit; - ue_paging_id.value = c.value.ue_paging_id(); - break; - case 50: - paging_drx_present = true; - paging_drx.id = c.id; - paging_drx.crit = c.crit; - paging_drx.value = c.value.paging_drx(); + routing_id.id = c.id; + routing_id.crit = c.crit; + routing_id.value = c.value.routing_id(); break; - case 103: + case 46: nof_mandatory_ies--; - tai_list_for_paging.id = c.id; - tai_list_for_paging.crit = c.crit; - tai_list_for_paging.value = c.value.tai_list_for_paging(); - break; - case 52: - paging_prio_present = true; - paging_prio.id = c.id; - paging_prio.crit = c.crit; - paging_prio.value = c.value.paging_prio(); - break; - case 118: - ue_radio_cap_for_paging_present = true; - ue_radio_cap_for_paging.id = c.id; - ue_radio_cap_for_paging.crit = c.crit; - ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); - break; - case 51: - paging_origin_present = true; - paging_origin.id = c.id; - paging_origin.crit = c.crit; - paging_origin.value = c.value.paging_origin(); - break; - case 11: - assist_data_for_paging_present = true; - assist_data_for_paging.id = c.id; - assist_data_for_paging.crit = c.crit; - assist_data_for_paging.value = c.value.assist_data_for_paging(); + nrp_pa_pdu.id = c.id; + nrp_pa_pdu.crit = c.crit; + nrp_pa_pdu.value = c.value.nrp_pa_pdu(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -44971,52 +44262,32 @@ SRSASN_CODE paging_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void paging_ies_container::to_json(json_writer& j) const +void ul_non_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - ue_paging_id.to_json(j); - if (paging_drx_present) { - j.write_fieldname(""); - paging_drx.to_json(j); - } + routing_id.to_json(j); j.write_fieldname(""); - tai_list_for_paging.to_json(j); - if (paging_prio_present) { - j.write_fieldname(""); - paging_prio.to_json(j); - } - if (ue_radio_cap_for_paging_present) { - j.write_fieldname(""); - ue_radio_cap_for_paging.to_json(j); - } - if (paging_origin_present) { - j.write_fieldname(""); - paging_origin.to_json(j); - } - if (assist_data_for_paging_present) { - j.write_fieldname(""); - assist_data_for_paging.to_json(j); - } + nrp_pa_pdu.to_json(j); j.end_obj(); } -// Paging ::= SEQUENCE -SRSASN_CODE paging_s::pack(bit_ref& bref) const +// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE paging_s::unpack(cbit_ref& bref) +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void paging_s::to_json(json_writer& j) const +void ul_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45024,128 +44295,86 @@ void paging_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -path_switch_request_ies_container::path_switch_request_ies_container() : - ran_ue_ngap_id(85, crit_e::reject), - source_amf_ue_ngap_id(100, crit_e::reject), - user_location_info(121, crit_e::ignore), - ue_security_cap(119, crit_e::ignore), - pdu_session_res_to_be_switched_dl_list(76, crit_e::reject), - pdu_session_res_failed_to_setup_list_ps_req(57, crit_e::ignore) +ul_ran_cfg_transfer_ies_container::ul_ran_cfg_transfer_ies_container() : + son_cfg_transfer_ul(99, crit_e::ignore), endc_son_cfg_transfer_ul(158, crit_e::ignore) {} -SRSASN_CODE path_switch_request_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ul_ran_cfg_transfer_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 5; - nof_ies += pdu_session_res_failed_to_setup_list_ps_req_present ? 1 : 0; + uint32_t nof_ies = 0; + nof_ies += son_cfg_transfer_ul_present ? 1 : 0; + nof_ies += endc_son_cfg_transfer_ul_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(source_amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(user_location_info.pack(bref)); - HANDLE_CODE(ue_security_cap.pack(bref)); - HANDLE_CODE(pdu_session_res_to_be_switched_dl_list.pack(bref)); - if (pdu_session_res_failed_to_setup_list_ps_req_present) { - HANDLE_CODE(pdu_session_res_failed_to_setup_list_ps_req.pack(bref)); + if (son_cfg_transfer_ul_present) { + HANDLE_CODE(son_cfg_transfer_ul.pack(bref)); + } + if (endc_son_cfg_transfer_ul_present) { + HANDLE_CODE(endc_son_cfg_transfer_ul.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ul_ran_cfg_transfer_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 5; - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 100: - nof_mandatory_ies--; - source_amf_ue_ngap_id.id = c.id; - source_amf_ue_ngap_id.crit = c.crit; - source_amf_ue_ngap_id.value = c.value.source_amf_ue_ngap_id(); - break; - case 121: - nof_mandatory_ies--; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - case 119: - nof_mandatory_ies--; - ue_security_cap.id = c.id; - ue_security_cap.crit = c.crit; - ue_security_cap.value = c.value.ue_security_cap(); - break; - case 76: - nof_mandatory_ies--; - pdu_session_res_to_be_switched_dl_list.id = c.id; - pdu_session_res_to_be_switched_dl_list.crit = c.crit; - pdu_session_res_to_be_switched_dl_list.value = c.value.pdu_session_res_to_be_switched_dl_list(); + case 99: + son_cfg_transfer_ul_present = true; + son_cfg_transfer_ul.id = c.id; + son_cfg_transfer_ul.crit = c.crit; + son_cfg_transfer_ul.value = c.value.son_cfg_transfer_ul(); break; - case 57: - pdu_session_res_failed_to_setup_list_ps_req_present = true; - pdu_session_res_failed_to_setup_list_ps_req.id = c.id; - pdu_session_res_failed_to_setup_list_ps_req.crit = c.crit; - pdu_session_res_failed_to_setup_list_ps_req.value = c.value.pdu_session_res_failed_to_setup_list_ps_req(); + case 158: + endc_son_cfg_transfer_ul_present = true; + endc_son_cfg_transfer_ul.id = c.id; + endc_son_cfg_transfer_ul.crit = c.crit; + endc_son_cfg_transfer_ul.value = c.value.endc_son_cfg_transfer_ul(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); return SRSASN_ERROR_DECODE_FAIL; } } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } return SRSASN_SUCCESS; } -void path_switch_request_ies_container::to_json(json_writer& j) const +void ul_ran_cfg_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - source_amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - user_location_info.to_json(j); - j.write_fieldname(""); - ue_security_cap.to_json(j); - j.write_fieldname(""); - pdu_session_res_to_be_switched_dl_list.to_json(j); - if (pdu_session_res_failed_to_setup_list_ps_req_present) { + if (son_cfg_transfer_ul_present) { j.write_fieldname(""); - pdu_session_res_failed_to_setup_list_ps_req.to_json(j); + son_cfg_transfer_ul.to_json(j); + } + if (endc_son_cfg_transfer_ul_present) { + j.write_fieldname(""); + endc_son_cfg_transfer_ul.to_json(j); } j.end_obj(); } -// PathSwitchRequest ::= SEQUENCE -SRSASN_CODE path_switch_request_s::pack(bit_ref& bref) const +// UplinkRANConfigurationTransfer ::= SEQUENCE +SRSASN_CODE ul_ran_cfg_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_s::unpack(cbit_ref& bref) +SRSASN_CODE ul_ran_cfg_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void path_switch_request_s::to_json(json_writer& j) const +void ul_ran_cfg_transfer_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45153,72 +44382,33 @@ void path_switch_request_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -path_switch_request_ack_ies_container::path_switch_request_ack_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - ue_security_cap(119, crit_e::reject), - security_context(93, crit_e::reject), - new_security_context_ind(41, crit_e::reject), - pdu_session_res_switched_list(77, crit_e::ignore), - pdu_session_res_released_list_ps_ack(68, crit_e::ignore), - allowed_nssai(0, crit_e::reject), - core_network_assist_info(18, crit_e::ignore), - rrc_inactive_transition_report_request(91, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore), - redirection_voice_fallback(146, crit_e::ignore) +ul_ran_status_transfer_ies_container::ul_ran_status_transfer_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + ran_status_transfer_transparent_container(84, crit_e::reject) {} -SRSASN_CODE path_switch_request_ack_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ul_ran_status_transfer_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 5; - nof_ies += ue_security_cap_present ? 1 : 0; - nof_ies += new_security_context_ind_present ? 1 : 0; - nof_ies += pdu_session_res_released_list_ps_ack_present ? 1 : 0; - nof_ies += core_network_assist_info_present ? 1 : 0; - nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - nof_ies += redirection_voice_fallback_present ? 1 : 0; + uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ue_security_cap_present) { - HANDLE_CODE(ue_security_cap.pack(bref)); - } - HANDLE_CODE(security_context.pack(bref)); - if (new_security_context_ind_present) { - HANDLE_CODE(new_security_context_ind.pack(bref)); - } - HANDLE_CODE(pdu_session_res_switched_list.pack(bref)); - if (pdu_session_res_released_list_ps_ack_present) { - HANDLE_CODE(pdu_session_res_released_list_ps_ack.pack(bref)); - } - HANDLE_CODE(allowed_nssai.pack(bref)); - if (core_network_assist_info_present) { - HANDLE_CODE(core_network_assist_info.pack(bref)); - } - if (rrc_inactive_transition_report_request_present) { - HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - if (redirection_voice_fallback_present) { - HANDLE_CODE(redirection_voice_fallback.pack(bref)); - } + HANDLE_CODE(ran_status_transfer_transparent_container.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ack_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ul_ran_status_transfer_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 5; + uint32_t nof_mandatory_ies = 3; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -45233,65 +44423,11 @@ SRSASN_CODE path_switch_request_ack_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 119: - ue_security_cap_present = true; - ue_security_cap.id = c.id; - ue_security_cap.crit = c.crit; - ue_security_cap.value = c.value.ue_security_cap(); - break; - case 93: - nof_mandatory_ies--; - security_context.id = c.id; - security_context.crit = c.crit; - security_context.value = c.value.security_context(); - break; - case 41: - new_security_context_ind_present = true; - new_security_context_ind.id = c.id; - new_security_context_ind.crit = c.crit; - new_security_context_ind.value = c.value.new_security_context_ind(); - break; - case 77: - nof_mandatory_ies--; - pdu_session_res_switched_list.id = c.id; - pdu_session_res_switched_list.crit = c.crit; - pdu_session_res_switched_list.value = c.value.pdu_session_res_switched_list(); - break; - case 68: - pdu_session_res_released_list_ps_ack_present = true; - pdu_session_res_released_list_ps_ack.id = c.id; - pdu_session_res_released_list_ps_ack.crit = c.crit; - pdu_session_res_released_list_ps_ack.value = c.value.pdu_session_res_released_list_ps_ack(); - break; - case 0: + case 84: nof_mandatory_ies--; - allowed_nssai.id = c.id; - allowed_nssai.crit = c.crit; - allowed_nssai.value = c.value.allowed_nssai(); - break; - case 18: - core_network_assist_info_present = true; - core_network_assist_info.id = c.id; - core_network_assist_info.crit = c.crit; - core_network_assist_info.value = c.value.core_network_assist_info(); - break; - case 91: - rrc_inactive_transition_report_request_present = true; - rrc_inactive_transition_report_request.id = c.id; - rrc_inactive_transition_report_request.crit = c.crit; - rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - case 146: - redirection_voice_fallback_present = true; - redirection_voice_fallback.id = c.id; - redirection_voice_fallback.crit = c.crit; - redirection_voice_fallback.value = c.value.redirection_voice_fallback(); + ran_status_transfer_transparent_container.id = c.id; + ran_status_transfer_transparent_container.crit = c.crit; + ran_status_transfer_transparent_container.value = c.value.ran_status_transfer_transparent_container(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -45305,66 +44441,34 @@ SRSASN_CODE path_switch_request_ack_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void path_switch_request_ack_ies_container::to_json(json_writer& j) const +void ul_ran_status_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); amf_ue_ngap_id.to_json(j); j.write_fieldname(""); ran_ue_ngap_id.to_json(j); - if (ue_security_cap_present) { - j.write_fieldname(""); - ue_security_cap.to_json(j); - } - j.write_fieldname(""); - security_context.to_json(j); - if (new_security_context_ind_present) { - j.write_fieldname(""); - new_security_context_ind.to_json(j); - } - j.write_fieldname(""); - pdu_session_res_switched_list.to_json(j); - if (pdu_session_res_released_list_ps_ack_present) { - j.write_fieldname(""); - pdu_session_res_released_list_ps_ack.to_json(j); - } j.write_fieldname(""); - allowed_nssai.to_json(j); - if (core_network_assist_info_present) { - j.write_fieldname(""); - core_network_assist_info.to_json(j); - } - if (rrc_inactive_transition_report_request_present) { - j.write_fieldname(""); - rrc_inactive_transition_report_request.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - if (redirection_voice_fallback_present) { - j.write_fieldname(""); - redirection_voice_fallback.to_json(j); - } + ran_status_transfer_transparent_container.to_json(j); j.end_obj(); } -// PathSwitchRequestAcknowledge ::= SEQUENCE -SRSASN_CODE path_switch_request_ack_s::pack(bit_ref& bref) const +// UplinkRANStatusTransfer ::= SEQUENCE +SRSASN_CODE ul_ran_status_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ack_s::unpack(cbit_ref& bref) +SRSASN_CODE ul_ran_status_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void path_switch_request_ack_s::to_json(json_writer& j) const +void ul_ran_status_transfer_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45372,38 +44476,35 @@ void path_switch_request_ack_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -path_switch_request_fail_ies_container::path_switch_request_fail_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_released_list_ps_fail(69, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) +ul_ueassociated_nrp_pa_transport_ies_container::ul_ueassociated_nrp_pa_transport_ies_container() : + amf_ue_ngap_id(10, crit_e::reject), + ran_ue_ngap_id(85, crit_e::reject), + routing_id(89, crit_e::reject), + nrp_pa_pdu(46, crit_e::reject) {} -SRSASN_CODE path_switch_request_fail_ies_container::pack(bit_ref& bref) const +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 3; - nof_ies += crit_diagnostics_present ? 1 : 0; + uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_released_list_ps_fail.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } + HANDLE_CODE(routing_id.pack(bref)); + HANDLE_CODE(nrp_pa_pdu.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_fail_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 3; + uint32_t nof_mandatory_ies = 4; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 10: @@ -45418,17 +44519,17 @@ SRSASN_CODE path_switch_request_fail_ies_container::unpack(cbit_ref& bref) ran_ue_ngap_id.crit = c.crit; ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); break; - case 69: + case 89: nof_mandatory_ies--; - pdu_session_res_released_list_ps_fail.id = c.id; - pdu_session_res_released_list_ps_fail.crit = c.crit; - pdu_session_res_released_list_ps_fail.value = c.value.pdu_session_res_released_list_ps_fail(); + routing_id.id = c.id; + routing_id.crit = c.crit; + routing_id.value = c.value.routing_id(); break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); + case 46: + nof_mandatory_ies--; + nrp_pa_pdu.id = c.id; + nrp_pa_pdu.crit = c.crit; + nrp_pa_pdu.value = c.value.nrp_pa_pdu(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); @@ -45442,7 +44543,7 @@ SRSASN_CODE path_switch_request_fail_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void path_switch_request_fail_ies_container::to_json(json_writer& j) const +void ul_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -45450,30 +44551,28 @@ void path_switch_request_fail_ies_container::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - pdu_session_res_released_list_ps_fail.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } + routing_id.to_json(j); + j.write_fieldname(""); + nrp_pa_pdu.to_json(j); j.end_obj(); } -// PathSwitchRequestFailure ::= SEQUENCE -SRSASN_CODE path_switch_request_fail_s::pack(bit_ref& bref) const +// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE +SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void path_switch_request_fail_s::to_json(json_writer& j) const +void ul_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45481,208 +44580,208 @@ void path_switch_request_fail_s::to_json(json_writer& j) const j.end_obj(); } -template -private_ie_container_item_s::private_ie_container_item_s(private_ie_id_c id_, crit_e crit_) : - id(id_), - crit(crit_) +template struct asn1::ngap_nr::protocol_ie_field_s; +write_replace_warning_request_ies_container::write_replace_warning_request_ies_container() : + msg_id(35, crit_e::reject), + serial_num(95, crit_e::reject), + warning_area_list(122, crit_e::ignore), + repeat_period(87, crit_e::reject), + nof_broadcasts_requested(47, crit_e::reject), + warning_type(125, crit_e::ignore), + warning_security_info(124, crit_e::ignore), + data_coding_scheme(20, crit_e::ignore), + warning_msg_contents(123, crit_e::ignore), + concurrent_warning_msg_ind(17, crit_e::reject), + warning_area_coordinates(141, crit_e::ignore) {} -template -SRSASN_CODE private_ie_container_item_s::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_request_ies_container::pack(bit_ref& bref) const { - HANDLE_CODE(id.pack(bref)); - HANDLE_CODE(crit.pack(bref)); - { - varlength_field_pack_guard varlen_scope(bref, true); - HANDLE_CODE(value.pack(bref)); + uint32_t nof_ies = 4; + nof_ies += warning_area_list_present ? 1 : 0; + nof_ies += warning_type_present ? 1 : 0; + nof_ies += warning_security_info_present ? 1 : 0; + nof_ies += data_coding_scheme_present ? 1 : 0; + nof_ies += warning_msg_contents_present ? 1 : 0; + nof_ies += concurrent_warning_msg_ind_present ? 1 : 0; + nof_ies += warning_area_coordinates_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + if (warning_area_list_present) { + HANDLE_CODE(warning_area_list.pack(bref)); } - return SRSASN_SUCCESS; -} -template -SRSASN_CODE private_ie_container_item_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(id.unpack(bref)); - HANDLE_CODE(crit.unpack(bref)); - { - varlength_field_unpack_guard varlen_scope(bref, true); - HANDLE_CODE(value.unpack(bref)); + HANDLE_CODE(repeat_period.pack(bref)); + HANDLE_CODE(nof_broadcasts_requested.pack(bref)); + if (warning_type_present) { + HANDLE_CODE(warning_type.pack(bref)); } - return SRSASN_SUCCESS; -} -template -void private_ie_container_item_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("id"); - id.to_json(j); - j.write_str("criticality", crit.to_string()); - j.end_obj(); -} - -SRSASN_CODE private_ie_container_empty_l::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - return SRSASN_SUCCESS; -} -SRSASN_CODE private_ie_container_empty_l::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 1u, 65535u, true); - if (nof_ies > 0) { - return SRSASN_ERROR_DECODE_FAIL; + if (warning_security_info_present) { + HANDLE_CODE(warning_security_info.pack(bref)); } - return SRSASN_SUCCESS; -} -void private_ie_container_empty_l::to_json(json_writer& j) const -{ - j.start_obj(); - j.end_obj(); -} - -// PrivateMessage ::= SEQUENCE -SRSASN_CODE private_msg_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(private_ies.pack(bref)); - - bref.align_bytes_zero(); - - return SRSASN_SUCCESS; -} -SRSASN_CODE private_msg_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(private_ies.unpack(bref)); - - bref.align_bytes(); - - return SRSASN_SUCCESS; -} -void private_msg_s::to_json(json_writer& j) const -{ - j.start_array(); - j.start_obj(); - j.start_obj("PrivateMessage"); - j.write_fieldname("privateIEs"); - private_ies.to_json(j); - j.end_obj(); - j.end_obj(); - j.end_array(); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ran_cfg_upd_ies_container::ran_cfg_upd_ies_container() : - ran_node_name(82, crit_e::ignore), - supported_ta_list(102, crit_e::reject), - default_paging_drx(21, crit_e::ignore), - global_ran_node_id(27, crit_e::ignore) -{} -SRSASN_CODE ran_cfg_upd_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += ran_node_name_present ? 1 : 0; - nof_ies += supported_ta_list_present ? 1 : 0; - nof_ies += default_paging_drx_present ? 1 : 0; - nof_ies += global_ran_node_id_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - if (ran_node_name_present) { - HANDLE_CODE(ran_node_name.pack(bref)); + if (data_coding_scheme_present) { + HANDLE_CODE(data_coding_scheme.pack(bref)); } - if (supported_ta_list_present) { - HANDLE_CODE(supported_ta_list.pack(bref)); + if (warning_msg_contents_present) { + HANDLE_CODE(warning_msg_contents.pack(bref)); } - if (default_paging_drx_present) { - HANDLE_CODE(default_paging_drx.pack(bref)); + if (concurrent_warning_msg_ind_present) { + HANDLE_CODE(concurrent_warning_msg_ind.pack(bref)); } - if (global_ran_node_id_present) { - HANDLE_CODE(global_ran_node_id.pack(bref)); + if (warning_area_coordinates_present) { + HANDLE_CODE(warning_area_coordinates.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE write_replace_warning_request_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); + uint32_t nof_mandatory_ies = 4; + for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 82: - ran_node_name_present = true; - ran_node_name.id = c.id; - ran_node_name.crit = c.crit; - ran_node_name.value = c.value.ran_node_name(); + case 35: + nof_mandatory_ies--; + msg_id.id = c.id; + msg_id.crit = c.crit; + msg_id.value = c.value.msg_id(); break; - case 102: - supported_ta_list_present = true; - supported_ta_list.id = c.id; - supported_ta_list.crit = c.crit; - supported_ta_list.value = c.value.supported_ta_list(); + case 95: + nof_mandatory_ies--; + serial_num.id = c.id; + serial_num.crit = c.crit; + serial_num.value = c.value.serial_num(); break; - case 21: - default_paging_drx_present = true; - default_paging_drx.id = c.id; - default_paging_drx.crit = c.crit; - default_paging_drx.value = c.value.default_paging_drx(); + case 122: + warning_area_list_present = true; + warning_area_list.id = c.id; + warning_area_list.crit = c.crit; + warning_area_list.value = c.value.warning_area_list(); break; - case 27: - global_ran_node_id_present = true; - global_ran_node_id.id = c.id; - global_ran_node_id.crit = c.crit; - global_ran_node_id.value = c.value.global_ran_node_id(); + case 87: + nof_mandatory_ies--; + repeat_period.id = c.id; + repeat_period.crit = c.crit; + repeat_period.value = c.value.repeat_period(); + break; + case 47: + nof_mandatory_ies--; + nof_broadcasts_requested.id = c.id; + nof_broadcasts_requested.crit = c.crit; + nof_broadcasts_requested.value = c.value.nof_broadcasts_requested(); + break; + case 125: + warning_type_present = true; + warning_type.id = c.id; + warning_type.crit = c.crit; + warning_type.value = c.value.warning_type(); + break; + case 124: + warning_security_info_present = true; + warning_security_info.id = c.id; + warning_security_info.crit = c.crit; + warning_security_info.value = c.value.warning_security_info(); + break; + case 20: + data_coding_scheme_present = true; + data_coding_scheme.id = c.id; + data_coding_scheme.crit = c.crit; + data_coding_scheme.value = c.value.data_coding_scheme(); + break; + case 123: + warning_msg_contents_present = true; + warning_msg_contents.id = c.id; + warning_msg_contents.crit = c.crit; + warning_msg_contents.value = c.value.warning_msg_contents(); + break; + case 17: + concurrent_warning_msg_ind_present = true; + concurrent_warning_msg_ind.id = c.id; + concurrent_warning_msg_ind.crit = c.crit; + concurrent_warning_msg_ind.value = c.value.concurrent_warning_msg_ind(); + break; + case 141: + warning_area_coordinates_present = true; + warning_area_coordinates.id = c.id; + warning_area_coordinates.crit = c.crit; + warning_area_coordinates.value = c.value.warning_area_coordinates(); break; default: asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); return SRSASN_ERROR_DECODE_FAIL; } } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + return SRSASN_ERROR_DECODE_FAIL; + } return SRSASN_SUCCESS; } -void ran_cfg_upd_ies_container::to_json(json_writer& j) const +void write_replace_warning_request_ies_container::to_json(json_writer& j) const { j.start_obj(); - if (ran_node_name_present) { + j.write_fieldname(""); + msg_id.to_json(j); + j.write_fieldname(""); + serial_num.to_json(j); + if (warning_area_list_present) { j.write_fieldname(""); - ran_node_name.to_json(j); + warning_area_list.to_json(j); } - if (supported_ta_list_present) { + j.write_fieldname(""); + repeat_period.to_json(j); + j.write_fieldname(""); + nof_broadcasts_requested.to_json(j); + if (warning_type_present) { j.write_fieldname(""); - supported_ta_list.to_json(j); + warning_type.to_json(j); } - if (default_paging_drx_present) { + if (warning_security_info_present) { j.write_fieldname(""); - default_paging_drx.to_json(j); + warning_security_info.to_json(j); } - if (global_ran_node_id_present) { + if (data_coding_scheme_present) { j.write_fieldname(""); - global_ran_node_id.to_json(j); + data_coding_scheme.to_json(j); + } + if (warning_msg_contents_present) { + j.write_fieldname(""); + warning_msg_contents.to_json(j); + } + if (concurrent_warning_msg_ind_present) { + j.write_fieldname(""); + concurrent_warning_msg_ind.to_json(j); + } + if (warning_area_coordinates_present) { + j.write_fieldname(""); + warning_area_coordinates.to_json(j); } j.end_obj(); } -// RANConfigurationUpdate ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_s::pack(bit_ref& bref) const +// WriteReplaceWarningRequest ::= SEQUENCE +SRSASN_CODE write_replace_warning_request_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_s::unpack(cbit_ref& bref) +SRSASN_CODE write_replace_warning_request_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ran_cfg_upd_s::to_json(json_writer& j) const +void write_replace_warning_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45690,45 +44789,25 @@ void ran_cfg_upd_s::to_json(json_writer& j) const j.end_obj(); } -// RANConfigurationUpdateAcknowledge ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_ack_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(pack_dyn_seq_of(bref, protocol_ies, 0, 65535, true)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ran_cfg_upd_ack_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(unpack_dyn_seq_of(protocol_ies, bref, 0, 65535, true)); - - return SRSASN_SUCCESS; -} -void ran_cfg_upd_ack_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - j.end_obj(); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; +template struct asn1::ngap_nr::protocol_ie_field_s; -ran_cfg_upd_fail_ies_container::ran_cfg_upd_fail_ies_container() : - cause(15, crit_e::ignore), - time_to_wait(107, crit_e::ignore), +write_replace_warning_resp_ies_container::write_replace_warning_resp_ies_container() : + msg_id(35, crit_e::reject), + serial_num(95, crit_e::reject), + broadcast_completed_area_list(13, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE ran_cfg_upd_fail_ies_container::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_resp_ies_container::pack(bit_ref& bref) const { - uint32_t nof_ies = 1; - nof_ies += time_to_wait_present ? 1 : 0; + uint32_t nof_ies = 2; + nof_ies += broadcast_completed_area_list_present ? 1 : 0; nof_ies += crit_diagnostics_present ? 1 : 0; pack_length(bref, nof_ies, 0u, 65535u, true); - HANDLE_CODE(cause.pack(bref)); - if (time_to_wait_present) { - HANDLE_CODE(time_to_wait.pack(bref)); + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + if (broadcast_completed_area_list_present) { + HANDLE_CODE(broadcast_completed_area_list.pack(bref)); } if (crit_diagnostics_present) { HANDLE_CODE(crit_diagnostics.pack(bref)); @@ -45736,28 +44815,34 @@ SRSASN_CODE ran_cfg_upd_fail_ies_container::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_fail_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE write_replace_warning_resp_ies_container::unpack(cbit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); - uint32_t nof_mandatory_ies = 1; + uint32_t nof_mandatory_ies = 2; for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; + protocol_ie_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { - case 15: + case 35: nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); + msg_id.id = c.id; + msg_id.crit = c.crit; + msg_id.value = c.value.msg_id(); break; - case 107: - time_to_wait_present = true; - time_to_wait.id = c.id; - time_to_wait.crit = c.crit; - time_to_wait.value = c.value.time_to_wait(); + case 95: + nof_mandatory_ies--; + serial_num.id = c.id; + serial_num.crit = c.crit; + serial_num.value = c.value.serial_num(); + break; + case 13: + broadcast_completed_area_list_present = true; + broadcast_completed_area_list.id = c.id; + broadcast_completed_area_list.crit = c.crit; + broadcast_completed_area_list.value = c.value.broadcast_completed_area_list(); break; case 19: crit_diagnostics_present = true; @@ -45777,14 +44862,16 @@ SRSASN_CODE ran_cfg_upd_fail_ies_container::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void ran_cfg_upd_fail_ies_container::to_json(json_writer& j) const +void write_replace_warning_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); - cause.to_json(j); - if (time_to_wait_present) { + msg_id.to_json(j); + j.write_fieldname(""); + serial_num.to_json(j); + if (broadcast_completed_area_list_present) { j.write_fieldname(""); - time_to_wait.to_json(j); + broadcast_completed_area_list.to_json(j); } if (crit_diagnostics_present) { j.write_fieldname(""); @@ -45793,22 +44880,22 @@ void ran_cfg_upd_fail_ies_container::to_json(json_writer& j) const j.end_obj(); } -// RANConfigurationUpdateFailure ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_fail_s::pack(bit_ref& bref) const +// WriteReplaceWarningResponse ::= SEQUENCE +SRSASN_CODE write_replace_warning_resp_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_fail_s::unpack(cbit_ref& bref) +SRSASN_CODE write_replace_warning_resp_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ran_cfg_upd_fail_s::to_json(json_writer& j) const +void write_replace_warning_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -45816,5838 +44903,7197 @@ void ran_cfg_upd_fail_s::to_json(json_writer& j) const j.end_obj(); } -template struct asn1::ngap_nr::protocol_ie_field_s; - -rrc_inactive_transition_report_ies_container::rrc_inactive_transition_report_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - rrc_state(92, crit_e::ignore), - user_location_info(121, crit_e::ignore) -{} -SRSASN_CODE rrc_inactive_transition_report_ies_container::pack(bit_ref& bref) const +// NGAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE +uint16_t ngap_elem_procs_o::idx_to_proc_code(uint32_t idx) { - uint32_t nof_ies = 4; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(rrc_state.pack(bref)); - HANDLE_CODE(user_location_info.pack(bref)); - - return SRSASN_SUCCESS; + static const uint16_t options[] = {0, 10, 12, 13, 14, 20, 21, 25, 26, 27, 28, 29, 32, 35, 40, 41, 43, 51, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 18, 16, 17, 19, 22, 23, 24, + 30, 31, 33, 34, 36, 37, 52, 38, 39, 42, 44, 45, 46, 47, 48, 49, 50}; + return map_enum_number(options, 53, idx, "proc_code"); } -SRSASN_CODE rrc_inactive_transition_report_ies_container::unpack(cbit_ref& bref) +bool ngap_elem_procs_o::is_proc_code_valid(const uint16_t& proc_code) { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 92: - nof_mandatory_ies--; - rrc_state.id = c.id; - rrc_state.crit = c.crit; - rrc_state.value = c.value.rrc_state(); - break; - case 121: - nof_mandatory_ies--; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; + static const uint16_t options[] = {0, 10, 12, 13, 14, 20, 21, 25, 26, 27, 28, 29, 32, 35, 40, 41, 43, 51, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 18, 16, 17, 19, 22, 23, 24, + 30, 31, 33, 34, 36, 37, 52, 38, 39, 42, 44, 45, 46, 47, 48, 49, 50}; + for (const auto& o : options) { + if (o == proc_code) { + return true; } } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + return false; } -void rrc_inactive_transition_report_ies_container::to_json(json_writer& j) const +ngap_elem_procs_o::init_msg_c ngap_elem_procs_o::get_init_msg(const uint16_t& proc_code) { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - rrc_state.to_json(j); - j.write_fieldname(""); - user_location_info.to_json(j); - j.end_obj(); + init_msg_c ret{}; + switch (proc_code) { + case 0: + ret.set(init_msg_c::types::amf_cfg_upd); + break; + case 10: + ret.set(init_msg_c::types::ho_cancel); + break; + case 12: + ret.set(init_msg_c::types::ho_required); + break; + case 13: + ret.set(init_msg_c::types::ho_request); + break; + case 14: + ret.set(init_msg_c::types::init_context_setup_request); + break; + case 20: + ret.set(init_msg_c::types::ng_reset); + break; + case 21: + ret.set(init_msg_c::types::ng_setup_request); + break; + case 25: + ret.set(init_msg_c::types::path_switch_request); + break; + case 26: + ret.set(init_msg_c::types::pdu_session_res_modify_request); + break; + case 27: + ret.set(init_msg_c::types::pdu_session_res_modify_ind); + break; + case 28: + ret.set(init_msg_c::types::pdu_session_res_release_cmd); + break; + case 29: + ret.set(init_msg_c::types::pdu_session_res_setup_request); + break; + case 32: + ret.set(init_msg_c::types::pws_cancel_request); + break; + case 35: + ret.set(init_msg_c::types::ran_cfg_upd); + break; + case 40: + ret.set(init_msg_c::types::ue_context_mod_request); + break; + case 41: + ret.set(init_msg_c::types::ue_context_release_cmd); + break; + case 43: + ret.set(init_msg_c::types::ue_radio_cap_check_request); + break; + case 51: + ret.set(init_msg_c::types::write_replace_warning_request); + break; + case 1: + ret.set(init_msg_c::types::amf_status_ind); + break; + case 2: + ret.set(init_msg_c::types::cell_traffic_trace); + break; + case 3: + ret.set(init_msg_c::types::deactiv_trace); + break; + case 4: + ret.set(init_msg_c::types::dl_nas_transport); + break; + case 5: + ret.set(init_msg_c::types::dl_non_ueassociated_nrp_pa_transport); + break; + case 6: + ret.set(init_msg_c::types::dl_ran_cfg_transfer); + break; + case 7: + ret.set(init_msg_c::types::dl_ran_status_transfer); + break; + case 8: + ret.set(init_msg_c::types::dl_ueassociated_nrp_pa_transport); + break; + case 9: + ret.set(init_msg_c::types::error_ind); + break; + case 11: + ret.set(init_msg_c::types::ho_notify); + break; + case 15: + ret.set(init_msg_c::types::init_ue_msg); + break; + case 18: + ret.set(init_msg_c::types::location_report); + break; + case 16: + ret.set(init_msg_c::types::location_report_ctrl); + break; + case 17: + ret.set(init_msg_c::types::location_report_fail_ind); + break; + case 19: + ret.set(init_msg_c::types::nas_non_delivery_ind); + break; + case 22: + ret.set(init_msg_c::types::overload_start); + break; + case 23: + ret.set(init_msg_c::types::overload_stop); + break; + case 24: + ret.set(init_msg_c::types::paging); + break; + case 30: + ret.set(init_msg_c::types::pdu_session_res_notify); + break; + case 31: + ret.set(init_msg_c::types::private_msg); + break; + case 33: + ret.set(init_msg_c::types::pws_fail_ind); + break; + case 34: + ret.set(init_msg_c::types::pws_restart_ind); + break; + case 36: + ret.set(init_msg_c::types::reroute_nas_request); + break; + case 37: + ret.set(init_msg_c::types::rrc_inactive_transition_report); + break; + case 52: + ret.set(init_msg_c::types::secondary_rat_data_usage_report); + break; + case 38: + ret.set(init_msg_c::types::trace_fail_ind); + break; + case 39: + ret.set(init_msg_c::types::trace_start); + break; + case 42: + ret.set(init_msg_c::types::ue_context_release_request); + break; + case 44: + ret.set(init_msg_c::types::ue_radio_cap_info_ind); + break; + case 45: + ret.set(init_msg_c::types::uetnla_binding_release_request); + break; + case 46: + ret.set(init_msg_c::types::ul_nas_transport); + break; + case 47: + ret.set(init_msg_c::types::ul_non_ueassociated_nrp_pa_transport); + break; + case 48: + ret.set(init_msg_c::types::ul_ran_cfg_transfer); + break; + case 49: + ret.set(init_msg_c::types::ul_ran_status_transfer); + break; + case 50: + ret.set(init_msg_c::types::ul_ueassociated_nrp_pa_transport); + break; + default: + asn1::log_error("The proc_code=%d is not recognized", proc_code); + } + return ret; } - -// RRCInactiveTransitionReport ::= SEQUENCE -SRSASN_CODE rrc_inactive_transition_report_s::pack(bit_ref& bref) const +ngap_elem_procs_o::successful_outcome_c ngap_elem_procs_o::get_successful_outcome(const uint16_t& proc_code) { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + successful_outcome_c ret{}; + switch (proc_code) { + case 0: + ret.set(successful_outcome_c::types::amf_cfg_upd_ack); + break; + case 10: + ret.set(successful_outcome_c::types::ho_cancel_ack); + break; + case 12: + ret.set(successful_outcome_c::types::ho_cmd); + break; + case 13: + ret.set(successful_outcome_c::types::ho_request_ack); + break; + case 14: + ret.set(successful_outcome_c::types::init_context_setup_resp); + break; + case 20: + ret.set(successful_outcome_c::types::ng_reset_ack); + break; + case 21: + ret.set(successful_outcome_c::types::ng_setup_resp); + break; + case 25: + ret.set(successful_outcome_c::types::path_switch_request_ack); + break; + case 26: + ret.set(successful_outcome_c::types::pdu_session_res_modify_resp); + break; + case 27: + ret.set(successful_outcome_c::types::pdu_session_res_modify_confirm); + break; + case 28: + ret.set(successful_outcome_c::types::pdu_session_res_release_resp); + break; + case 29: + ret.set(successful_outcome_c::types::pdu_session_res_setup_resp); + break; + case 32: + ret.set(successful_outcome_c::types::pws_cancel_resp); + break; + case 35: + ret.set(successful_outcome_c::types::ran_cfg_upd_ack); + break; + case 40: + ret.set(successful_outcome_c::types::ue_context_mod_resp); + break; + case 41: + ret.set(successful_outcome_c::types::ue_context_release_complete); + break; + case 43: + ret.set(successful_outcome_c::types::ue_radio_cap_check_resp); + break; + case 51: + ret.set(successful_outcome_c::types::write_replace_warning_resp); + break; + default: + asn1::log_error("The proc_code=%d is not recognized", proc_code); + } + return ret; } -SRSASN_CODE rrc_inactive_transition_report_s::unpack(cbit_ref& bref) +ngap_elem_procs_o::unsuccessful_outcome_c ngap_elem_procs_o::get_unsuccessful_outcome(const uint16_t& proc_code) { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + unsuccessful_outcome_c ret{}; + switch (proc_code) { + case 0: + ret.set(unsuccessful_outcome_c::types::amf_cfg_upd_fail); + break; + case 12: + ret.set(unsuccessful_outcome_c::types::ho_prep_fail); + break; + case 13: + ret.set(unsuccessful_outcome_c::types::ho_fail); + break; + case 14: + ret.set(unsuccessful_outcome_c::types::init_context_setup_fail); + break; + case 21: + ret.set(unsuccessful_outcome_c::types::ng_setup_fail); + break; + case 25: + ret.set(unsuccessful_outcome_c::types::path_switch_request_fail); + break; + case 35: + ret.set(unsuccessful_outcome_c::types::ran_cfg_upd_fail); + break; + case 40: + ret.set(unsuccessful_outcome_c::types::ue_context_mod_fail); + break; + default: + asn1::log_error("The proc_code=%d is not recognized", proc_code); + } + return ret; } -void rrc_inactive_transition_report_s::to_json(json_writer& j) const +crit_e ngap_elem_procs_o::get_crit(const uint16_t& proc_code) { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + switch (proc_code) { + case 0: + return crit_e::reject; + case 10: + return crit_e::reject; + case 12: + return crit_e::reject; + case 13: + return crit_e::reject; + case 14: + return crit_e::reject; + case 20: + return crit_e::reject; + case 21: + return crit_e::reject; + case 25: + return crit_e::reject; + case 26: + return crit_e::reject; + case 27: + return crit_e::reject; + case 28: + return crit_e::reject; + case 29: + return crit_e::reject; + case 32: + return crit_e::reject; + case 35: + return crit_e::reject; + case 40: + return crit_e::reject; + case 41: + return crit_e::reject; + case 43: + return crit_e::reject; + case 51: + return crit_e::reject; + case 1: + return crit_e::ignore; + case 2: + return crit_e::ignore; + case 3: + return crit_e::ignore; + case 4: + return crit_e::ignore; + case 5: + return crit_e::ignore; + case 6: + return crit_e::ignore; + case 7: + return crit_e::ignore; + case 8: + return crit_e::ignore; + case 9: + return crit_e::ignore; + case 11: + return crit_e::ignore; + case 15: + return crit_e::ignore; + case 18: + return crit_e::ignore; + case 16: + return crit_e::ignore; + case 17: + return crit_e::ignore; + case 19: + return crit_e::ignore; + case 22: + return crit_e::ignore; + case 23: + return crit_e::reject; + case 24: + return crit_e::ignore; + case 30: + return crit_e::ignore; + case 31: + return crit_e::ignore; + case 33: + return crit_e::ignore; + case 34: + return crit_e::ignore; + case 36: + return crit_e::reject; + case 37: + return crit_e::ignore; + case 52: + return crit_e::ignore; + case 38: + return crit_e::ignore; + case 39: + return crit_e::ignore; + case 42: + return crit_e::ignore; + case 44: + return crit_e::ignore; + case 45: + return crit_e::ignore; + case 46: + return crit_e::ignore; + case 47: + return crit_e::ignore; + case 48: + return crit_e::ignore; + case 49: + return crit_e::ignore; + case 50: + return crit_e::ignore; + default: + asn1::log_error("The proc_code=%d is not recognized", proc_code); + } + return {}; } -template struct asn1::ngap_nr::protocol_ie_field_s; - -reroute_nas_request_ies_container::reroute_nas_request_ies_container() : - ran_ue_ngap_id(85, crit_e::reject), - amf_ue_ngap_id(10, crit_e::ignore), - ngap_msg(42, crit_e::reject), - amf_set_id(3, crit_e::reject), - allowed_nssai(0, crit_e::reject) -{} -SRSASN_CODE reroute_nas_request_ies_container::pack(bit_ref& bref) const +// InitiatingMessage ::= OPEN TYPE +void ngap_elem_procs_o::init_msg_c::destroy_() { - uint32_t nof_ies = 3; - nof_ies += amf_ue_ngap_id_present ? 1 : 0; - nof_ies += allowed_nssai_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (amf_ue_ngap_id_present) { - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); + switch (type_) { + case types::amf_cfg_upd: + c.destroy(); + break; + case types::ho_cancel: + c.destroy(); + break; + case types::ho_required: + c.destroy(); + break; + case types::ho_request: + c.destroy(); + break; + case types::init_context_setup_request: + c.destroy(); + break; + case types::ng_reset: + c.destroy(); + break; + case types::ng_setup_request: + c.destroy(); + break; + case types::path_switch_request: + c.destroy(); + break; + case types::pdu_session_res_modify_request: + c.destroy(); + break; + case types::pdu_session_res_modify_ind: + c.destroy(); + break; + case types::pdu_session_res_release_cmd: + c.destroy(); + break; + case types::pdu_session_res_setup_request: + c.destroy(); + break; + case types::pws_cancel_request: + c.destroy(); + break; + case types::ran_cfg_upd: + c.destroy(); + break; + case types::ue_context_mod_request: + c.destroy(); + break; + case types::ue_context_release_cmd: + c.destroy(); + break; + case types::ue_radio_cap_check_request: + c.destroy(); + break; + case types::write_replace_warning_request: + c.destroy(); + break; + case types::amf_status_ind: + c.destroy(); + break; + case types::cell_traffic_trace: + c.destroy(); + break; + case types::deactiv_trace: + c.destroy(); + break; + case types::dl_nas_transport: + c.destroy(); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + c.destroy(); + break; + case types::dl_ran_cfg_transfer: + c.destroy(); + break; + case types::dl_ran_status_transfer: + c.destroy(); + break; + case types::dl_ueassociated_nrp_pa_transport: + c.destroy(); + break; + case types::error_ind: + c.destroy(); + break; + case types::ho_notify: + c.destroy(); + break; + case types::init_ue_msg: + c.destroy(); + break; + case types::location_report: + c.destroy(); + break; + case types::location_report_ctrl: + c.destroy(); + break; + case types::location_report_fail_ind: + c.destroy(); + break; + case types::nas_non_delivery_ind: + c.destroy(); + break; + case types::overload_start: + c.destroy(); + break; + case types::overload_stop: + c.destroy(); + break; + case types::paging: + c.destroy(); + break; + case types::pdu_session_res_notify: + c.destroy(); + break; + case types::private_msg: + c.destroy(); + break; + case types::pws_fail_ind: + c.destroy(); + break; + case types::pws_restart_ind: + c.destroy(); + break; + case types::reroute_nas_request: + c.destroy(); + break; + case types::rrc_inactive_transition_report: + c.destroy(); + break; + case types::secondary_rat_data_usage_report: + c.destroy(); + break; + case types::trace_fail_ind: + c.destroy(); + break; + case types::trace_start: + c.destroy(); + break; + case types::ue_context_release_request: + c.destroy(); + break; + case types::ue_radio_cap_info_ind: + c.destroy(); + break; + case types::uetnla_binding_release_request: + c.destroy(); + break; + case types::ul_nas_transport: + c.destroy(); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + c.destroy(); + break; + case types::ul_ran_cfg_transfer: + c.destroy(); + break; + case types::ul_ran_status_transfer: + c.destroy(); + break; + case types::ul_ueassociated_nrp_pa_transport: + c.destroy(); + break; + default: + break; } - HANDLE_CODE(ngap_msg.pack(bref)); - HANDLE_CODE(amf_set_id.pack(bref)); - if (allowed_nssai_present) { - HANDLE_CODE(allowed_nssai.pack(bref)); +} +void ngap_elem_procs_o::init_msg_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::amf_cfg_upd: + c.init(); + break; + case types::ho_cancel: + c.init(); + break; + case types::ho_required: + c.init(); + break; + case types::ho_request: + c.init(); + break; + case types::init_context_setup_request: + c.init(); + break; + case types::ng_reset: + c.init(); + break; + case types::ng_setup_request: + c.init(); + break; + case types::path_switch_request: + c.init(); + break; + case types::pdu_session_res_modify_request: + c.init(); + break; + case types::pdu_session_res_modify_ind: + c.init(); + break; + case types::pdu_session_res_release_cmd: + c.init(); + break; + case types::pdu_session_res_setup_request: + c.init(); + break; + case types::pws_cancel_request: + c.init(); + break; + case types::ran_cfg_upd: + c.init(); + break; + case types::ue_context_mod_request: + c.init(); + break; + case types::ue_context_release_cmd: + c.init(); + break; + case types::ue_radio_cap_check_request: + c.init(); + break; + case types::write_replace_warning_request: + c.init(); + break; + case types::amf_status_ind: + c.init(); + break; + case types::cell_traffic_trace: + c.init(); + break; + case types::deactiv_trace: + c.init(); + break; + case types::dl_nas_transport: + c.init(); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + c.init(); + break; + case types::dl_ran_cfg_transfer: + c.init(); + break; + case types::dl_ran_status_transfer: + c.init(); + break; + case types::dl_ueassociated_nrp_pa_transport: + c.init(); + break; + case types::error_ind: + c.init(); + break; + case types::ho_notify: + c.init(); + break; + case types::init_ue_msg: + c.init(); + break; + case types::location_report: + c.init(); + break; + case types::location_report_ctrl: + c.init(); + break; + case types::location_report_fail_ind: + c.init(); + break; + case types::nas_non_delivery_ind: + c.init(); + break; + case types::overload_start: + c.init(); + break; + case types::overload_stop: + c.init(); + break; + case types::paging: + c.init(); + break; + case types::pdu_session_res_notify: + c.init(); + break; + case types::private_msg: + c.init(); + break; + case types::pws_fail_ind: + c.init(); + break; + case types::pws_restart_ind: + c.init(); + break; + case types::reroute_nas_request: + c.init(); + break; + case types::rrc_inactive_transition_report: + c.init(); + break; + case types::secondary_rat_data_usage_report: + c.init(); + break; + case types::trace_fail_ind: + c.init(); + break; + case types::trace_start: + c.init(); + break; + case types::ue_context_release_request: + c.init(); + break; + case types::ue_radio_cap_info_ind: + c.init(); + break; + case types::uetnla_binding_release_request: + c.init(); + break; + case types::ul_nas_transport: + c.init(); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + c.init(); + break; + case types::ul_ran_cfg_transfer: + c.init(); + break; + case types::ul_ran_status_transfer: + c.init(); + break; + case types::ul_ueassociated_nrp_pa_transport: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE reroute_nas_request_ies_container::unpack(cbit_ref& bref) +ngap_elem_procs_o::init_msg_c::init_msg_c(const ngap_elem_procs_o::init_msg_c& other) { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 10: - amf_ue_ngap_id_present = true; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 42: - nof_mandatory_ies--; - ngap_msg.id = c.id; - ngap_msg.crit = c.crit; - ngap_msg.value = c.value.ngap_msg(); - break; - case 3: - nof_mandatory_ies--; - amf_set_id.id = c.id; - amf_set_id.crit = c.crit; - amf_set_id.value = c.value.amf_set_id(); - break; - case 0: - allowed_nssai_present = true; - allowed_nssai.id = c.id; - allowed_nssai.crit = c.crit; - allowed_nssai.value = c.value.allowed_nssai(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } + type_ = other.type(); + switch (type_) { + case types::amf_cfg_upd: + c.init(other.c.get()); + break; + case types::ho_cancel: + c.init(other.c.get()); + break; + case types::ho_required: + c.init(other.c.get()); + break; + case types::ho_request: + c.init(other.c.get()); + break; + case types::init_context_setup_request: + c.init(other.c.get()); + break; + case types::ng_reset: + c.init(other.c.get()); + break; + case types::ng_setup_request: + c.init(other.c.get()); + break; + case types::path_switch_request: + c.init(other.c.get()); + break; + case types::pdu_session_res_modify_request: + c.init(other.c.get()); + break; + case types::pdu_session_res_modify_ind: + c.init(other.c.get()); + break; + case types::pdu_session_res_release_cmd: + c.init(other.c.get()); + break; + case types::pdu_session_res_setup_request: + c.init(other.c.get()); + break; + case types::pws_cancel_request: + c.init(other.c.get()); + break; + case types::ran_cfg_upd: + c.init(other.c.get()); + break; + case types::ue_context_mod_request: + c.init(other.c.get()); + break; + case types::ue_context_release_cmd: + c.init(other.c.get()); + break; + case types::ue_radio_cap_check_request: + c.init(other.c.get()); + break; + case types::write_replace_warning_request: + c.init(other.c.get()); + break; + case types::amf_status_ind: + c.init(other.c.get()); + break; + case types::cell_traffic_trace: + c.init(other.c.get()); + break; + case types::deactiv_trace: + c.init(other.c.get()); + break; + case types::dl_nas_transport: + c.init(other.c.get()); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + c.init(other.c.get()); + break; + case types::dl_ran_cfg_transfer: + c.init(other.c.get()); + break; + case types::dl_ran_status_transfer: + c.init(other.c.get()); + break; + case types::dl_ueassociated_nrp_pa_transport: + c.init(other.c.get()); + break; + case types::error_ind: + c.init(other.c.get()); + break; + case types::ho_notify: + c.init(other.c.get()); + break; + case types::init_ue_msg: + c.init(other.c.get()); + break; + case types::location_report: + c.init(other.c.get()); + break; + case types::location_report_ctrl: + c.init(other.c.get()); + break; + case types::location_report_fail_ind: + c.init(other.c.get()); + break; + case types::nas_non_delivery_ind: + c.init(other.c.get()); + break; + case types::overload_start: + c.init(other.c.get()); + break; + case types::overload_stop: + c.init(other.c.get()); + break; + case types::paging: + c.init(other.c.get()); + break; + case types::pdu_session_res_notify: + c.init(other.c.get()); + break; + case types::private_msg: + c.init(other.c.get()); + break; + case types::pws_fail_ind: + c.init(other.c.get()); + break; + case types::pws_restart_ind: + c.init(other.c.get()); + break; + case types::reroute_nas_request: + c.init(other.c.get()); + break; + case types::rrc_inactive_transition_report: + c.init(other.c.get()); + break; + case types::secondary_rat_data_usage_report: + c.init(other.c.get()); + break; + case types::trace_fail_ind: + c.init(other.c.get()); + break; + case types::trace_start: + c.init(other.c.get()); + break; + case types::ue_context_release_request: + c.init(other.c.get()); + break; + case types::ue_radio_cap_info_ind: + c.init(other.c.get()); + break; + case types::uetnla_binding_release_request: + c.init(other.c.get()); + break; + case types::ul_nas_transport: + c.init(other.c.get()); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + c.init(other.c.get()); + break; + case types::ul_ran_cfg_transfer: + c.init(other.c.get()); + break; + case types::ul_ran_status_transfer: + c.init(other.c.get()); + break; + case types::ul_ueassociated_nrp_pa_transport: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + } +} +ngap_elem_procs_o::init_msg_c& ngap_elem_procs_o::init_msg_c::operator=(const ngap_elem_procs_o::init_msg_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::amf_cfg_upd: + c.set(other.c.get()); + break; + case types::ho_cancel: + c.set(other.c.get()); + break; + case types::ho_required: + c.set(other.c.get()); + break; + case types::ho_request: + c.set(other.c.get()); + break; + case types::init_context_setup_request: + c.set(other.c.get()); + break; + case types::ng_reset: + c.set(other.c.get()); + break; + case types::ng_setup_request: + c.set(other.c.get()); + break; + case types::path_switch_request: + c.set(other.c.get()); + break; + case types::pdu_session_res_modify_request: + c.set(other.c.get()); + break; + case types::pdu_session_res_modify_ind: + c.set(other.c.get()); + break; + case types::pdu_session_res_release_cmd: + c.set(other.c.get()); + break; + case types::pdu_session_res_setup_request: + c.set(other.c.get()); + break; + case types::pws_cancel_request: + c.set(other.c.get()); + break; + case types::ran_cfg_upd: + c.set(other.c.get()); + break; + case types::ue_context_mod_request: + c.set(other.c.get()); + break; + case types::ue_context_release_cmd: + c.set(other.c.get()); + break; + case types::ue_radio_cap_check_request: + c.set(other.c.get()); + break; + case types::write_replace_warning_request: + c.set(other.c.get()); + break; + case types::amf_status_ind: + c.set(other.c.get()); + break; + case types::cell_traffic_trace: + c.set(other.c.get()); + break; + case types::deactiv_trace: + c.set(other.c.get()); + break; + case types::dl_nas_transport: + c.set(other.c.get()); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + c.set(other.c.get()); + break; + case types::dl_ran_cfg_transfer: + c.set(other.c.get()); + break; + case types::dl_ran_status_transfer: + c.set(other.c.get()); + break; + case types::dl_ueassociated_nrp_pa_transport: + c.set(other.c.get()); + break; + case types::error_ind: + c.set(other.c.get()); + break; + case types::ho_notify: + c.set(other.c.get()); + break; + case types::init_ue_msg: + c.set(other.c.get()); + break; + case types::location_report: + c.set(other.c.get()); + break; + case types::location_report_ctrl: + c.set(other.c.get()); + break; + case types::location_report_fail_ind: + c.set(other.c.get()); + break; + case types::nas_non_delivery_ind: + c.set(other.c.get()); + break; + case types::overload_start: + c.set(other.c.get()); + break; + case types::overload_stop: + c.set(other.c.get()); + break; + case types::paging: + c.set(other.c.get()); + break; + case types::pdu_session_res_notify: + c.set(other.c.get()); + break; + case types::private_msg: + c.set(other.c.get()); + break; + case types::pws_fail_ind: + c.set(other.c.get()); + break; + case types::pws_restart_ind: + c.set(other.c.get()); + break; + case types::reroute_nas_request: + c.set(other.c.get()); + break; + case types::rrc_inactive_transition_report: + c.set(other.c.get()); + break; + case types::secondary_rat_data_usage_report: + c.set(other.c.get()); + break; + case types::trace_fail_ind: + c.set(other.c.get()); + break; + case types::trace_start: + c.set(other.c.get()); + break; + case types::ue_context_release_request: + c.set(other.c.get()); + break; + case types::ue_radio_cap_info_ind: + c.set(other.c.get()); + break; + case types::uetnla_binding_release_request: + c.set(other.c.get()); + break; + case types::ul_nas_transport: + c.set(other.c.get()); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + c.set(other.c.get()); + break; + case types::ul_ran_cfg_transfer: + c.set(other.c.get()); + break; + case types::ul_ran_status_transfer: + c.set(other.c.get()); + break; + case types::ul_ueassociated_nrp_pa_transport: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + return *this; } -void reroute_nas_request_ies_container::to_json(json_writer& j) const +amf_cfg_upd_s& ngap_elem_procs_o::init_msg_c::amf_cfg_upd() { - j.start_obj(); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (amf_ue_ngap_id_present) { - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - } - j.write_fieldname(""); - ngap_msg.to_json(j); - j.write_fieldname(""); - amf_set_id.to_json(j); - if (allowed_nssai_present) { - j.write_fieldname(""); - allowed_nssai.to_json(j); - } - j.end_obj(); + assert_choice_type(types::amf_cfg_upd, type_, "InitiatingMessage"); + return c.get(); } - -// RerouteNASRequest ::= SEQUENCE -SRSASN_CODE reroute_nas_request_s::pack(bit_ref& bref) const +ho_cancel_s& ngap_elem_procs_o::init_msg_c::ho_cancel() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ho_cancel, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE reroute_nas_request_s::unpack(cbit_ref& bref) +ho_required_s& ngap_elem_procs_o::init_msg_c::ho_required() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ho_required, type_, "InitiatingMessage"); + return c.get(); } -void reroute_nas_request_s::to_json(json_writer& j) const +ho_request_s& ngap_elem_procs_o::init_msg_c::ho_request() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ho_request, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -secondary_rat_data_usage_report_ies_container::secondary_rat_data_usage_report_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - pdu_session_res_secondary_ratusage_list(142, crit_e::ignore), - ho_flag(143, crit_e::ignore) -{} -SRSASN_CODE secondary_rat_data_usage_report_ies_container::pack(bit_ref& bref) const +init_context_setup_request_s& ngap_elem_procs_o::init_msg_c::init_context_setup_request() { - uint32_t nof_ies = 3; - nof_ies += ho_flag_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(pdu_session_res_secondary_ratusage_list.pack(bref)); - if (ho_flag_present) { - HANDLE_CODE(ho_flag.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::init_context_setup_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE secondary_rat_data_usage_report_ies_container::unpack(cbit_ref& bref) +ng_reset_s& ngap_elem_procs_o::init_msg_c::ng_reset() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 142: - nof_mandatory_ies--; - pdu_session_res_secondary_ratusage_list.id = c.id; - pdu_session_res_secondary_ratusage_list.crit = c.crit; - pdu_session_res_secondary_ratusage_list.value = c.value.pdu_session_res_secondary_ratusage_list(); - break; - case 143: - ho_flag_present = true; - ho_flag.id = c.id; - ho_flag.crit = c.crit; - ho_flag.value = c.value.ho_flag(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::ng_reset, type_, "InitiatingMessage"); + return c.get(); } -void secondary_rat_data_usage_report_ies_container::to_json(json_writer& j) const +ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - pdu_session_res_secondary_ratusage_list.to_json(j); - if (ho_flag_present) { - j.write_fieldname(""); - ho_flag.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ng_setup_request, type_, "InitiatingMessage"); + return c.get(); } - -// SecondaryRATDataUsageReport ::= SEQUENCE -SRSASN_CODE secondary_rat_data_usage_report_s::pack(bit_ref& bref) const +path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::path_switch_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE secondary_rat_data_usage_report_s::unpack(cbit_ref& bref) +pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_modify_request, type_, "InitiatingMessage"); + return c.get(); } -void secondary_rat_data_usage_report_s::to_json(json_writer& j) const +pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::pdu_session_res_modify_ind, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -trace_fail_ind_ies_container::trace_fail_ind_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ngran_trace_id(44, crit_e::ignore), - cause(15, crit_e::ignore) -{} -SRSASN_CODE trace_fail_ind_ies_container::pack(bit_ref& bref) const +pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() { - uint32_t nof_ies = 4; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ngran_trace_id.pack(bref)); - HANDLE_CODE(cause.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_release_cmd, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE trace_fail_ind_ies_container::unpack(cbit_ref& bref) +pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 44: - nof_mandatory_ies--; - ngran_trace_id.id = c.id; - ngran_trace_id.crit = c.crit; - ngran_trace_id.value = c.value.ngran_trace_id(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_setup_request, type_, "InitiatingMessage"); + return c.get(); } -void trace_fail_ind_ies_container::to_json(json_writer& j) const +pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ngran_trace_id.to_json(j); - j.write_fieldname(""); - cause.to_json(j); - j.end_obj(); + assert_choice_type(types::pws_cancel_request, type_, "InitiatingMessage"); + return c.get(); } - -// TraceFailureIndication ::= SEQUENCE -SRSASN_CODE trace_fail_ind_s::pack(bit_ref& bref) const +ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_cfg_upd, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE trace_fail_ind_s::unpack(cbit_ref& bref) +ue_context_mod_request_s& ngap_elem_procs_o::init_msg_c::ue_context_mod_request() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_context_mod_request, type_, "InitiatingMessage"); + return c.get(); } -void trace_fail_ind_s::to_json(json_writer& j) const +ue_context_release_cmd_s& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ue_context_release_cmd, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -trace_start_ies_container::trace_start_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - trace_activation(108, crit_e::ignore) -{} -SRSASN_CODE trace_start_ies_container::pack(bit_ref& bref) const +ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() { - uint32_t nof_ies = 3; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(trace_activation.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_radio_cap_check_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE trace_start_ies_container::unpack(cbit_ref& bref) +write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 108: - nof_mandatory_ies--; - trace_activation.id = c.id; - trace_activation.crit = c.crit; - trace_activation.value = c.value.trace_activation(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::write_replace_warning_request, type_, "InitiatingMessage"); + return c.get(); } -void trace_start_ies_container::to_json(json_writer& j) const +amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - trace_activation.to_json(j); - j.end_obj(); + assert_choice_type(types::amf_status_ind, type_, "InitiatingMessage"); + return c.get(); } - -// TraceStart ::= SEQUENCE -SRSASN_CODE trace_start_s::pack(bit_ref& bref) const +cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE trace_start_s::unpack(cbit_ref& bref) +deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage"); + return c.get(); } -void trace_start_s::to_json(json_writer& j) const +dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::dl_nas_transport, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_mod_fail_ies_container::ue_context_mod_fail_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - cause(15, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE ue_context_mod_fail_ies_container::pack(bit_ref& bref) const +dl_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() { - uint32_t nof_ies = 3; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(cause.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::dl_non_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_fail_ies_container::unpack(cbit_ref& bref) +dl_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_cfg_transfer() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::dl_ran_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_fail_ies_container::to_json(json_writer& j) const +dl_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_status_transfer() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - cause.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); + assert_choice_type(types::dl_ran_status_transfer, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextModificationFailure ::= SEQUENCE -SRSASN_CODE ue_context_mod_fail_s::pack(bit_ref& bref) const +dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_ueassociated_nrp_pa_transport() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::dl_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_fail_s::unpack(cbit_ref& bref) +error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::error_ind, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_fail_s::to_json(json_writer& j) const +ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_mod_request_ies_container::ue_context_mod_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ran_paging_prio(83, crit_e::ignore), - security_key(94, crit_e::reject), - idx_to_rfsp(31, crit_e::ignore), - ue_aggregate_maximum_bit_rate(110, crit_e::ignore), - ue_security_cap(119, crit_e::reject), - core_network_assist_info(18, crit_e::ignore), - emergency_fallback_ind(24, crit_e::reject), - new_amf_ue_ngap_id(40, crit_e::ignore), - rrc_inactive_transition_report_request(91, crit_e::ignore) -{} -SRSASN_CODE ue_context_mod_request_ies_container::pack(bit_ref& bref) const + assert_choice_type(types::ho_notify, type_, "InitiatingMessage"); + return c.get(); +} +init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() { - uint32_t nof_ies = 2; - nof_ies += ran_paging_prio_present ? 1 : 0; - nof_ies += security_key_present ? 1 : 0; - nof_ies += idx_to_rfsp_present ? 1 : 0; - nof_ies += ue_aggregate_maximum_bit_rate_present ? 1 : 0; - nof_ies += ue_security_cap_present ? 1 : 0; - nof_ies += core_network_assist_info_present ? 1 : 0; - nof_ies += emergency_fallback_ind_present ? 1 : 0; - nof_ies += new_amf_ue_ngap_id_present ? 1 : 0; - nof_ies += rrc_inactive_transition_report_request_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ran_paging_prio_present) { - HANDLE_CODE(ran_paging_prio.pack(bref)); - } - if (security_key_present) { - HANDLE_CODE(security_key.pack(bref)); - } - if (idx_to_rfsp_present) { - HANDLE_CODE(idx_to_rfsp.pack(bref)); - } - if (ue_aggregate_maximum_bit_rate_present) { - HANDLE_CODE(ue_aggregate_maximum_bit_rate.pack(bref)); - } - if (ue_security_cap_present) { - HANDLE_CODE(ue_security_cap.pack(bref)); - } - if (core_network_assist_info_present) { - HANDLE_CODE(core_network_assist_info.pack(bref)); - } - if (emergency_fallback_ind_present) { - HANDLE_CODE(emergency_fallback_ind.pack(bref)); - } - if (new_amf_ue_ngap_id_present) { - HANDLE_CODE(new_amf_ue_ngap_id.pack(bref)); - } - if (rrc_inactive_transition_report_request_present) { - HANDLE_CODE(rrc_inactive_transition_report_request.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::init_ue_msg, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_request_ies_container::unpack(cbit_ref& bref) +location_report_s& ngap_elem_procs_o::init_msg_c::location_report() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 83: - ran_paging_prio_present = true; - ran_paging_prio.id = c.id; - ran_paging_prio.crit = c.crit; - ran_paging_prio.value = c.value.ran_paging_prio(); - break; - case 94: - security_key_present = true; - security_key.id = c.id; - security_key.crit = c.crit; - security_key.value = c.value.security_key(); - break; - case 31: - idx_to_rfsp_present = true; - idx_to_rfsp.id = c.id; - idx_to_rfsp.crit = c.crit; - idx_to_rfsp.value = c.value.idx_to_rfsp(); - break; - case 110: - ue_aggregate_maximum_bit_rate_present = true; - ue_aggregate_maximum_bit_rate.id = c.id; - ue_aggregate_maximum_bit_rate.crit = c.crit; - ue_aggregate_maximum_bit_rate.value = c.value.ue_aggregate_maximum_bit_rate(); - break; - case 119: - ue_security_cap_present = true; - ue_security_cap.id = c.id; - ue_security_cap.crit = c.crit; - ue_security_cap.value = c.value.ue_security_cap(); - break; - case 18: - core_network_assist_info_present = true; - core_network_assist_info.id = c.id; - core_network_assist_info.crit = c.crit; - core_network_assist_info.value = c.value.core_network_assist_info(); - break; - case 24: - emergency_fallback_ind_present = true; - emergency_fallback_ind.id = c.id; - emergency_fallback_ind.crit = c.crit; - emergency_fallback_ind.value = c.value.emergency_fallback_ind(); - break; - case 40: - new_amf_ue_ngap_id_present = true; - new_amf_ue_ngap_id.id = c.id; - new_amf_ue_ngap_id.crit = c.crit; - new_amf_ue_ngap_id.value = c.value.new_amf_ue_ngap_id(); - break; - case 91: - rrc_inactive_transition_report_request_present = true; - rrc_inactive_transition_report_request.id = c.id; - rrc_inactive_transition_report_request.crit = c.crit; - rrc_inactive_transition_report_request.value = c.value.rrc_inactive_transition_report_request(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::location_report, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_request_ies_container::to_json(json_writer& j) const +location_report_ctrl_s& ngap_elem_procs_o::init_msg_c::location_report_ctrl() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (ran_paging_prio_present) { - j.write_fieldname(""); - ran_paging_prio.to_json(j); - } - if (security_key_present) { - j.write_fieldname(""); - security_key.to_json(j); - } - if (idx_to_rfsp_present) { - j.write_fieldname(""); - idx_to_rfsp.to_json(j); - } - if (ue_aggregate_maximum_bit_rate_present) { - j.write_fieldname(""); - ue_aggregate_maximum_bit_rate.to_json(j); - } - if (ue_security_cap_present) { - j.write_fieldname(""); - ue_security_cap.to_json(j); - } - if (core_network_assist_info_present) { - j.write_fieldname(""); - core_network_assist_info.to_json(j); - } - if (emergency_fallback_ind_present) { - j.write_fieldname(""); - emergency_fallback_ind.to_json(j); - } - if (new_amf_ue_ngap_id_present) { - j.write_fieldname(""); - new_amf_ue_ngap_id.to_json(j); - } - if (rrc_inactive_transition_report_request_present) { - j.write_fieldname(""); - rrc_inactive_transition_report_request.to_json(j); - } - j.end_obj(); + assert_choice_type(types::location_report_ctrl, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextModificationRequest ::= SEQUENCE -SRSASN_CODE ue_context_mod_request_s::pack(bit_ref& bref) const +location_report_fail_ind_s& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::location_report_fail_ind, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_request_s::unpack(cbit_ref& bref) +nas_non_delivery_ind_s& ngap_elem_procs_o::init_msg_c::nas_non_delivery_ind() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::nas_non_delivery_ind, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_request_s::to_json(json_writer& j) const +overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::overload_start, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_mod_resp_ies_container::ue_context_mod_resp_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - rrc_state(92, crit_e::ignore), - user_location_info(121, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE ue_context_mod_resp_ies_container::pack(bit_ref& bref) const +overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() { - uint32_t nof_ies = 2; - nof_ies += rrc_state_present ? 1 : 0; - nof_ies += user_location_info_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (rrc_state_present) { - HANDLE_CODE(rrc_state.pack(bref)); - } - if (user_location_info_present) { - HANDLE_CODE(user_location_info.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::overload_stop, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_resp_ies_container::unpack(cbit_ref& bref) +paging_s& ngap_elem_procs_o::init_msg_c::paging() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 92: - rrc_state_present = true; - rrc_state.id = c.id; - rrc_state.crit = c.crit; - rrc_state.value = c.value.rrc_state(); - break; - case 121: - user_location_info_present = true; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::paging, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_resp_ies_container::to_json(json_writer& j) const +pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (rrc_state_present) { - j.write_fieldname(""); - rrc_state.to_json(j); - } - if (user_location_info_present) { - j.write_fieldname(""); - user_location_info.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); + assert_choice_type(types::pdu_session_res_notify, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextModificationResponse ::= SEQUENCE -SRSASN_CODE ue_context_mod_resp_s::pack(bit_ref& bref) const +private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::private_msg, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_mod_resp_s::unpack(cbit_ref& bref) +pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pws_fail_ind, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_mod_resp_s::to_json(json_writer& j) const +pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::pws_restart_ind, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_release_cmd_ies_container::ue_context_release_cmd_ies_container() : - ue_ngap_ids(114, crit_e::reject), - cause(15, crit_e::ignore) -{} -SRSASN_CODE ue_context_release_cmd_ies_container::pack(bit_ref& bref) const +reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() { - uint32_t nof_ies = 2; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(ue_ngap_ids.pack(bref)); - HANDLE_CODE(cause.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::reroute_nas_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_cmd_ies_container::unpack(cbit_ref& bref) +rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 114: - nof_mandatory_ies--; - ue_ngap_ids.id = c.id; - ue_ngap_ids.crit = c.crit; - ue_ngap_ids.value = c.value.ue_ngap_ids(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::rrc_inactive_transition_report, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_cmd_ies_container::to_json(json_writer& j) const +secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() { - j.start_obj(); - j.write_fieldname(""); - ue_ngap_ids.to_json(j); - j.write_fieldname(""); - cause.to_json(j); - j.end_obj(); + assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextReleaseCommand ::= SEQUENCE -SRSASN_CODE ue_context_release_cmd_s::pack(bit_ref& bref) const +trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::trace_fail_ind, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_cmd_s::unpack(cbit_ref& bref) +trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::trace_start, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_cmd_s::to_json(json_writer& j) const +ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ue_context_release_request, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_release_complete_ies_container::ue_context_release_complete_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - user_location_info(121, crit_e::ignore), - info_on_recommended_cells_and_ran_nodes_for_paging(32, crit_e::ignore), - pdu_session_res_list_cxt_rel_cpl(60, crit_e::reject), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE ue_context_release_complete_ies_container::pack(bit_ref& bref) const +ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() { - uint32_t nof_ies = 2; - nof_ies += user_location_info_present ? 1 : 0; - nof_ies += info_on_recommended_cells_and_ran_nodes_for_paging_present ? 1 : 0; - nof_ies += pdu_session_res_list_cxt_rel_cpl_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (user_location_info_present) { - HANDLE_CODE(user_location_info.pack(bref)); - } - if (info_on_recommended_cells_and_ran_nodes_for_paging_present) { - HANDLE_CODE(info_on_recommended_cells_and_ran_nodes_for_paging.pack(bref)); - } - if (pdu_session_res_list_cxt_rel_cpl_present) { - HANDLE_CODE(pdu_session_res_list_cxt_rel_cpl.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_radio_cap_info_ind, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_complete_ies_container::unpack(cbit_ref& bref) +uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 121: - user_location_info_present = true; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - case 32: - info_on_recommended_cells_and_ran_nodes_for_paging_present = true; - info_on_recommended_cells_and_ran_nodes_for_paging.id = c.id; - info_on_recommended_cells_and_ran_nodes_for_paging.crit = c.crit; - info_on_recommended_cells_and_ran_nodes_for_paging.value = - c.value.info_on_recommended_cells_and_ran_nodes_for_paging(); - break; - case 60: - pdu_session_res_list_cxt_rel_cpl_present = true; - pdu_session_res_list_cxt_rel_cpl.id = c.id; - pdu_session_res_list_cxt_rel_cpl.crit = c.crit; - pdu_session_res_list_cxt_rel_cpl.value = c.value.pdu_session_res_list_cxt_rel_cpl(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::uetnla_binding_release_request, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_complete_ies_container::to_json(json_writer& j) const +ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (user_location_info_present) { - j.write_fieldname(""); - user_location_info.to_json(j); - } - if (info_on_recommended_cells_and_ran_nodes_for_paging_present) { - j.write_fieldname(""); - info_on_recommended_cells_and_ran_nodes_for_paging.to_json(j); - } - if (pdu_session_res_list_cxt_rel_cpl_present) { - j.write_fieldname(""); - pdu_session_res_list_cxt_rel_cpl.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ul_nas_transport, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextReleaseComplete ::= SEQUENCE -SRSASN_CODE ue_context_release_complete_s::pack(bit_ref& bref) const +ul_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ul_non_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_complete_s::unpack(cbit_ref& bref) +ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ul_ran_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_complete_s::to_json(json_writer& j) const +ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ul_ran_status_transfer, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_context_release_request_ies_container::ue_context_release_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - pdu_session_res_list_cxt_rel_req(133, crit_e::reject), - cause(15, crit_e::ignore) -{} -SRSASN_CODE ue_context_release_request_ies_container::pack(bit_ref& bref) const +ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() { - uint32_t nof_ies = 3; - nof_ies += pdu_session_res_list_cxt_rel_req_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (pdu_session_res_list_cxt_rel_req_present) { - HANDLE_CODE(pdu_session_res_list_cxt_rel_req.pack(bref)); - } - HANDLE_CODE(cause.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ul_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_request_ies_container::unpack(cbit_ref& bref) +const amf_cfg_upd_s& ngap_elem_procs_o::init_msg_c::amf_cfg_upd() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 133: - pdu_session_res_list_cxt_rel_req_present = true; - pdu_session_res_list_cxt_rel_req.id = c.id; - pdu_session_res_list_cxt_rel_req.crit = c.crit; - pdu_session_res_list_cxt_rel_req.value = c.value.pdu_session_res_list_cxt_rel_req(); - break; - case 15: - nof_mandatory_ies--; - cause.id = c.id; - cause.crit = c.crit; - cause.value = c.value.cause(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::amf_cfg_upd, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_request_ies_container::to_json(json_writer& j) const +const ho_cancel_s& ngap_elem_procs_o::init_msg_c::ho_cancel() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (pdu_session_res_list_cxt_rel_req_present) { - j.write_fieldname(""); - pdu_session_res_list_cxt_rel_req.to_json(j); - } - j.write_fieldname(""); - cause.to_json(j); - j.end_obj(); + assert_choice_type(types::ho_cancel, type_, "InitiatingMessage"); + return c.get(); } - -// UEContextReleaseRequest ::= SEQUENCE -SRSASN_CODE ue_context_release_request_s::pack(bit_ref& bref) const +const ho_required_s& ngap_elem_procs_o::init_msg_c::ho_required() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ho_required, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_context_release_request_s::unpack(cbit_ref& bref) +const ho_request_s& ngap_elem_procs_o::init_msg_c::ho_request() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ho_request, type_, "InitiatingMessage"); + return c.get(); } -void ue_context_release_request_s::to_json(json_writer& j) const +const init_context_setup_request_s& ngap_elem_procs_o::init_msg_c::init_context_setup_request() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::init_context_setup_request, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_radio_cap_check_request_ies_container::ue_radio_cap_check_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ue_radio_cap(117, crit_e::ignore) -{} -SRSASN_CODE ue_radio_cap_check_request_ies_container::pack(bit_ref& bref) const +const ng_reset_s& ngap_elem_procs_o::init_msg_c::ng_reset() const { - uint32_t nof_ies = 2; - nof_ies += ue_radio_cap_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - if (ue_radio_cap_present) { - HANDLE_CODE(ue_radio_cap.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ng_reset, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_check_request_ies_container::unpack(cbit_ref& bref) +const ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 117: - ue_radio_cap_present = true; - ue_radio_cap.id = c.id; - ue_radio_cap.crit = c.crit; - ue_radio_cap.value = c.value.ue_radio_cap(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::ng_setup_request, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_check_request_ies_container::to_json(json_writer& j) const +const path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - if (ue_radio_cap_present) { - j.write_fieldname(""); - ue_radio_cap.to_json(j); - } - j.end_obj(); + assert_choice_type(types::path_switch_request, type_, "InitiatingMessage"); + return c.get(); } - -// UERadioCapabilityCheckRequest ::= SEQUENCE -SRSASN_CODE ue_radio_cap_check_request_s::pack(bit_ref& bref) const +const pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_modify_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_check_request_s::unpack(cbit_ref& bref) +const pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_modify_ind, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_check_request_s::to_json(json_writer& j) const +const pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::pdu_session_res_release_cmd, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_radio_cap_check_resp_ies_container::ue_radio_cap_check_resp_ies_container() : - amf_ue_ngap_id(10, crit_e::ignore), - ran_ue_ngap_id(85, crit_e::ignore), - ims_voice_support_ind(30, crit_e::reject), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE ue_radio_cap_check_resp_ies_container::pack(bit_ref& bref) const +const pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() const { - uint32_t nof_ies = 3; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ims_voice_support_ind.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_setup_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_check_resp_ies_container::unpack(cbit_ref& bref) +const pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 30: - nof_mandatory_ies--; - ims_voice_support_ind.id = c.id; - ims_voice_support_ind.crit = c.crit; - ims_voice_support_ind.value = c.value.ims_voice_support_ind(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::pws_cancel_request, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_check_resp_ies_container::to_json(json_writer& j) const +const ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ims_voice_support_ind.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ran_cfg_upd, type_, "InitiatingMessage"); + return c.get(); } - -// UERadioCapabilityCheckResponse ::= SEQUENCE -SRSASN_CODE ue_radio_cap_check_resp_s::pack(bit_ref& bref) const +const ue_context_mod_request_s& ngap_elem_procs_o::init_msg_c::ue_context_mod_request() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_context_mod_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_check_resp_s::unpack(cbit_ref& bref) +const ue_context_release_cmd_s& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_context_release_cmd, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_check_resp_s::to_json(json_writer& j) const +const ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ue_radio_cap_check_request, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ue_radio_cap_info_ind_ies_container::ue_radio_cap_info_ind_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ue_radio_cap(117, crit_e::ignore), - ue_radio_cap_for_paging(118, crit_e::ignore) -{} -SRSASN_CODE ue_radio_cap_info_ind_ies_container::pack(bit_ref& bref) const +const write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() const { - uint32_t nof_ies = 3; - nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ue_radio_cap.pack(bref)); - if (ue_radio_cap_for_paging_present) { - HANDLE_CODE(ue_radio_cap_for_paging.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::write_replace_warning_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_info_ind_ies_container::unpack(cbit_ref& bref) +const amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 117: - nof_mandatory_ies--; - ue_radio_cap.id = c.id; - ue_radio_cap.crit = c.crit; - ue_radio_cap.value = c.value.ue_radio_cap(); - break; - case 118: - ue_radio_cap_for_paging_present = true; - ue_radio_cap_for_paging.id = c.id; - ue_radio_cap_for_paging.crit = c.crit; - ue_radio_cap_for_paging.value = c.value.ue_radio_cap_for_paging(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::amf_status_ind, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_info_ind_ies_container::to_json(json_writer& j) const +const cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ue_radio_cap.to_json(j); - if (ue_radio_cap_for_paging_present) { - j.write_fieldname(""); - ue_radio_cap_for_paging.to_json(j); - } - j.end_obj(); + assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage"); + return c.get(); } - -// UERadioCapabilityInfoIndication ::= SEQUENCE -SRSASN_CODE ue_radio_cap_info_ind_s::pack(bit_ref& bref) const +const deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ue_radio_cap_info_ind_s::unpack(cbit_ref& bref) +const dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::dl_nas_transport, type_, "InitiatingMessage"); + return c.get(); +} +const dl_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() const +{ + assert_choice_type(types::dl_non_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); +} +const dl_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_cfg_transfer() const +{ + assert_choice_type(types::dl_ran_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const dl_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_status_transfer() const +{ + assert_choice_type(types::dl_ran_status_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_ueassociated_nrp_pa_transport() const +{ + assert_choice_type(types::dl_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); +} +const error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() const +{ + assert_choice_type(types::error_ind, type_, "InitiatingMessage"); + return c.get(); +} +const ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() const +{ + assert_choice_type(types::ho_notify, type_, "InitiatingMessage"); + return c.get(); +} +const init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() const +{ + assert_choice_type(types::init_ue_msg, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_s& ngap_elem_procs_o::init_msg_c::location_report() const +{ + assert_choice_type(types::location_report, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_ctrl_s& ngap_elem_procs_o::init_msg_c::location_report_ctrl() const +{ + assert_choice_type(types::location_report_ctrl, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_fail_ind_s& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() const +{ + assert_choice_type(types::location_report_fail_ind, type_, "InitiatingMessage"); + return c.get(); +} +const nas_non_delivery_ind_s& ngap_elem_procs_o::init_msg_c::nas_non_delivery_ind() const +{ + assert_choice_type(types::nas_non_delivery_ind, type_, "InitiatingMessage"); + return c.get(); +} +const overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() const +{ + assert_choice_type(types::overload_start, type_, "InitiatingMessage"); + return c.get(); } -void ue_radio_cap_info_ind_s::to_json(json_writer& j) const +const overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::overload_stop, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -uetnla_binding_release_request_ies_container::uetnla_binding_release_request_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject) -{} -SRSASN_CODE uetnla_binding_release_request_ies_container::pack(bit_ref& bref) const +const paging_s& ngap_elem_procs_o::init_msg_c::paging() const { - uint32_t nof_ies = 2; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::paging, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE uetnla_binding_release_request_ies_container::unpack(cbit_ref& bref) +const pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_notify, type_, "InitiatingMessage"); + return c.get(); } -void uetnla_binding_release_request_ies_container::to_json(json_writer& j) const +const private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.end_obj(); + assert_choice_type(types::private_msg, type_, "InitiatingMessage"); + return c.get(); } - -// UETNLABindingReleaseRequest ::= SEQUENCE -SRSASN_CODE uetnla_binding_release_request_s::pack(bit_ref& bref) const +const pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pws_fail_ind, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE uetnla_binding_release_request_s::unpack(cbit_ref& bref) +const pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pws_restart_ind, type_, "InitiatingMessage"); + return c.get(); } -void uetnla_binding_release_request_s::to_json(json_writer& j) const +const reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::reroute_nas_request, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ul_nas_transport_ies_container::ul_nas_transport_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - nas_pdu(38, crit_e::reject), - user_location_info(121, crit_e::ignore) -{} -SRSASN_CODE ul_nas_transport_ies_container::pack(bit_ref& bref) const +const rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() const { - uint32_t nof_ies = 4; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(nas_pdu.pack(bref)); - HANDLE_CODE(user_location_info.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::rrc_inactive_transition_report, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ul_nas_transport_ies_container::unpack(cbit_ref& bref) +const secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 38: - nof_mandatory_ies--; - nas_pdu.id = c.id; - nas_pdu.crit = c.crit; - nas_pdu.value = c.value.nas_pdu(); - break; - case 121: - nof_mandatory_ies--; - user_location_info.id = c.id; - user_location_info.crit = c.crit; - user_location_info.value = c.value.user_location_info(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage"); + return c.get(); } -void ul_nas_transport_ies_container::to_json(json_writer& j) const +const trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - nas_pdu.to_json(j); - j.write_fieldname(""); - user_location_info.to_json(j); - j.end_obj(); + assert_choice_type(types::trace_fail_ind, type_, "InitiatingMessage"); + return c.get(); } - -// UplinkNASTransport ::= SEQUENCE -SRSASN_CODE ul_nas_transport_s::pack(bit_ref& bref) const +const trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::trace_start, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ul_nas_transport_s::unpack(cbit_ref& bref) +const ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ue_context_release_request, type_, "InitiatingMessage"); + return c.get(); } -void ul_nas_transport_s::to_json(json_writer& j) const +const ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ue_radio_cap_info_ind, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ul_non_ueassociated_nrp_pa_transport_ies_container::ul_non_ueassociated_nrp_pa_transport_ies_container() : - routing_id(89, crit_e::reject), - nrp_pa_pdu(46, crit_e::reject) -{} -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const +const uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() const { - uint32_t nof_ies = 2; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(routing_id.pack(bref)); - HANDLE_CODE(nrp_pa_pdu.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::uetnla_binding_release_request, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_container::unpack(cbit_ref& bref) +const ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 89: - nof_mandatory_ies--; - routing_id.id = c.id; - routing_id.crit = c.crit; - routing_id.value = c.value.routing_id(); - break; - case 46: - nof_mandatory_ies--; - nrp_pa_pdu.id = c.id; - nrp_pa_pdu.crit = c.crit; - nrp_pa_pdu.value = c.value.nrp_pa_pdu(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::ul_nas_transport, type_, "InitiatingMessage"); + return c.get(); } -void ul_non_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const +const ul_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() const { - j.start_obj(); - j.write_fieldname(""); - routing_id.to_json(j); - j.write_fieldname(""); - nrp_pa_pdu.to_json(j); - j.end_obj(); + assert_choice_type(types::ul_non_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } - -// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::pack(bit_ref& bref) const +const ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() const { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ul_ran_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); } -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::unpack(cbit_ref& bref) +const ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() const { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ul_ran_status_transfer, type_, "InitiatingMessage"); + return c.get(); } -void ul_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const +const ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() const { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ul_ueassociated_nrp_pa_transport, type_, "InitiatingMessage"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ul_ran_cfg_transfer_ies_container::ul_ran_cfg_transfer_ies_container() : - son_cfg_transfer_ul(99, crit_e::ignore), - endc_son_cfg_transfer_ul(158, crit_e::ignore) -{} -SRSASN_CODE ul_ran_cfg_transfer_ies_container::pack(bit_ref& bref) const +void ngap_elem_procs_o::init_msg_c::to_json(json_writer& j) const { - uint32_t nof_ies = 0; - nof_ies += son_cfg_transfer_ul_present ? 1 : 0; - nof_ies += endc_son_cfg_transfer_ul_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - if (son_cfg_transfer_ul_present) { - HANDLE_CODE(son_cfg_transfer_ul.pack(bref)); - } - if (endc_son_cfg_transfer_ul_present) { - HANDLE_CODE(endc_son_cfg_transfer_ul.pack(bref)); + j.start_obj(); + switch (type_) { + case types::amf_cfg_upd: + j.write_fieldname("AMFConfigurationUpdate"); + c.get().to_json(j); + break; + case types::ho_cancel: + j.write_fieldname("HandoverCancel"); + c.get().to_json(j); + break; + case types::ho_required: + j.write_fieldname("HandoverRequired"); + c.get().to_json(j); + break; + case types::ho_request: + j.write_fieldname("HandoverRequest"); + c.get().to_json(j); + break; + case types::init_context_setup_request: + j.write_fieldname("InitialContextSetupRequest"); + c.get().to_json(j); + break; + case types::ng_reset: + j.write_fieldname("NGReset"); + c.get().to_json(j); + break; + case types::ng_setup_request: + j.write_fieldname("NGSetupRequest"); + c.get().to_json(j); + break; + case types::path_switch_request: + j.write_fieldname("PathSwitchRequest"); + c.get().to_json(j); + break; + case types::pdu_session_res_modify_request: + j.write_fieldname("PDUSessionResourceModifyRequest"); + c.get().to_json(j); + break; + case types::pdu_session_res_modify_ind: + j.write_fieldname("PDUSessionResourceModifyIndication"); + c.get().to_json(j); + break; + case types::pdu_session_res_release_cmd: + j.write_fieldname("PDUSessionResourceReleaseCommand"); + c.get().to_json(j); + break; + case types::pdu_session_res_setup_request: + j.write_fieldname("PDUSessionResourceSetupRequest"); + c.get().to_json(j); + break; + case types::pws_cancel_request: + j.write_fieldname("PWSCancelRequest"); + c.get().to_json(j); + break; + case types::ran_cfg_upd: + j.write_fieldname("RANConfigurationUpdate"); + c.get().to_json(j); + break; + case types::ue_context_mod_request: + j.write_fieldname("UEContextModificationRequest"); + c.get().to_json(j); + break; + case types::ue_context_release_cmd: + j.write_fieldname("UEContextReleaseCommand"); + c.get().to_json(j); + break; + case types::ue_radio_cap_check_request: + j.write_fieldname("UERadioCapabilityCheckRequest"); + c.get().to_json(j); + break; + case types::write_replace_warning_request: + j.write_fieldname("WriteReplaceWarningRequest"); + c.get().to_json(j); + break; + case types::amf_status_ind: + j.write_fieldname("AMFStatusIndication"); + c.get().to_json(j); + break; + case types::cell_traffic_trace: + j.write_fieldname("CellTrafficTrace"); + c.get().to_json(j); + break; + case types::deactiv_trace: + j.write_fieldname("DeactivateTrace"); + c.get().to_json(j); + break; + case types::dl_nas_transport: + j.write_fieldname("DownlinkNASTransport"); + c.get().to_json(j); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + j.write_fieldname("DownlinkNonUEAssociatedNRPPaTransport"); + c.get().to_json(j); + break; + case types::dl_ran_cfg_transfer: + j.write_fieldname("DownlinkRANConfigurationTransfer"); + c.get().to_json(j); + break; + case types::dl_ran_status_transfer: + j.write_fieldname("DownlinkRANStatusTransfer"); + c.get().to_json(j); + break; + case types::dl_ueassociated_nrp_pa_transport: + j.write_fieldname("DownlinkUEAssociatedNRPPaTransport"); + c.get().to_json(j); + break; + case types::error_ind: + j.write_fieldname("ErrorIndication"); + c.get().to_json(j); + break; + case types::ho_notify: + j.write_fieldname("HandoverNotify"); + c.get().to_json(j); + break; + case types::init_ue_msg: + j.write_fieldname("InitialUEMessage"); + c.get().to_json(j); + break; + case types::location_report: + j.write_fieldname("LocationReport"); + c.get().to_json(j); + break; + case types::location_report_ctrl: + j.write_fieldname("LocationReportingControl"); + c.get().to_json(j); + break; + case types::location_report_fail_ind: + j.write_fieldname("LocationReportingFailureIndication"); + c.get().to_json(j); + break; + case types::nas_non_delivery_ind: + j.write_fieldname("NASNonDeliveryIndication"); + c.get().to_json(j); + break; + case types::overload_start: + j.write_fieldname("OverloadStart"); + c.get().to_json(j); + break; + case types::overload_stop: + j.write_fieldname("OverloadStop"); + c.get().to_json(j); + break; + case types::paging: + j.write_fieldname("Paging"); + c.get().to_json(j); + break; + case types::pdu_session_res_notify: + j.write_fieldname("PDUSessionResourceNotify"); + c.get().to_json(j); + break; + case types::private_msg: + j.write_fieldname("PrivateMessage"); + c.get().to_json(j); + break; + case types::pws_fail_ind: + j.write_fieldname("PWSFailureIndication"); + c.get().to_json(j); + break; + case types::pws_restart_ind: + j.write_fieldname("PWSRestartIndication"); + c.get().to_json(j); + break; + case types::reroute_nas_request: + j.write_fieldname("RerouteNASRequest"); + c.get().to_json(j); + break; + case types::rrc_inactive_transition_report: + j.write_fieldname("RRCInactiveTransitionReport"); + c.get().to_json(j); + break; + case types::secondary_rat_data_usage_report: + j.write_fieldname("SecondaryRATDataUsageReport"); + c.get().to_json(j); + break; + case types::trace_fail_ind: + j.write_fieldname("TraceFailureIndication"); + c.get().to_json(j); + break; + case types::trace_start: + j.write_fieldname("TraceStart"); + c.get().to_json(j); + break; + case types::ue_context_release_request: + j.write_fieldname("UEContextReleaseRequest"); + c.get().to_json(j); + break; + case types::ue_radio_cap_info_ind: + j.write_fieldname("UERadioCapabilityInfoIndication"); + c.get().to_json(j); + break; + case types::uetnla_binding_release_request: + j.write_fieldname("UETNLABindingReleaseRequest"); + c.get().to_json(j); + break; + case types::ul_nas_transport: + j.write_fieldname("UplinkNASTransport"); + c.get().to_json(j); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + j.write_fieldname("UplinkNonUEAssociatedNRPPaTransport"); + c.get().to_json(j); + break; + case types::ul_ran_cfg_transfer: + j.write_fieldname("UplinkRANConfigurationTransfer"); + c.get().to_json(j); + break; + case types::ul_ran_status_transfer: + j.write_fieldname("UplinkRANStatusTransfer"); + c.get().to_json(j); + break; + case types::ul_ueassociated_nrp_pa_transport: + j.write_fieldname("UplinkUEAssociatedNRPPaTransport"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); } - - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE ul_ran_cfg_transfer_ies_container::unpack(cbit_ref& bref) +SRSASN_CODE ngap_elem_procs_o::init_msg_c::pack(bit_ref& bref) const { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 99: - son_cfg_transfer_ul_present = true; - son_cfg_transfer_ul.id = c.id; - son_cfg_transfer_ul.crit = c.crit; - son_cfg_transfer_ul.value = c.value.son_cfg_transfer_ul(); - break; - case 158: - endc_son_cfg_transfer_ul_present = true; - endc_son_cfg_transfer_ul.id = c.id; - endc_son_cfg_transfer_ul.crit = c.crit; - endc_son_cfg_transfer_ul.value = c.value.endc_son_cfg_transfer_ul(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_cancel: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_required: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::init_context_setup_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ng_reset: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ng_setup_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::path_switch_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_modify_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_modify_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_release_cmd: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_setup_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pws_cancel_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ran_cfg_upd: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_context_mod_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_context_release_cmd: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_radio_cap_check_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::write_replace_warning_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::amf_status_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::cell_traffic_trace: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::deactiv_trace: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::dl_nas_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::dl_ran_cfg_transfer: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::dl_ran_status_transfer: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::dl_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::error_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_notify: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::init_ue_msg: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::location_report: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::location_report_ctrl: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::location_report_fail_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::nas_non_delivery_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::overload_start: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::overload_stop: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::paging: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pdu_session_res_notify: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::private_msg: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pws_fail_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pws_restart_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::reroute_nas_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::rrc_inactive_transition_report: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::secondary_rat_data_usage_report: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::trace_fail_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::trace_start: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_context_release_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_radio_cap_info_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::uetnla_binding_release_request: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ul_nas_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ul_ran_cfg_transfer: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ul_ran_status_transfer: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ul_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -void ul_ran_cfg_transfer_ies_container::to_json(json_writer& j) const +SRSASN_CODE ngap_elem_procs_o::init_msg_c::unpack(cbit_ref& bref) { - j.start_obj(); - if (son_cfg_transfer_ul_present) { - j.write_fieldname(""); - son_cfg_transfer_ul.to_json(j); - } - if (endc_son_cfg_transfer_ul_present) { - j.write_fieldname(""); - endc_son_cfg_transfer_ul.to_json(j); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_cancel: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_required: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::init_context_setup_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ng_reset: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ng_setup_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::path_switch_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_modify_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_modify_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_release_cmd: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_setup_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pws_cancel_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ran_cfg_upd: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_context_mod_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_context_release_cmd: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_radio_cap_check_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::write_replace_warning_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::amf_status_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::cell_traffic_trace: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::deactiv_trace: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_nas_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_non_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_ran_cfg_transfer: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_ran_status_transfer: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::error_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_notify: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::init_ue_msg: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::location_report: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::location_report_ctrl: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::location_report_fail_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::nas_non_delivery_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::overload_start: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::overload_stop: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::paging: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_notify: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::private_msg: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pws_fail_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pws_restart_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::reroute_nas_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::rrc_inactive_transition_report: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::secondary_rat_data_usage_report: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::trace_fail_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::trace_start: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_context_release_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_radio_cap_info_ind: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::uetnla_binding_release_request: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ul_nas_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ul_non_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ul_ran_cfg_transfer: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ul_ran_status_transfer: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ul_ueassociated_nrp_pa_transport: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + return SRSASN_ERROR_DECODE_FAIL; } - j.end_obj(); -} - -// UplinkRANConfigurationTransfer ::= SEQUENCE -SRSASN_CODE ul_ran_cfg_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ul_ran_cfg_transfer_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ul_ran_cfg_transfer_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ul_ran_status_transfer_ies_container::ul_ran_status_transfer_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - ran_status_transfer_transparent_container(84, crit_e::reject) -{} -SRSASN_CODE ul_ran_status_transfer_ies_container::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 3; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_status_transfer_transparent_container.pack(bref)); - return SRSASN_SUCCESS; } -SRSASN_CODE ul_ran_status_transfer_ies_container::unpack(cbit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 3; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 84: - nof_mandatory_ies--; - ran_status_transfer_transparent_container.id = c.id; - ran_status_transfer_transparent_container.crit = c.crit; - ran_status_transfer_transparent_container.value = c.value.ran_status_transfer_transparent_container(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} -void ul_ran_status_transfer_ies_container::to_json(json_writer& j) const +const char* ngap_elem_procs_o::init_msg_c::types_opts::to_string() const { - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_status_transfer_transparent_container.to_json(j); - j.end_obj(); + static const char* options[] = {"AMFConfigurationUpdate", + "HandoverCancel", + "HandoverRequired", + "HandoverRequest", + "InitialContextSetupRequest", + "NGReset", + "NGSetupRequest", + "PathSwitchRequest", + "PDUSessionResourceModifyRequest", + "PDUSessionResourceModifyIndication", + "PDUSessionResourceReleaseCommand", + "PDUSessionResourceSetupRequest", + "PWSCancelRequest", + "RANConfigurationUpdate", + "UEContextModificationRequest", + "UEContextReleaseCommand", + "UERadioCapabilityCheckRequest", + "WriteReplaceWarningRequest", + "AMFStatusIndication", + "CellTrafficTrace", + "DeactivateTrace", + "DownlinkNASTransport", + "DownlinkNonUEAssociatedNRPPaTransport", + "DownlinkRANConfigurationTransfer", + "DownlinkRANStatusTransfer", + "DownlinkUEAssociatedNRPPaTransport", + "ErrorIndication", + "HandoverNotify", + "InitialUEMessage", + "LocationReport", + "LocationReportingControl", + "LocationReportingFailureIndication", + "NASNonDeliveryIndication", + "OverloadStart", + "OverloadStop", + "Paging", + "PDUSessionResourceNotify", + "PrivateMessage", + "PWSFailureIndication", + "PWSRestartIndication", + "RerouteNASRequest", + "RRCInactiveTransitionReport", + "SecondaryRATDataUsageReport", + "TraceFailureIndication", + "TraceStart", + "UEContextReleaseRequest", + "UERadioCapabilityInfoIndication", + "UETNLABindingReleaseRequest", + "UplinkNASTransport", + "UplinkNonUEAssociatedNRPPaTransport", + "UplinkRANConfigurationTransfer", + "UplinkRANStatusTransfer", + "UplinkUEAssociatedNRPPaTransport"}; + return convert_enum_idx(options, 53, value, "ngap_elem_procs_o::init_msg_c::types"); } -// UplinkRANStatusTransfer ::= SEQUENCE -SRSASN_CODE ul_ran_status_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ul_ran_status_transfer_s::unpack(cbit_ref& bref) +// SuccessfulOutcome ::= OPEN TYPE +void ngap_elem_procs_o::successful_outcome_c::destroy_() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + switch (type_) { + case types::amf_cfg_upd_ack: + c.destroy(); + break; + case types::ho_cancel_ack: + c.destroy(); + break; + case types::ho_cmd: + c.destroy(); + break; + case types::ho_request_ack: + c.destroy(); + break; + case types::init_context_setup_resp: + c.destroy(); + break; + case types::ng_reset_ack: + c.destroy(); + break; + case types::ng_setup_resp: + c.destroy(); + break; + case types::path_switch_request_ack: + c.destroy(); + break; + case types::pdu_session_res_modify_resp: + c.destroy(); + break; + case types::pdu_session_res_modify_confirm: + c.destroy(); + break; + case types::pdu_session_res_release_resp: + c.destroy(); + break; + case types::pdu_session_res_setup_resp: + c.destroy(); + break; + case types::pws_cancel_resp: + c.destroy(); + break; + case types::ran_cfg_upd_ack: + c.destroy(); + break; + case types::ue_context_mod_resp: + c.destroy(); + break; + case types::ue_context_release_complete: + c.destroy(); + break; + case types::ue_radio_cap_check_resp: + c.destroy(); + break; + case types::write_replace_warning_resp: + c.destroy(); + break; + default: + break; + } } -void ul_ran_status_transfer_s::to_json(json_writer& j) const +void ngap_elem_procs_o::successful_outcome_c::set(types::options e) { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + destroy_(); + type_ = e; + switch (type_) { + case types::amf_cfg_upd_ack: + c.init(); + break; + case types::ho_cancel_ack: + c.init(); + break; + case types::ho_cmd: + c.init(); + break; + case types::ho_request_ack: + c.init(); + break; + case types::init_context_setup_resp: + c.init(); + break; + case types::ng_reset_ack: + c.init(); + break; + case types::ng_setup_resp: + c.init(); + break; + case types::path_switch_request_ack: + c.init(); + break; + case types::pdu_session_res_modify_resp: + c.init(); + break; + case types::pdu_session_res_modify_confirm: + c.init(); + break; + case types::pdu_session_res_release_resp: + c.init(); + break; + case types::pdu_session_res_setup_resp: + c.init(); + break; + case types::pws_cancel_resp: + c.init(); + break; + case types::ran_cfg_upd_ack: + c.init(); + break; + case types::ue_context_mod_resp: + c.init(); + break; + case types::ue_context_release_complete: + c.init(); + break; + case types::ue_radio_cap_check_resp: + c.init(); + break; + case types::write_replace_warning_resp: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + } } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -ul_ueassociated_nrp_pa_transport_ies_container::ul_ueassociated_nrp_pa_transport_ies_container() : - amf_ue_ngap_id(10, crit_e::reject), - ran_ue_ngap_id(85, crit_e::reject), - routing_id(89, crit_e::reject), - nrp_pa_pdu(46, crit_e::reject) -{} -SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const +ngap_elem_procs_o::successful_outcome_c::successful_outcome_c(const ngap_elem_procs_o::successful_outcome_c& other) { - uint32_t nof_ies = 4; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(routing_id.pack(bref)); - HANDLE_CODE(nrp_pa_pdu.pack(bref)); - - return SRSASN_SUCCESS; + type_ = other.type(); + switch (type_) { + case types::amf_cfg_upd_ack: + c.init(other.c.get()); + break; + case types::ho_cancel_ack: + c.init(other.c.get()); + break; + case types::ho_cmd: + c.init(other.c.get()); + break; + case types::ho_request_ack: + c.init(other.c.get()); + break; + case types::init_context_setup_resp: + c.init(other.c.get()); + break; + case types::ng_reset_ack: + c.init(other.c.get()); + break; + case types::ng_setup_resp: + c.init(other.c.get()); + break; + case types::path_switch_request_ack: + c.init(other.c.get()); + break; + case types::pdu_session_res_modify_resp: + c.init(other.c.get()); + break; + case types::pdu_session_res_modify_confirm: + c.init(other.c.get()); + break; + case types::pdu_session_res_release_resp: + c.init(other.c.get()); + break; + case types::pdu_session_res_setup_resp: + c.init(other.c.get()); + break; + case types::pws_cancel_resp: + c.init(other.c.get()); + break; + case types::ran_cfg_upd_ack: + c.init(other.c.get()); + break; + case types::ue_context_mod_resp: + c.init(other.c.get()); + break; + case types::ue_context_release_complete: + c.init(other.c.get()); + break; + case types::ue_radio_cap_check_resp: + c.init(other.c.get()); + break; + case types::write_replace_warning_resp: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + } } -SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::unpack(cbit_ref& bref) +ngap_elem_procs_o::successful_outcome_c& +ngap_elem_procs_o::successful_outcome_c::operator=(const ngap_elem_procs_o::successful_outcome_c& other) { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 10: - nof_mandatory_ies--; - amf_ue_ngap_id.id = c.id; - amf_ue_ngap_id.crit = c.crit; - amf_ue_ngap_id.value = c.value.amf_ue_ngap_id(); - break; - case 85: - nof_mandatory_ies--; - ran_ue_ngap_id.id = c.id; - ran_ue_ngap_id.crit = c.crit; - ran_ue_ngap_id.value = c.value.ran_ue_ngap_id(); - break; - case 89: - nof_mandatory_ies--; - routing_id.id = c.id; - routing_id.crit = c.crit; - routing_id.value = c.value.routing_id(); - break; - case 46: - nof_mandatory_ies--; - nrp_pa_pdu.id = c.id; - nrp_pa_pdu.crit = c.crit; - nrp_pa_pdu.value = c.value.nrp_pa_pdu(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } + if (this == &other) { + return *this; } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; + set(other.type()); + switch (type_) { + case types::amf_cfg_upd_ack: + c.set(other.c.get()); + break; + case types::ho_cancel_ack: + c.set(other.c.get()); + break; + case types::ho_cmd: + c.set(other.c.get()); + break; + case types::ho_request_ack: + c.set(other.c.get()); + break; + case types::init_context_setup_resp: + c.set(other.c.get()); + break; + case types::ng_reset_ack: + c.set(other.c.get()); + break; + case types::ng_setup_resp: + c.set(other.c.get()); + break; + case types::path_switch_request_ack: + c.set(other.c.get()); + break; + case types::pdu_session_res_modify_resp: + c.set(other.c.get()); + break; + case types::pdu_session_res_modify_confirm: + c.set(other.c.get()); + break; + case types::pdu_session_res_release_resp: + c.set(other.c.get()); + break; + case types::pdu_session_res_setup_resp: + c.set(other.c.get()); + break; + case types::pws_cancel_resp: + c.set(other.c.get()); + break; + case types::ran_cfg_upd_ack: + c.set(other.c.get()); + break; + case types::ue_context_mod_resp: + c.set(other.c.get()); + break; + case types::ue_context_release_complete: + c.set(other.c.get()); + break; + case types::ue_radio_cap_check_resp: + c.set(other.c.get()); + break; + case types::write_replace_warning_resp: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); } - return SRSASN_SUCCESS; -} -void ul_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname(""); - amf_ue_ngap_id.to_json(j); - j.write_fieldname(""); - ran_ue_ngap_id.to_json(j); - j.write_fieldname(""); - routing_id.to_json(j); - j.write_fieldname(""); - nrp_pa_pdu.to_json(j); - j.end_obj(); -} -// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + return *this; } -SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::unpack(cbit_ref& bref) +amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd_ack() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::amf_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); } -void ul_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const +ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel_ack() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ho_cancel_ack, type_, "SuccessfulOutcome"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -write_replace_warning_request_ies_container::write_replace_warning_request_ies_container() : - msg_id(35, crit_e::reject), - serial_num(95, crit_e::reject), - warning_area_list(122, crit_e::ignore), - repeat_period(87, crit_e::reject), - nof_broadcasts_requested(47, crit_e::reject), - warning_type(125, crit_e::ignore), - warning_security_info(124, crit_e::ignore), - data_coding_scheme(20, crit_e::ignore), - warning_msg_contents(123, crit_e::ignore), - concurrent_warning_msg_ind(17, crit_e::reject), - warning_area_coordinates(141, crit_e::ignore) -{} -SRSASN_CODE write_replace_warning_request_ies_container::pack(bit_ref& bref) const +ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_cmd() { - uint32_t nof_ies = 4; - nof_ies += warning_area_list_present ? 1 : 0; - nof_ies += warning_type_present ? 1 : 0; - nof_ies += warning_security_info_present ? 1 : 0; - nof_ies += data_coding_scheme_present ? 1 : 0; - nof_ies += warning_msg_contents_present ? 1 : 0; - nof_ies += concurrent_warning_msg_ind_present ? 1 : 0; - nof_ies += warning_area_coordinates_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - if (warning_area_list_present) { - HANDLE_CODE(warning_area_list.pack(bref)); - } - HANDLE_CODE(repeat_period.pack(bref)); - HANDLE_CODE(nof_broadcasts_requested.pack(bref)); - if (warning_type_present) { - HANDLE_CODE(warning_type.pack(bref)); - } - if (warning_security_info_present) { - HANDLE_CODE(warning_security_info.pack(bref)); - } - if (data_coding_scheme_present) { - HANDLE_CODE(data_coding_scheme.pack(bref)); - } - if (warning_msg_contents_present) { - HANDLE_CODE(warning_msg_contents.pack(bref)); - } - if (concurrent_warning_msg_ind_present) { - HANDLE_CODE(concurrent_warning_msg_ind.pack(bref)); - } - if (warning_area_coordinates_present) { - HANDLE_CODE(warning_area_coordinates.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::ho_cmd, type_, "SuccessfulOutcome"); + return c.get(); } -SRSASN_CODE write_replace_warning_request_ies_container::unpack(cbit_ref& bref) +ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request_ack() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 4; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 35: - nof_mandatory_ies--; - msg_id.id = c.id; - msg_id.crit = c.crit; - msg_id.value = c.value.msg_id(); - break; - case 95: - nof_mandatory_ies--; - serial_num.id = c.id; - serial_num.crit = c.crit; - serial_num.value = c.value.serial_num(); - break; - case 122: - warning_area_list_present = true; - warning_area_list.id = c.id; - warning_area_list.crit = c.crit; - warning_area_list.value = c.value.warning_area_list(); - break; - case 87: - nof_mandatory_ies--; - repeat_period.id = c.id; - repeat_period.crit = c.crit; - repeat_period.value = c.value.repeat_period(); - break; - case 47: - nof_mandatory_ies--; - nof_broadcasts_requested.id = c.id; - nof_broadcasts_requested.crit = c.crit; - nof_broadcasts_requested.value = c.value.nof_broadcasts_requested(); - break; - case 125: - warning_type_present = true; - warning_type.id = c.id; - warning_type.crit = c.crit; - warning_type.value = c.value.warning_type(); - break; - case 124: - warning_security_info_present = true; - warning_security_info.id = c.id; - warning_security_info.crit = c.crit; - warning_security_info.value = c.value.warning_security_info(); - break; - case 20: - data_coding_scheme_present = true; - data_coding_scheme.id = c.id; - data_coding_scheme.crit = c.crit; - data_coding_scheme.value = c.value.data_coding_scheme(); - break; - case 123: - warning_msg_contents_present = true; - warning_msg_contents.id = c.id; - warning_msg_contents.crit = c.crit; - warning_msg_contents.value = c.value.warning_msg_contents(); - break; - case 17: - concurrent_warning_msg_ind_present = true; - concurrent_warning_msg_ind.id = c.id; - concurrent_warning_msg_ind.crit = c.crit; - concurrent_warning_msg_ind.value = c.value.concurrent_warning_msg_ind(); - break; - case 141: - warning_area_coordinates_present = true; - warning_area_coordinates.id = c.id; - warning_area_coordinates.crit = c.crit; - warning_area_coordinates.value = c.value.warning_area_coordinates(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_resp() +{ + assert_choice_type(types::init_context_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); } -void write_replace_warning_request_ies_container::to_json(json_writer& j) const +ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset_ack() { - j.start_obj(); - j.write_fieldname(""); - msg_id.to_json(j); - j.write_fieldname(""); - serial_num.to_json(j); - if (warning_area_list_present) { - j.write_fieldname(""); - warning_area_list.to_json(j); - } - j.write_fieldname(""); - repeat_period.to_json(j); - j.write_fieldname(""); - nof_broadcasts_requested.to_json(j); - if (warning_type_present) { - j.write_fieldname(""); - warning_type.to_json(j); - } - if (warning_security_info_present) { - j.write_fieldname(""); - warning_security_info.to_json(j); - } - if (data_coding_scheme_present) { - j.write_fieldname(""); - data_coding_scheme.to_json(j); - } - if (warning_msg_contents_present) { - j.write_fieldname(""); - warning_msg_contents.to_json(j); - } - if (concurrent_warning_msg_ind_present) { - j.write_fieldname(""); - concurrent_warning_msg_ind.to_json(j); - } - if (warning_area_coordinates_present) { - j.write_fieldname(""); - warning_area_coordinates.to_json(j); - } - j.end_obj(); + assert_choice_type(types::ng_reset_ack, type_, "SuccessfulOutcome"); + return c.get(); } - -// WriteReplaceWarningRequest ::= SEQUENCE -SRSASN_CODE write_replace_warning_request_s::pack(bit_ref& bref) const +ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_resp() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ng_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); } -SRSASN_CODE write_replace_warning_request_s::unpack(cbit_ref& bref) +path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request_ack() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::path_switch_request_ack, type_, "SuccessfulOutcome"); + return c.get(); } -void write_replace_warning_request_s::to_json(json_writer& j) const +pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_resp() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::pdu_session_res_modify_resp, type_, "SuccessfulOutcome"); + return c.get(); } - -template struct asn1::ngap_nr::protocol_ie_field_s; - -write_replace_warning_resp_ies_container::write_replace_warning_resp_ies_container() : - msg_id(35, crit_e::reject), - serial_num(95, crit_e::reject), - broadcast_completed_area_list(13, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{} -SRSASN_CODE write_replace_warning_resp_ies_container::pack(bit_ref& bref) const +pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_confirm() { - uint32_t nof_ies = 2; - nof_ies += broadcast_completed_area_list_present ? 1 : 0; - nof_ies += crit_diagnostics_present ? 1 : 0; - pack_length(bref, nof_ies, 0u, 65535u, true); - - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - if (broadcast_completed_area_list_present) { - HANDLE_CODE(broadcast_completed_area_list.pack(bref)); - } - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_modify_confirm, type_, "SuccessfulOutcome"); + return c.get(); } -SRSASN_CODE write_replace_warning_resp_ies_container::unpack(cbit_ref& bref) +pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_resp() { - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 0u, 65535u, true); - - uint32_t nof_mandatory_ies = 2; - - for (; nof_ies > 0; --nof_ies) { - protocol_ie_field_s c; - HANDLE_CODE(c.unpack(bref)); - switch (c.id) { - case 35: - nof_mandatory_ies--; - msg_id.id = c.id; - msg_id.crit = c.crit; - msg_id.value = c.value.msg_id(); - break; - case 95: - nof_mandatory_ies--; - serial_num.id = c.id; - serial_num.crit = c.crit; - serial_num.value = c.value.serial_num(); - break; - case 13: - broadcast_completed_area_list_present = true; - broadcast_completed_area_list.id = c.id; - broadcast_completed_area_list.crit = c.crit; - broadcast_completed_area_list.value = c.value.broadcast_completed_area_list(); - break; - case 19: - crit_diagnostics_present = true; - crit_diagnostics.id = c.id; - crit_diagnostics.crit = c.crit; - crit_diagnostics.value = c.value.crit_diagnostics(); - break; - default: - asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - asn1::log_error("Mandatory fields are missing\n"); - - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + assert_choice_type(types::pdu_session_res_release_resp, type_, "SuccessfulOutcome"); + return c.get(); } -void write_replace_warning_resp_ies_container::to_json(json_writer& j) const +pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_resp() { - j.start_obj(); - j.write_fieldname(""); - msg_id.to_json(j); - j.write_fieldname(""); - serial_num.to_json(j); - if (broadcast_completed_area_list_present) { - j.write_fieldname(""); - broadcast_completed_area_list.to_json(j); - } - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); + assert_choice_type(types::pdu_session_res_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); } - -// WriteReplaceWarningResponse ::= SEQUENCE -SRSASN_CODE write_replace_warning_resp_s::pack(bit_ref& bref) const +pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_resp() { - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::pws_cancel_resp, type_, "SuccessfulOutcome"); + return c.get(); } -SRSASN_CODE write_replace_warning_resp_s::unpack(cbit_ref& bref) +ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd_ack() { - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; + assert_choice_type(types::ran_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); } -void write_replace_warning_resp_s::to_json(json_writer& j) const +ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() { - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); + assert_choice_type(types::ue_context_mod_resp, type_, "SuccessfulOutcome"); + return c.get(); } - -// NGAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE -uint16_t ngap_elem_procs_o::idx_to_proc_code(uint32_t idx) +ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_complete() { - static const uint16_t options[] = {0, 10, 12, 13, 14, 20, 21, 25, 26, 27, 28, 29, 32, 35, 40, 41, 43, 51, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 18, 16, 17, 19, 22, 23, 24, - 30, 31, 33, 34, 36, 37, 52, 38, 39, 42, 44, 45, 46, 47, 48, 49, 50}; - return map_enum_number(options, 53, idx, "proc_code"); + assert_choice_type(types::ue_context_release_complete, type_, "SuccessfulOutcome"); + return c.get(); } -bool ngap_elem_procs_o::is_proc_code_valid(const uint16_t& proc_code) +ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_resp() { - static const uint16_t options[] = {0, 10, 12, 13, 14, 20, 21, 25, 26, 27, 28, 29, 32, 35, 40, 41, 43, 51, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 18, 16, 17, 19, 22, 23, 24, - 30, 31, 33, 34, 36, 37, 52, 38, 39, 42, 44, 45, 46, 47, 48, 49, 50}; - for (const auto& o : options) { - if (o == proc_code) { - return true; - } - } - return false; + assert_choice_type(types::ue_radio_cap_check_resp, type_, "SuccessfulOutcome"); + return c.get(); } -ngap_elem_procs_o::init_msg_c ngap_elem_procs_o::get_init_msg(const uint16_t& proc_code) +write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() { - init_msg_c ret{}; - switch (proc_code) { - case 0: - ret.set(init_msg_c::types::amf_cfg_upd); + assert_choice_type(types::write_replace_warning_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd_ack() const +{ + assert_choice_type(types::amf_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel_ack() const +{ + assert_choice_type(types::ho_cancel_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_cmd() const +{ + assert_choice_type(types::ho_cmd, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request_ack() const +{ + assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_resp() const +{ + assert_choice_type(types::init_context_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset_ack() const +{ + assert_choice_type(types::ng_reset_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_resp() const +{ + assert_choice_type(types::ng_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request_ack() const +{ + assert_choice_type(types::path_switch_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_resp() const +{ + assert_choice_type(types::pdu_session_res_modify_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_confirm() const +{ + assert_choice_type(types::pdu_session_res_modify_confirm, type_, "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_resp() const +{ + assert_choice_type(types::pdu_session_res_release_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_resp() const +{ + assert_choice_type(types::pdu_session_res_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_resp() const +{ + assert_choice_type(types::pws_cancel_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd_ack() const +{ + assert_choice_type(types::ran_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() const +{ + assert_choice_type(types::ue_context_mod_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_complete() const +{ + assert_choice_type(types::ue_context_release_complete, type_, "SuccessfulOutcome"); + return c.get(); +} +const ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_resp() const +{ + assert_choice_type(types::ue_radio_cap_check_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() const +{ + assert_choice_type(types::write_replace_warning_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +void ngap_elem_procs_o::successful_outcome_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::amf_cfg_upd_ack: + j.write_fieldname("AMFConfigurationUpdateAcknowledge"); + c.get().to_json(j); break; - case 10: - ret.set(init_msg_c::types::ho_cancel); + case types::ho_cancel_ack: + j.write_fieldname("HandoverCancelAcknowledge"); + c.get().to_json(j); break; - case 12: - ret.set(init_msg_c::types::ho_required); + case types::ho_cmd: + j.write_fieldname("HandoverCommand"); + c.get().to_json(j); break; - case 13: - ret.set(init_msg_c::types::ho_request); + case types::ho_request_ack: + j.write_fieldname("HandoverRequestAcknowledge"); + c.get().to_json(j); break; - case 14: - ret.set(init_msg_c::types::init_context_setup_request); + case types::init_context_setup_resp: + j.write_fieldname("InitialContextSetupResponse"); + c.get().to_json(j); break; - case 20: - ret.set(init_msg_c::types::ng_reset); + case types::ng_reset_ack: + j.write_fieldname("NGResetAcknowledge"); + c.get().to_json(j); break; - case 21: - ret.set(init_msg_c::types::ng_setup_request); + case types::ng_setup_resp: + j.write_fieldname("NGSetupResponse"); + c.get().to_json(j); break; - case 25: - ret.set(init_msg_c::types::path_switch_request); + case types::path_switch_request_ack: + j.write_fieldname("PathSwitchRequestAcknowledge"); + c.get().to_json(j); break; - case 26: - ret.set(init_msg_c::types::pdu_session_res_modify_request); + case types::pdu_session_res_modify_resp: + j.write_fieldname("PDUSessionResourceModifyResponse"); + c.get().to_json(j); break; - case 27: - ret.set(init_msg_c::types::pdu_session_res_modify_ind); + case types::pdu_session_res_modify_confirm: + j.write_fieldname("PDUSessionResourceModifyConfirm"); + c.get().to_json(j); break; - case 28: - ret.set(init_msg_c::types::pdu_session_res_release_cmd); + case types::pdu_session_res_release_resp: + j.write_fieldname("PDUSessionResourceReleaseResponse"); + c.get().to_json(j); break; - case 29: - ret.set(init_msg_c::types::pdu_session_res_setup_request); + case types::pdu_session_res_setup_resp: + j.write_fieldname("PDUSessionResourceSetupResponse"); + c.get().to_json(j); break; - case 32: - ret.set(init_msg_c::types::pws_cancel_request); + case types::pws_cancel_resp: + j.write_fieldname("PWSCancelResponse"); + c.get().to_json(j); break; - case 35: - ret.set(init_msg_c::types::ran_cfg_upd); + case types::ran_cfg_upd_ack: + j.write_fieldname("RANConfigurationUpdateAcknowledge"); + c.get().to_json(j); break; - case 40: - ret.set(init_msg_c::types::ue_context_mod_request); + case types::ue_context_mod_resp: + j.write_fieldname("UEContextModificationResponse"); + c.get().to_json(j); break; - case 41: - ret.set(init_msg_c::types::ue_context_release_cmd); + case types::ue_context_release_complete: + j.write_fieldname("UEContextReleaseComplete"); + c.get().to_json(j); break; - case 43: - ret.set(init_msg_c::types::ue_radio_cap_check_request); + case types::ue_radio_cap_check_resp: + j.write_fieldname("UERadioCapabilityCheckResponse"); + c.get().to_json(j); break; - case 51: - ret.set(init_msg_c::types::write_replace_warning_request); + case types::write_replace_warning_resp: + j.write_fieldname("WriteReplaceWarningResponse"); + c.get().to_json(j); break; - case 1: - ret.set(init_msg_c::types::amf_status_ind); + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + } + j.end_obj(); +} +SRSASN_CODE ngap_elem_procs_o::successful_outcome_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 2: - ret.set(init_msg_c::types::cell_traffic_trace); + case types::ho_cancel_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 3: - ret.set(init_msg_c::types::deactiv_trace); + case types::ho_cmd: + HANDLE_CODE(c.get().pack(bref)); break; - case 4: - ret.set(init_msg_c::types::dl_nas_transport); + case types::ho_request_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 5: - ret.set(init_msg_c::types::dl_non_ueassociated_nrp_pa_transport); + case types::init_context_setup_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 6: - ret.set(init_msg_c::types::dl_ran_cfg_transfer); + case types::ng_reset_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 7: - ret.set(init_msg_c::types::dl_ran_status_transfer); + case types::ng_setup_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 8: - ret.set(init_msg_c::types::dl_ueassociated_nrp_pa_transport); + case types::path_switch_request_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 9: - ret.set(init_msg_c::types::error_ind); + case types::pdu_session_res_modify_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 11: - ret.set(init_msg_c::types::ho_notify); + case types::pdu_session_res_modify_confirm: + HANDLE_CODE(c.get().pack(bref)); break; - case 15: - ret.set(init_msg_c::types::init_ue_msg); + case types::pdu_session_res_release_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 18: - ret.set(init_msg_c::types::location_report); + case types::pdu_session_res_setup_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 16: - ret.set(init_msg_c::types::location_report_ctrl); + case types::pws_cancel_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 17: - ret.set(init_msg_c::types::location_report_fail_ind); + case types::ran_cfg_upd_ack: + HANDLE_CODE(c.get().pack(bref)); break; - case 19: - ret.set(init_msg_c::types::nas_non_delivery_ind); + case types::ue_context_mod_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 22: - ret.set(init_msg_c::types::overload_start); + case types::ue_context_release_complete: + HANDLE_CODE(c.get().pack(bref)); break; - case 23: - ret.set(init_msg_c::types::overload_stop); + case types::ue_radio_cap_check_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 24: - ret.set(init_msg_c::types::paging); + case types::write_replace_warning_resp: + HANDLE_CODE(c.get().pack(bref)); break; - case 30: - ret.set(init_msg_c::types::pdu_session_res_notify); + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE ngap_elem_procs_o::successful_outcome_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 31: - ret.set(init_msg_c::types::private_msg); + case types::ho_cancel_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 33: - ret.set(init_msg_c::types::pws_fail_ind); + case types::ho_cmd: + HANDLE_CODE(c.get().unpack(bref)); break; - case 34: - ret.set(init_msg_c::types::pws_restart_ind); + case types::ho_request_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 36: - ret.set(init_msg_c::types::reroute_nas_request); + case types::init_context_setup_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 37: - ret.set(init_msg_c::types::rrc_inactive_transition_report); + case types::ng_reset_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 52: - ret.set(init_msg_c::types::secondary_rat_data_usage_report); + case types::ng_setup_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 38: - ret.set(init_msg_c::types::trace_fail_ind); + case types::path_switch_request_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 39: - ret.set(init_msg_c::types::trace_start); + case types::pdu_session_res_modify_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 42: - ret.set(init_msg_c::types::ue_context_release_request); + case types::pdu_session_res_modify_confirm: + HANDLE_CODE(c.get().unpack(bref)); break; - case 44: - ret.set(init_msg_c::types::ue_radio_cap_info_ind); + case types::pdu_session_res_release_resp: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pdu_session_res_setup_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 45: - ret.set(init_msg_c::types::uetnla_binding_release_request); + case types::pws_cancel_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 46: - ret.set(init_msg_c::types::ul_nas_transport); + case types::ran_cfg_upd_ack: + HANDLE_CODE(c.get().unpack(bref)); break; - case 47: - ret.set(init_msg_c::types::ul_non_ueassociated_nrp_pa_transport); + case types::ue_context_mod_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 48: - ret.set(init_msg_c::types::ul_ran_cfg_transfer); + case types::ue_context_release_complete: + HANDLE_CODE(c.get().unpack(bref)); break; - case 49: - ret.set(init_msg_c::types::ul_ran_status_transfer); + case types::ue_radio_cap_check_resp: + HANDLE_CODE(c.get().unpack(bref)); break; - case 50: - ret.set(init_msg_c::types::ul_ueassociated_nrp_pa_transport); + case types::write_replace_warning_resp: + HANDLE_CODE(c.get().unpack(bref)); break; default: - asn1::log_error("The proc_code=%d is not recognized", proc_code); + log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return ret; + return SRSASN_SUCCESS; } -ngap_elem_procs_o::successful_outcome_c ngap_elem_procs_o::get_successful_outcome(const uint16_t& proc_code) + +const char* ngap_elem_procs_o::successful_outcome_c::types_opts::to_string() const { - successful_outcome_c ret{}; - switch (proc_code) { - case 0: - ret.set(successful_outcome_c::types::amf_cfg_upd_ack); + static const char* options[] = {"AMFConfigurationUpdateAcknowledge", + "HandoverCancelAcknowledge", + "HandoverCommand", + "HandoverRequestAcknowledge", + "InitialContextSetupResponse", + "NGResetAcknowledge", + "NGSetupResponse", + "PathSwitchRequestAcknowledge", + "PDUSessionResourceModifyResponse", + "PDUSessionResourceModifyConfirm", + "PDUSessionResourceReleaseResponse", + "PDUSessionResourceSetupResponse", + "PWSCancelResponse", + "RANConfigurationUpdateAcknowledge", + "UEContextModificationResponse", + "UEContextReleaseComplete", + "UERadioCapabilityCheckResponse", + "WriteReplaceWarningResponse"}; + return convert_enum_idx(options, 18, value, "ngap_elem_procs_o::successful_outcome_c::types"); +} + +// UnsuccessfulOutcome ::= OPEN TYPE +void ngap_elem_procs_o::unsuccessful_outcome_c::destroy_() +{ + switch (type_) { + case types::amf_cfg_upd_fail: + c.destroy(); break; - case 10: - ret.set(successful_outcome_c::types::ho_cancel_ack); + case types::ho_prep_fail: + c.destroy(); break; - case 12: - ret.set(successful_outcome_c::types::ho_cmd); + case types::ho_fail: + c.destroy(); break; - case 13: - ret.set(successful_outcome_c::types::ho_request_ack); + case types::init_context_setup_fail: + c.destroy(); break; - case 14: - ret.set(successful_outcome_c::types::init_context_setup_resp); + case types::ng_setup_fail: + c.destroy(); break; - case 20: - ret.set(successful_outcome_c::types::ng_reset_ack); + case types::path_switch_request_fail: + c.destroy(); break; - case 21: - ret.set(successful_outcome_c::types::ng_setup_resp); + case types::ran_cfg_upd_fail: + c.destroy(); break; - case 25: - ret.set(successful_outcome_c::types::path_switch_request_ack); + case types::ue_context_mod_fail: + c.destroy(); break; - case 26: - ret.set(successful_outcome_c::types::pdu_session_res_modify_resp); + default: break; - case 27: - ret.set(successful_outcome_c::types::pdu_session_res_modify_confirm); + } +} +void ngap_elem_procs_o::unsuccessful_outcome_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::amf_cfg_upd_fail: + c.init(); break; - case 28: - ret.set(successful_outcome_c::types::pdu_session_res_release_resp); + case types::ho_prep_fail: + c.init(); break; - case 29: - ret.set(successful_outcome_c::types::pdu_session_res_setup_resp); + case types::ho_fail: + c.init(); break; - case 32: - ret.set(successful_outcome_c::types::pws_cancel_resp); + case types::init_context_setup_fail: + c.init(); break; - case 35: - ret.set(successful_outcome_c::types::ran_cfg_upd_ack); + case types::ng_setup_fail: + c.init(); break; - case 40: - ret.set(successful_outcome_c::types::ue_context_mod_resp); + case types::path_switch_request_fail: + c.init(); break; - case 41: - ret.set(successful_outcome_c::types::ue_context_release_complete); + case types::ran_cfg_upd_fail: + c.init(); break; - case 43: - ret.set(successful_outcome_c::types::ue_radio_cap_check_resp); + case types::ue_context_mod_fail: + c.init(); break; - case 51: - ret.set(successful_outcome_c::types::write_replace_warning_resp); + case types::nulltype: break; default: - asn1::log_error("The proc_code=%d is not recognized", proc_code); + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); } - return ret; } -ngap_elem_procs_o::unsuccessful_outcome_c ngap_elem_procs_o::get_unsuccessful_outcome(const uint16_t& proc_code) +ngap_elem_procs_o::unsuccessful_outcome_c::unsuccessful_outcome_c( + const ngap_elem_procs_o::unsuccessful_outcome_c& other) { - unsuccessful_outcome_c ret{}; - switch (proc_code) { - case 0: - ret.set(unsuccessful_outcome_c::types::amf_cfg_upd_fail); + type_ = other.type(); + switch (type_) { + case types::amf_cfg_upd_fail: + c.init(other.c.get()); break; - case 12: - ret.set(unsuccessful_outcome_c::types::ho_prep_fail); + case types::ho_prep_fail: + c.init(other.c.get()); break; - case 13: - ret.set(unsuccessful_outcome_c::types::ho_fail); + case types::ho_fail: + c.init(other.c.get()); break; - case 14: - ret.set(unsuccessful_outcome_c::types::init_context_setup_fail); + case types::init_context_setup_fail: + c.init(other.c.get()); break; - case 21: - ret.set(unsuccessful_outcome_c::types::ng_setup_fail); + case types::ng_setup_fail: + c.init(other.c.get()); break; - case 25: - ret.set(unsuccessful_outcome_c::types::path_switch_request_fail); + case types::path_switch_request_fail: + c.init(other.c.get()); break; - case 35: - ret.set(unsuccessful_outcome_c::types::ran_cfg_upd_fail); + case types::ran_cfg_upd_fail: + c.init(other.c.get()); break; - case 40: - ret.set(unsuccessful_outcome_c::types::ue_context_mod_fail); + case types::ue_context_mod_fail: + c.init(other.c.get()); + break; + case types::nulltype: break; default: - asn1::log_error("The proc_code=%d is not recognized", proc_code); + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); } - return ret; } -crit_e ngap_elem_procs_o::get_crit(const uint16_t& proc_code) +ngap_elem_procs_o::unsuccessful_outcome_c& +ngap_elem_procs_o::unsuccessful_outcome_c::operator=(const ngap_elem_procs_o::unsuccessful_outcome_c& other) { - switch (proc_code) { - case 0: - return crit_e::reject; - case 10: - return crit_e::reject; - case 12: - return crit_e::reject; - case 13: - return crit_e::reject; - case 14: - return crit_e::reject; - case 20: - return crit_e::reject; - case 21: - return crit_e::reject; - case 25: - return crit_e::reject; - case 26: - return crit_e::reject; - case 27: - return crit_e::reject; - case 28: - return crit_e::reject; - case 29: - return crit_e::reject; - case 32: - return crit_e::reject; - case 35: - return crit_e::reject; - case 40: - return crit_e::reject; - case 41: - return crit_e::reject; - case 43: - return crit_e::reject; - case 51: - return crit_e::reject; - case 1: - return crit_e::ignore; - case 2: - return crit_e::ignore; - case 3: - return crit_e::ignore; - case 4: - return crit_e::ignore; - case 5: - return crit_e::ignore; - case 6: - return crit_e::ignore; - case 7: - return crit_e::ignore; - case 8: - return crit_e::ignore; - case 9: - return crit_e::ignore; - case 11: - return crit_e::ignore; - case 15: - return crit_e::ignore; - case 18: - return crit_e::ignore; - case 16: - return crit_e::ignore; - case 17: - return crit_e::ignore; - case 19: - return crit_e::ignore; - case 22: - return crit_e::ignore; - case 23: - return crit_e::reject; - case 24: - return crit_e::ignore; - case 30: - return crit_e::ignore; - case 31: - return crit_e::ignore; - case 33: - return crit_e::ignore; - case 34: - return crit_e::ignore; - case 36: - return crit_e::reject; - case 37: - return crit_e::ignore; - case 52: - return crit_e::ignore; - case 38: - return crit_e::ignore; - case 39: - return crit_e::ignore; - case 42: - return crit_e::ignore; - case 44: - return crit_e::ignore; - case 45: - return crit_e::ignore; - case 46: - return crit_e::ignore; - case 47: - return crit_e::ignore; - case 48: - return crit_e::ignore; - case 49: - return crit_e::ignore; - case 50: - return crit_e::ignore; + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::amf_cfg_upd_fail: + c.set(other.c.get()); + break; + case types::ho_prep_fail: + c.set(other.c.get()); + break; + case types::ho_fail: + c.set(other.c.get()); + break; + case types::init_context_setup_fail: + c.set(other.c.get()); + break; + case types::ng_setup_fail: + c.set(other.c.get()); + break; + case types::path_switch_request_fail: + c.set(other.c.get()); + break; + case types::ran_cfg_upd_fail: + c.set(other.c.get()); + break; + case types::ue_context_mod_fail: + c.set(other.c.get()); + break; + case types::nulltype: + break; default: - asn1::log_error("The proc_code=%d is not recognized", proc_code); + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); } - return {}; -} -// InitiatingMessage ::= OPEN TYPE -amf_cfg_upd_s& ngap_elem_procs_o::init_msg_c::amf_cfg_upd() -{ - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_cancel_s& ngap_elem_procs_o::init_msg_c::ho_cancel() -{ - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_required_s& ngap_elem_procs_o::init_msg_c::ho_required() -{ - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_request_s& ngap_elem_procs_o::init_msg_c::ho_request() -{ - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -init_context_setup_request_s& ngap_elem_procs_o::init_msg_c::init_context_setup_request() -{ - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ng_reset_s& ngap_elem_procs_o::init_msg_c::ng_reset() -{ - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); + return *this; } -ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() +amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd_fail() { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::amf_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() +ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() +ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_fail() { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ho_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() +init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::init_context_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() +ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_fail() { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ng_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() +path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::path_switch_request_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() +ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd_fail() { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ran_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() +ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ue_context_mod_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -ue_context_mod_request_s& ngap_elem_procs_o::init_msg_c::ue_context_mod_request() +const amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd_fail() const { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::amf_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -ue_context_release_cmd_s& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() +const ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() const { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() +const ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_fail() const { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ho_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() +const init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() const { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::init_context_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() +const ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_fail() const { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ng_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() +const path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() const { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::path_switch_request_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() +const ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd_fail() const { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ran_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() +const ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() const { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + assert_choice_type(types::ue_context_mod_fail, type_, "UnsuccessfulOutcome"); + return c.get(); } -dl_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() +void ngap_elem_procs_o::unsuccessful_outcome_c::to_json(json_writer& j) const { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + switch (type_) { + case types::amf_cfg_upd_fail: + j.write_fieldname("AMFConfigurationUpdateFailure"); + c.get().to_json(j); + break; + case types::ho_prep_fail: + j.write_fieldname("HandoverPreparationFailure"); + c.get().to_json(j); + break; + case types::ho_fail: + j.write_fieldname("HandoverFailure"); + c.get().to_json(j); + break; + case types::init_context_setup_fail: + j.write_fieldname("InitialContextSetupFailure"); + c.get().to_json(j); + break; + case types::ng_setup_fail: + j.write_fieldname("NGSetupFailure"); + c.get().to_json(j); + break; + case types::path_switch_request_fail: + j.write_fieldname("PathSwitchRequestFailure"); + c.get().to_json(j); + break; + case types::ran_cfg_upd_fail: + j.write_fieldname("RANConfigurationUpdateFailure"); + c.get().to_json(j); + break; + case types::ue_context_mod_fail: + j.write_fieldname("UEContextModificationFailure"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + } + j.end_obj(); } -dl_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_cfg_transfer() +SRSASN_CODE ngap_elem_procs_o::unsuccessful_outcome_c::pack(bit_ref& bref) const { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_prep_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ho_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::init_context_setup_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ng_setup_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::path_switch_request_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ran_cfg_upd_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_context_mod_fail: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -dl_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_status_transfer() +SRSASN_CODE ngap_elem_procs_o::unsuccessful_outcome_c::unpack(cbit_ref& bref) { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::amf_cfg_upd_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_prep_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ho_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::init_context_setup_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ng_setup_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::path_switch_request_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ran_cfg_upd_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::ue_context_mod_fail: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_ueassociated_nrp_pa_transport() + +const char* ngap_elem_procs_o::unsuccessful_outcome_c::types_opts::to_string() const { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const char* options[] = {"AMFConfigurationUpdateFailure", + "HandoverPreparationFailure", + "HandoverFailure", + "InitialContextSetupFailure", + "NGSetupFailure", + "PathSwitchRequestFailure", + "RANConfigurationUpdateFailure", + "UEContextModificationFailure"}; + return convert_enum_idx(options, 8, value, "ngap_elem_procs_o::unsuccessful_outcome_c::types"); } -error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() + +// InitiatingMessage ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +SRSASN_CODE init_msg_s::pack(bit_ref& bref) const { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); + warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); + HANDLE_CODE(crit.pack(bref)); + HANDLE_CODE(value.pack(bref)); + + return SRSASN_SUCCESS; } -ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() +SRSASN_CODE init_msg_s::unpack(cbit_ref& bref) { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(crit.unpack(bref)); + value = ngap_elem_procs_o::get_init_msg(proc_code); + HANDLE_CODE(value.unpack(bref)); + + return SRSASN_SUCCESS; } -init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() +void init_msg_s::to_json(json_writer& j) const { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("procedureCode", proc_code); + j.write_str("criticality", crit.to_string()); + j.write_fieldname("value"); + value.to_json(j); + j.end_obj(); } -location_report_s& ngap_elem_procs_o::init_msg_c::location_report() +bool init_msg_s::load_info_obj(const uint16_t& proc_code_) { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { + return false; + } + proc_code = proc_code_; + crit = ngap_elem_procs_o::get_crit(proc_code); + value = ngap_elem_procs_o::get_init_msg(proc_code); + return value.type().value != ngap_elem_procs_o::init_msg_c::types_opts::nulltype; } -location_report_ctrl_s& ngap_elem_procs_o::init_msg_c::location_report_ctrl() + +// LastVisitedNGRANCellInformation ::= SEQUENCE +SRSASN_CODE last_visited_ngran_cell_info_s::pack(bit_ref& bref) const { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(time_ue_stayed_in_cell_enhanced_granularity_present, 1)); + HANDLE_CODE(bref.pack(hocause_value_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(global_cell_id.pack(bref)); + HANDLE_CODE(cell_type.pack(bref)); + HANDLE_CODE(pack_integer(bref, time_ue_stayed_in_cell, (uint16_t)0u, (uint16_t)4095u, false, true)); + if (time_ue_stayed_in_cell_enhanced_granularity_present) { + HANDLE_CODE( + pack_integer(bref, time_ue_stayed_in_cell_enhanced_granularity, (uint16_t)0u, (uint16_t)40950u, false, true)); + } + if (hocause_value_present) { + HANDLE_CODE(hocause_value.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -location_report_fail_ind_s& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() +SRSASN_CODE last_visited_ngran_cell_info_s::unpack(cbit_ref& bref) { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(time_ue_stayed_in_cell_enhanced_granularity_present, 1)); + HANDLE_CODE(bref.unpack(hocause_value_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(global_cell_id.unpack(bref)); + HANDLE_CODE(cell_type.unpack(bref)); + HANDLE_CODE(unpack_integer(time_ue_stayed_in_cell, bref, (uint16_t)0u, (uint16_t)4095u, false, true)); + if (time_ue_stayed_in_cell_enhanced_granularity_present) { + HANDLE_CODE( + unpack_integer(time_ue_stayed_in_cell_enhanced_granularity, bref, (uint16_t)0u, (uint16_t)40950u, false, true)); + } + if (hocause_value_present) { + HANDLE_CODE(hocause_value.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -nas_non_delivery_ind_s& ngap_elem_procs_o::init_msg_c::nas_non_delivery_ind() +void last_visited_ngran_cell_info_s::to_json(json_writer& j) const { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_fieldname("globalCellID"); + global_cell_id.to_json(j); + j.write_fieldname("cellType"); + cell_type.to_json(j); + j.write_int("timeUEStayedInCell", time_ue_stayed_in_cell); + if (time_ue_stayed_in_cell_enhanced_granularity_present) { + j.write_int("timeUEStayedInCellEnhancedGranularity", time_ue_stayed_in_cell_enhanced_granularity); + } + if (hocause_value_present) { + j.write_fieldname("hOCauseValue"); + hocause_value.to_json(j); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() + +// LastVisitedCellInformation ::= CHOICE +void last_visited_cell_info_c::destroy_() { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); + switch (type_) { + case types::ngran_cell: + c.destroy(); + break; + case types::eutran_cell: + c.destroy >(); + break; + case types::utran_cell: + c.destroy >(); + break; + case types::geran_cell: + c.destroy >(); + break; + case types::choice_exts: + c.destroy >(); + break; + default: + break; + } } -overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() +void last_visited_cell_info_c::set(types::options e) { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); + destroy_(); + type_ = e; + switch (type_) { + case types::ngran_cell: + c.init(); + break; + case types::eutran_cell: + c.init >(); + break; + case types::utran_cell: + c.init >(); + break; + case types::geran_cell: + c.init >(); + break; + case types::choice_exts: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + } } -paging_s& ngap_elem_procs_o::init_msg_c::paging() +last_visited_cell_info_c::last_visited_cell_info_c(const last_visited_cell_info_c& other) { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); + type_ = other.type(); + switch (type_) { + case types::ngran_cell: + c.init(other.c.get()); + break; + case types::eutran_cell: + c.init(other.c.get >()); + break; + case types::utran_cell: + c.init(other.c.get >()); + break; + case types::geran_cell: + c.init(other.c.get >()); + break; + case types::choice_exts: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + } } -pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() +last_visited_cell_info_c& last_visited_cell_info_c::operator=(const last_visited_cell_info_c& other) { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::ngran_cell: + c.set(other.c.get()); + break; + case types::eutran_cell: + c.set(other.c.get >()); + break; + case types::utran_cell: + c.set(other.c.get >()); + break; + case types::geran_cell: + c.set(other.c.get >()); + break; + case types::choice_exts: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + } + + return *this; } -private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() +last_visited_ngran_cell_info_s& last_visited_cell_info_c::set_ngran_cell() { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::ngran_cell); + return c.get(); } -pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() +unbounded_octstring& last_visited_cell_info_c::set_eutran_cell() { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::eutran_cell); + return c.get >(); } -pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() +unbounded_octstring& last_visited_cell_info_c::set_utran_cell() { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::utran_cell); + return c.get >(); } -reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() +unbounded_octstring& last_visited_cell_info_c::set_geran_cell() { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::geran_cell); + return c.get >(); } -rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() +protocol_ie_single_container_s& last_visited_cell_info_c::set_choice_exts() { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::choice_exts); + return c.get >(); } -secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() +void last_visited_cell_info_c::to_json(json_writer& j) const { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + switch (type_) { + case types::ngran_cell: + j.write_fieldname("nGRANCell"); + c.get().to_json(j); + break; + case types::eutran_cell: + j.write_str("eUTRANCell", c.get >().to_string()); + break; + case types::utran_cell: + j.write_str("uTRANCell", c.get >().to_string()); + break; + case types::geran_cell: + j.write_str("gERANCell", c.get >().to_string()); + break; + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + } + j.end_obj(); } -trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() +SRSASN_CODE last_visited_cell_info_c::pack(bit_ref& bref) const { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + type_.pack(bref); + switch (type_) { + case types::ngran_cell: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::eutran_cell: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::utran_cell: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::geran_cell: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() +SRSASN_CODE last_visited_cell_info_c::unpack(cbit_ref& bref) { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::ngran_cell: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::eutran_cell: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::utran_cell: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::geran_cell: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "last_visited_cell_info_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() + +const char* last_visited_cell_info_c::types_opts::to_string() const { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const char* options[] = {"nGRANCell", "eUTRANCell", "uTRANCell", "gERANCell", "choice-Extensions"}; + return convert_enum_idx(options, 5, value, "last_visited_cell_info_c::types"); } -ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() + +// LastVisitedCellItem ::= SEQUENCE +SRSASN_CODE last_visited_cell_item_s::pack(bit_ref& bref) const { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(last_visited_cell_info.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() +SRSASN_CODE last_visited_cell_item_s::unpack(cbit_ref& bref) { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(last_visited_cell_info.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() +void last_visited_cell_item_s::to_json(json_writer& j) const { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_fieldname("lastVisitedCellInformation"); + last_visited_cell_info.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -ul_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() + +// SuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +SRSASN_CODE successful_outcome_s::pack(bit_ref& bref) const { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); + warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); + HANDLE_CODE(crit.pack(bref)); + HANDLE_CODE(value.pack(bref)); + + return SRSASN_SUCCESS; } -ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() +SRSASN_CODE successful_outcome_s::unpack(cbit_ref& bref) { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(crit.unpack(bref)); + value = ngap_elem_procs_o::get_successful_outcome(proc_code); + HANDLE_CODE(value.unpack(bref)); + + return SRSASN_SUCCESS; } -ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() +void successful_outcome_s::to_json(json_writer& j) const { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("procedureCode", proc_code); + j.write_str("criticality", crit.to_string()); + j.write_fieldname("value"); + value.to_json(j); + j.end_obj(); } -ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() +bool successful_outcome_s::load_info_obj(const uint16_t& proc_code_) { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { + return false; + } + proc_code = proc_code_; + crit = ngap_elem_procs_o::get_crit(proc_code); + value = ngap_elem_procs_o::get_successful_outcome(proc_code); + return value.type().value != ngap_elem_procs_o::successful_outcome_c::types_opts::nulltype; } -const amf_cfg_upd_s& ngap_elem_procs_o::init_msg_c::amf_cfg_upd() const + +// UnsuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} +SRSASN_CODE unsuccessful_outcome_s::pack(bit_ref& bref) const { - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); + warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); + HANDLE_CODE(crit.pack(bref)); + HANDLE_CODE(value.pack(bref)); + + return SRSASN_SUCCESS; } -const ho_cancel_s& ngap_elem_procs_o::init_msg_c::ho_cancel() const +SRSASN_CODE unsuccessful_outcome_s::unpack(cbit_ref& bref) { - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); + HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(crit.unpack(bref)); + value = ngap_elem_procs_o::get_unsuccessful_outcome(proc_code); + HANDLE_CODE(value.unpack(bref)); + + return SRSASN_SUCCESS; } -const ho_required_s& ngap_elem_procs_o::init_msg_c::ho_required() const +void unsuccessful_outcome_s::to_json(json_writer& j) const { - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("procedureCode", proc_code); + j.write_str("criticality", crit.to_string()); + j.write_fieldname("value"); + value.to_json(j); + j.end_obj(); } -const ho_request_s& ngap_elem_procs_o::init_msg_c::ho_request() const +bool unsuccessful_outcome_s::load_info_obj(const uint16_t& proc_code_) { - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { + return false; + } + proc_code = proc_code_; + crit = ngap_elem_procs_o::get_crit(proc_code); + value = ngap_elem_procs_o::get_unsuccessful_outcome(proc_code); + return value.type().value != ngap_elem_procs_o::unsuccessful_outcome_c::types_opts::nulltype; } -const init_context_setup_request_s& ngap_elem_procs_o::init_msg_c::init_context_setup_request() const + +// NGAP-PDU ::= CHOICE +void ngap_pdu_c::destroy_() { - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + switch (type_) { + case types::init_msg: + c.destroy(); + break; + case types::successful_outcome: + c.destroy(); + break; + case types::unsuccessful_outcome: + c.destroy(); + break; + default: + break; + } } -const ng_reset_s& ngap_elem_procs_o::init_msg_c::ng_reset() const +void ngap_pdu_c::set(types::options e) { - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); + destroy_(); + type_ = e; + switch (type_) { + case types::init_msg: + c.init(); + break; + case types::successful_outcome: + c.init(); + break; + case types::unsuccessful_outcome: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + } } -const ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() const +ngap_pdu_c::ngap_pdu_c(const ngap_pdu_c& other) { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + type_ = other.type(); + switch (type_) { + case types::init_msg: + c.init(other.c.get()); + break; + case types::successful_outcome: + c.init(other.c.get()); + break; + case types::unsuccessful_outcome: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + } } -const path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() const +ngap_pdu_c& ngap_pdu_c::operator=(const ngap_pdu_c& other) { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::init_msg: + c.set(other.c.get()); + break; + case types::successful_outcome: + c.set(other.c.get()); + break; + case types::unsuccessful_outcome: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + } + + return *this; } -const pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() const +init_msg_s& ngap_pdu_c::set_init_msg() { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::init_msg); + return c.get(); } -const pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() const +successful_outcome_s& ngap_pdu_c::set_successful_outcome() { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::successful_outcome); + return c.get(); } -const pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() const +unsuccessful_outcome_s& ngap_pdu_c::set_unsuccessful_outcome() { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); + set(types::unsuccessful_outcome); + return c.get(); } -const pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() const +void ngap_pdu_c::to_json(json_writer& j) const { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + switch (type_) { + case types::init_msg: + j.write_fieldname("initiatingMessage"); + c.get().to_json(j); + break; + case types::successful_outcome: + j.write_fieldname("successfulOutcome"); + c.get().to_json(j); + break; + case types::unsuccessful_outcome: + j.write_fieldname("unsuccessfulOutcome"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + } + j.end_obj(); } -const pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() const +SRSASN_CODE ngap_pdu_c::pack(bit_ref& bref) const { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + type_.pack(bref); + switch (type_) { + case types::init_msg: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::successful_outcome: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::unsuccessful_outcome: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -const ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() const +SRSASN_CODE ngap_pdu_c::unpack(cbit_ref& bref) { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::init_msg: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::successful_outcome: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::unsuccessful_outcome: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "ngap_pdu_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -const ue_context_mod_request_s& ngap_elem_procs_o::init_msg_c::ue_context_mod_request() const + +const char* ngap_pdu_c::types_opts::to_string() const { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const char* options[] = {"initiatingMessage", "successfulOutcome", "unsuccessfulOutcome"}; + return convert_enum_idx(options, 3, value, "ngap_pdu_c::types"); } -const ue_context_release_cmd_s& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() const + +// NonDynamic5QIDescriptor ::= SEQUENCE +SRSASN_CODE non_dynamic5_qi_descriptor_s::pack(bit_ref& bref) const { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(prio_level_qos_present, 1)); + HANDLE_CODE(bref.pack(averaging_win_present, 1)); + HANDLE_CODE(bref.pack(maximum_data_burst_volume_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, five_qi, (uint16_t)0u, (uint16_t)255u, true, true)); + if (prio_level_qos_present) { + HANDLE_CODE(pack_integer(bref, prio_level_qos, (uint8_t)1u, (uint8_t)127u, true, true)); + } + if (averaging_win_present) { + HANDLE_CODE(pack_integer(bref, averaging_win, (uint16_t)0u, (uint16_t)4095u, true, true)); + } + if (maximum_data_burst_volume_present) { + HANDLE_CODE(pack_integer(bref, maximum_data_burst_volume, (uint16_t)0u, (uint16_t)4095u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() const +SRSASN_CODE non_dynamic5_qi_descriptor_s::unpack(cbit_ref& bref) { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(prio_level_qos_present, 1)); + HANDLE_CODE(bref.unpack(averaging_win_present, 1)); + HANDLE_CODE(bref.unpack(maximum_data_burst_volume_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(five_qi, bref, (uint16_t)0u, (uint16_t)255u, true, true)); + if (prio_level_qos_present) { + HANDLE_CODE(unpack_integer(prio_level_qos, bref, (uint8_t)1u, (uint8_t)127u, true, true)); + } + if (averaging_win_present) { + HANDLE_CODE(unpack_integer(averaging_win, bref, (uint16_t)0u, (uint16_t)4095u, true, true)); + } + if (maximum_data_burst_volume_present) { + HANDLE_CODE(unpack_integer(maximum_data_burst_volume, bref, (uint16_t)0u, (uint16_t)4095u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() const +void non_dynamic5_qi_descriptor_s::to_json(json_writer& j) const { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("fiveQI", five_qi); + if (prio_level_qos_present) { + j.write_int("priorityLevelQos", prio_level_qos); + } + if (averaging_win_present) { + j.write_int("averagingWindow", averaging_win); + } + if (maximum_data_burst_volume_present) { + j.write_int("maximumDataBurstVolume", maximum_data_burst_volume); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() const + +// PDUSessionAggregateMaximumBitRate ::= SEQUENCE +SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::pack(bit_ref& bref) const { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer( + bref, pdu_session_aggregate_maximum_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(pack_integer( + bref, pdu_session_aggregate_maximum_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() const +SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::unpack(cbit_ref& bref) { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer( + pdu_session_aggregate_maximum_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(unpack_integer( + pdu_session_aggregate_maximum_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() const +void pdu_session_aggregate_maximum_bit_rate_s::to_json(json_writer& j) const { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("pDUSessionAggregateMaximumBitRateDL", pdu_session_aggregate_maximum_bit_rate_dl); + j.write_int("pDUSessionAggregateMaximumBitRateUL", pdu_session_aggregate_maximum_bit_rate_ul); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() const + +// QosFlowInformationItem ::= SEQUENCE +SRSASN_CODE qos_flow_info_item_s::pack(bit_ref& bref) const { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(dlforwarding_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (dlforwarding_present) { + HANDLE_CODE(dlforwarding.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const dl_non_ueassociated_nrp_pa_transport_s& -ngap_elem_procs_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() const +SRSASN_CODE qos_flow_info_item_s::unpack(cbit_ref& bref) { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(dlforwarding_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (dlforwarding_present) { + HANDLE_CODE(dlforwarding.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const dl_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_cfg_transfer() const +void qos_flow_info_item_s::to_json(json_writer& j) const { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (dlforwarding_present) { + j.write_str("dLForwarding", "dl-forwarding-proposed"); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const dl_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_status_transfer() const + +// PDUSessionResourceInformationItem ::= SEQUENCE +SRSASN_CODE pdu_session_res_info_item_s::pack(bit_ref& bref) const { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(drbs_to_qos_flows_map_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_info_list, 1, 64, true)); + if (drbs_to_qos_flows_map_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, drbs_to_qos_flows_map_list, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_ueassociated_nrp_pa_transport() const +SRSASN_CODE pdu_session_res_info_item_s::unpack(cbit_ref& bref) { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(drbs_to_qos_flows_map_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_info_list, bref, 1, 64, true)); + if (drbs_to_qos_flows_map_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(drbs_to_qos_flows_map_list, bref, 1, 32, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() const +void pdu_session_res_info_item_s::to_json(json_writer& j) const { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("pDUSessionID", pdu_session_id); + j.start_array("qosFlowInformationList"); + for (const auto& e1 : qos_flow_info_list) { + e1.to_json(j); + } + j.end_array(); + if (drbs_to_qos_flows_map_list_present) { + j.start_array("dRBsToQosFlowsMappingList"); + for (const auto& e1 : drbs_to_qos_flows_map_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() const + +// QosFlowModifyConfirmItem ::= SEQUENCE +SRSASN_CODE qos_flow_modify_confirm_item_s::pack(bit_ref& bref) const { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() const +SRSASN_CODE qos_flow_modify_confirm_item_s::unpack(cbit_ref& bref) { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const location_report_s& ngap_elem_procs_o::init_msg_c::location_report() const +void qos_flow_modify_confirm_item_s::to_json(json_writer& j) const { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const location_report_ctrl_s& ngap_elem_procs_o::init_msg_c::location_report_ctrl() const + +// UPTransportLayerInformationPairItem ::= SEQUENCE +SRSASN_CODE up_transport_layer_info_pair_item_s::pack(bit_ref& bref) const { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); + HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const location_report_fail_ind_s& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() const +SRSASN_CODE up_transport_layer_info_pair_item_s::unpack(cbit_ref& bref) { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); + HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const nas_non_delivery_ind_s& ngap_elem_procs_o::init_msg_c::nas_non_delivery_ind() const +void up_transport_layer_info_pair_item_s::to_json(json_writer& j) const { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_fieldname("uL-NGU-UP-TNLInformation"); + ul_ngu_up_tnl_info.to_json(j); + j.write_fieldname("dL-NGU-UP-TNLInformation"); + dl_ngu_up_tnl_info.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() const + +// PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::pack(bit_ref& bref) const { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(add_ng_uuptnl_info_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_modify_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_modify_confirm_list, 1, 64, true)); + HANDLE_CODE(ulngu_up_tnl_info.pack(bref)); + if (add_ng_uuptnl_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, add_ng_uuptnl_info, 1, 3, true)); + } + if (qos_flow_failed_to_modify_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_modify_list, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() const +SRSASN_CODE pdu_session_res_modify_confirm_transfer_s::unpack(cbit_ref& bref) { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(add_ng_uuptnl_info_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_failed_to_modify_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_modify_confirm_list, bref, 1, 64, true)); + HANDLE_CODE(ulngu_up_tnl_info.unpack(bref)); + if (add_ng_uuptnl_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(add_ng_uuptnl_info, bref, 1, 3, true)); + } + if (qos_flow_failed_to_modify_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_modify_list, bref, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const paging_s& ngap_elem_procs_o::init_msg_c::paging() const +void pdu_session_res_modify_confirm_transfer_s::to_json(json_writer& j) const { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.start_array("qosFlowModifyConfirmList"); + for (const auto& e1 : qos_flow_modify_confirm_list) { + e1.to_json(j); + } + j.end_array(); + j.write_fieldname("uLNGU-UP-TNLInformation"); + ulngu_up_tnl_info.to_json(j); + if (add_ng_uuptnl_info_present) { + j.start_array("additionalNG-UUPTNLInformation"); + for (const auto& e1 : add_ng_uuptnl_info) { + e1.to_json(j); + } + j.end_array(); + } + if (qos_flow_failed_to_modify_list_present) { + j.start_array("qosFlowFailedToModifyList"); + for (const auto& e1 : qos_flow_failed_to_modify_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() const + +// VolumeTimedReport-Item ::= SEQUENCE +SRSASN_CODE volume_timed_report_item_s::pack(bit_ref& bref) const { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(start_time_stamp.pack(bref)); + HANDLE_CODE(end_time_stamp.pack(bref)); + HANDLE_CODE(pack_integer(bref, usage_count_ul, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + HANDLE_CODE(pack_integer(bref, usage_count_dl, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() const +SRSASN_CODE volume_timed_report_item_s::unpack(cbit_ref& bref) { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(start_time_stamp.unpack(bref)); + HANDLE_CODE(end_time_stamp.unpack(bref)); + HANDLE_CODE(unpack_integer(usage_count_ul, bref, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + HANDLE_CODE(unpack_integer(usage_count_dl, bref, (uint64_t)0u, (uint64_t)18446744073709551615u, false, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() const +void volume_timed_report_item_s::to_json(json_writer& j) const { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_str("startTimeStamp", start_time_stamp.to_string()); + j.write_str("endTimeStamp", end_time_stamp.to_string()); + j.write_int("usageCountUL", usage_count_ul); + j.write_int("usageCountDL", usage_count_dl); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() const + +// QoSFlowsUsageReport-Item ::= SEQUENCE +SRSASN_CODE qo_sflows_usage_report_item_s::pack(bit_ref& bref) const { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(rat_type.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, qo_sflows_timed_report_list, 1, 2, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() const +SRSASN_CODE qo_sflows_usage_report_item_s::unpack(cbit_ref& bref) { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(rat_type.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(qo_sflows_timed_report_list, bref, 1, 2, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() const +void qo_sflows_usage_report_item_s::to_json(json_writer& j) const { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_str("rATType", rat_type.to_string()); + j.start_array("qoSFlowsTimedReportList"); + for (const auto& e1 : qo_sflows_timed_report_list) { + e1.to_json(j); + } + j.end_array(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() const + +const char* qo_sflows_usage_report_item_s::rat_type_opts::to_string() const { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const char* options[] = {"nr", "eutra"}; + return convert_enum_idx(options, 2, value, "qo_sflows_usage_report_item_s::rat_type_e_"); } -const trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() const + +// PDUSessionUsageReport ::= SEQUENCE +SRSASN_CODE pdu_session_usage_report_s::pack(bit_ref& bref) const { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(rat_type.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, pdu_session_timed_report_list, 1, 2, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() const +SRSASN_CODE pdu_session_usage_report_s::unpack(cbit_ref& bref) { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(rat_type.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(pdu_session_timed_report_list, bref, 1, 2, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() const +void pdu_session_usage_report_s::to_json(json_writer& j) const { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + j.write_str("rATType", rat_type.to_string()); + j.start_array("pDUSessionTimedReportList"); + for (const auto& e1 : pdu_session_timed_report_list) { + e1.to_json(j); + } + j.end_array(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() const + +const char* pdu_session_usage_report_s::rat_type_opts::to_string() const { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const char* options[] = {"nr", "eutra"}; + return convert_enum_idx(options, 2, value, "pdu_session_usage_report_s::rat_type_e_"); } -const uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() const + +// SecondaryRATUsageInformation ::= SEQUENCE +SRSASN_CODE secondary_ratusage_info_s::pack(bit_ref& bref) const { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(pdu_session_usage_report_present, 1)); + HANDLE_CODE(bref.pack(qos_flows_usage_report_list_present, 1)); + HANDLE_CODE(bref.pack(ie_ext_present, 1)); + + if (pdu_session_usage_report_present) { + HANDLE_CODE(pdu_session_usage_report.pack(bref)); + } + if (qos_flows_usage_report_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flows_usage_report_list, 1, 64, true)); + } + if (ie_ext_present) { + HANDLE_CODE(ie_ext.pack(bref)); + } + + return SRSASN_SUCCESS; } -const ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() const +SRSASN_CODE secondary_ratusage_info_s::unpack(cbit_ref& bref) { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(pdu_session_usage_report_present, 1)); + HANDLE_CODE(bref.unpack(qos_flows_usage_report_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_ext_present, 1)); + + if (pdu_session_usage_report_present) { + HANDLE_CODE(pdu_session_usage_report.unpack(bref)); + } + if (qos_flows_usage_report_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flows_usage_report_list, bref, 1, 64, true)); + } + if (ie_ext_present) { + HANDLE_CODE(ie_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const ul_non_ueassociated_nrp_pa_transport_s& -ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() const +void secondary_ratusage_info_s::to_json(json_writer& j) const { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + j.start_obj(); + if (pdu_session_usage_report_present) { + j.write_fieldname("pDUSessionUsageReport"); + pdu_session_usage_report.to_json(j); + } + if (qos_flows_usage_report_list_present) { + j.start_array("qosFlowsUsageReportList"); + for (const auto& e1 : qos_flows_usage_report_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_ext_present) { + j.write_fieldname("iE-Extension"); + ie_ext.to_json(j); + } + j.end_obj(); } -const ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() const + +// PDUSessionResourceModifyIndicationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_modify_ind_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const uint32_t options[] = {144, 156}; + return map_enum_number(options, 2, idx, "id"); } -const ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() const +bool pdu_session_res_modify_ind_transfer_ext_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); + static const uint32_t options[] = {144, 156}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -const ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() const +crit_e pdu_session_res_modify_ind_transfer_ext_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); + switch (id) { + case 144: + return crit_e::ignore; + case 156: + return crit_e::ignore; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -void ngap_elem_procs_o::init_msg_c::destroy_() +pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c +pdu_session_res_modify_ind_transfer_ext_ies_o::get_ext(const uint32_t& id) { - switch (type_) { - case types::amf_cfg_upd: - c.destroy(); - break; - case types::ho_cancel: - c.destroy(); - break; - case types::ho_required: - c.destroy(); - break; - case types::ho_request: - c.destroy(); - break; - case types::init_context_setup_request: - c.destroy(); - break; - case types::ng_reset: - c.destroy(); - break; - case types::ng_setup_request: - c.destroy(); - break; - case types::path_switch_request: - c.destroy(); - break; - case types::pdu_session_res_modify_request: - c.destroy(); - break; - case types::pdu_session_res_modify_ind: - c.destroy(); - break; - case types::pdu_session_res_release_cmd: - c.destroy(); - break; - case types::pdu_session_res_setup_request: - c.destroy(); - break; - case types::pws_cancel_request: - c.destroy(); - break; - case types::ran_cfg_upd: - c.destroy(); - break; - case types::ue_context_mod_request: - c.destroy(); - break; - case types::ue_context_release_cmd: - c.destroy(); - break; - case types::ue_radio_cap_check_request: - c.destroy(); - break; - case types::write_replace_warning_request: - c.destroy(); - break; - case types::amf_status_ind: - c.destroy(); - break; - case types::cell_traffic_trace: - c.destroy(); - break; - case types::deactiv_trace: - c.destroy(); - break; - case types::dl_nas_transport: - c.destroy(); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - c.destroy(); - break; - case types::dl_ran_cfg_transfer: - c.destroy(); - break; - case types::dl_ran_status_transfer: - c.destroy(); - break; - case types::dl_ueassociated_nrp_pa_transport: - c.destroy(); - break; - case types::error_ind: - c.destroy(); - break; - case types::ho_notify: - c.destroy(); - break; - case types::init_ue_msg: - c.destroy(); - break; - case types::location_report: - c.destroy(); - break; - case types::location_report_ctrl: - c.destroy(); - break; - case types::location_report_fail_ind: - c.destroy(); - break; - case types::nas_non_delivery_ind: - c.destroy(); - break; - case types::overload_start: - c.destroy(); - break; - case types::overload_stop: - c.destroy(); - break; - case types::paging: - c.destroy(); - break; - case types::pdu_session_res_notify: - c.destroy(); - break; - case types::private_msg: - c.destroy(); - break; - case types::pws_fail_ind: - c.destroy(); - break; - case types::pws_restart_ind: - c.destroy(); - break; - case types::reroute_nas_request: - c.destroy(); - break; - case types::rrc_inactive_transition_report: - c.destroy(); - break; - case types::secondary_rat_data_usage_report: - c.destroy(); - break; - case types::trace_fail_ind: - c.destroy(); - break; - case types::trace_start: - c.destroy(); - break; - case types::ue_context_release_request: - c.destroy(); - break; - case types::ue_radio_cap_info_ind: - c.destroy(); - break; - case types::uetnla_binding_release_request: - c.destroy(); - break; - case types::ul_nas_transport: - c.destroy(); - break; - case types::ul_non_ueassociated_nrp_pa_transport: - c.destroy(); - break; - case types::ul_ran_cfg_transfer: - c.destroy(); - break; - case types::ul_ran_status_transfer: - c.destroy(); + ext_c ret{}; + switch (id) { + case 144: + ret.set(ext_c::types::secondary_ratusage_info); break; - case types::ul_ueassociated_nrp_pa_transport: - c.destroy(); + case 156: + ret.set(ext_c::types::security_result); break; default: - break; + asn1::log_error("The id=%d is not recognized", id); } + return ret; } -void ngap_elem_procs_o::init_msg_c::set(types::options e) +presence_e pdu_session_res_modify_ind_transfer_ext_ies_o::get_presence(const uint32_t& id) { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_cfg_upd: - c.init(); - break; - case types::ho_cancel: - c.init(); - break; - case types::ho_required: - c.init(); - break; - case types::ho_request: - c.init(); - break; - case types::init_context_setup_request: - c.init(); - break; - case types::ng_reset: - c.init(); - break; - case types::ng_setup_request: - c.init(); - break; - case types::path_switch_request: - c.init(); - break; - case types::pdu_session_res_modify_request: - c.init(); - break; - case types::pdu_session_res_modify_ind: - c.init(); - break; - case types::pdu_session_res_release_cmd: - c.init(); - break; - case types::pdu_session_res_setup_request: - c.init(); - break; - case types::pws_cancel_request: - c.init(); - break; - case types::ran_cfg_upd: - c.init(); - break; - case types::ue_context_mod_request: - c.init(); - break; - case types::ue_context_release_cmd: - c.init(); - break; - case types::ue_radio_cap_check_request: - c.init(); - break; - case types::write_replace_warning_request: - c.init(); - break; - case types::amf_status_ind: - c.init(); - break; - case types::cell_traffic_trace: - c.init(); - break; - case types::deactiv_trace: - c.init(); - break; - case types::dl_nas_transport: - c.init(); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - c.init(); - break; - case types::dl_ran_cfg_transfer: - c.init(); - break; - case types::dl_ran_status_transfer: - c.init(); - break; - case types::dl_ueassociated_nrp_pa_transport: - c.init(); - break; - case types::error_ind: - c.init(); - break; - case types::ho_notify: - c.init(); - break; - case types::init_ue_msg: - c.init(); - break; - case types::location_report: - c.init(); - break; - case types::location_report_ctrl: - c.init(); - break; - case types::location_report_fail_ind: - c.init(); - break; - case types::nas_non_delivery_ind: - c.init(); - break; - case types::overload_start: - c.init(); - break; - case types::overload_stop: - c.init(); - break; - case types::paging: - c.init(); - break; - case types::pdu_session_res_notify: - c.init(); - break; - case types::private_msg: - c.init(); - break; - case types::pws_fail_ind: - c.init(); - break; - case types::pws_restart_ind: - c.init(); - break; - case types::reroute_nas_request: - c.init(); - break; - case types::rrc_inactive_transition_report: - c.init(); - break; - case types::secondary_rat_data_usage_report: - c.init(); - break; - case types::trace_fail_ind: - c.init(); - break; - case types::trace_start: - c.init(); - break; - case types::ue_context_release_request: - c.init(); - break; - case types::ue_radio_cap_info_ind: - c.init(); - break; - case types::uetnla_binding_release_request: - c.init(); - break; - case types::ul_nas_transport: - c.init(); + switch (id) { + case 144: + return presence_e::optional; + case 156: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} + +// Extension ::= OPEN TYPE +void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::destroy_() +{ + switch (type_) { + case types::secondary_ratusage_info: + c.destroy(); break; - case types::ul_non_ueassociated_nrp_pa_transport: - c.init(); + case types::security_result: + c.destroy(); break; - case types::ul_ran_cfg_transfer: - c.init(); + default: break; - case types::ul_ran_status_transfer: - c.init(); + } +} +void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::secondary_ratusage_info: + c.init(); break; - case types::ul_ueassociated_nrp_pa_transport: - c.init(); + case types::security_result: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); } } -ngap_elem_procs_o::init_msg_c::init_msg_c(const ngap_elem_procs_o::init_msg_c& other) +pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::ext_c( + const pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& other) { type_ = other.type(); switch (type_) { - case types::amf_cfg_upd: - c.init(other.c.get()); - break; - case types::ho_cancel: - c.init(other.c.get()); - break; - case types::ho_required: - c.init(other.c.get()); - break; - case types::ho_request: - c.init(other.c.get()); - break; - case types::init_context_setup_request: - c.init(other.c.get()); - break; - case types::ng_reset: - c.init(other.c.get()); - break; - case types::ng_setup_request: - c.init(other.c.get()); - break; - case types::path_switch_request: - c.init(other.c.get()); - break; - case types::pdu_session_res_modify_request: - c.init(other.c.get()); - break; - case types::pdu_session_res_modify_ind: - c.init(other.c.get()); - break; - case types::pdu_session_res_release_cmd: - c.init(other.c.get()); - break; - case types::pdu_session_res_setup_request: - c.init(other.c.get()); - break; - case types::pws_cancel_request: - c.init(other.c.get()); - break; - case types::ran_cfg_upd: - c.init(other.c.get()); - break; - case types::ue_context_mod_request: - c.init(other.c.get()); - break; - case types::ue_context_release_cmd: - c.init(other.c.get()); - break; - case types::ue_radio_cap_check_request: - c.init(other.c.get()); - break; - case types::write_replace_warning_request: - c.init(other.c.get()); - break; - case types::amf_status_ind: - c.init(other.c.get()); - break; - case types::cell_traffic_trace: - c.init(other.c.get()); - break; - case types::deactiv_trace: - c.init(other.c.get()); - break; - case types::dl_nas_transport: - c.init(other.c.get()); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - c.init(other.c.get()); - break; - case types::dl_ran_cfg_transfer: - c.init(other.c.get()); - break; - case types::dl_ran_status_transfer: - c.init(other.c.get()); - break; - case types::dl_ueassociated_nrp_pa_transport: - c.init(other.c.get()); - break; - case types::error_ind: - c.init(other.c.get()); - break; - case types::ho_notify: - c.init(other.c.get()); - break; - case types::init_ue_msg: - c.init(other.c.get()); - break; - case types::location_report: - c.init(other.c.get()); - break; - case types::location_report_ctrl: - c.init(other.c.get()); - break; - case types::location_report_fail_ind: - c.init(other.c.get()); - break; - case types::nas_non_delivery_ind: - c.init(other.c.get()); - break; - case types::overload_start: - c.init(other.c.get()); - break; - case types::overload_stop: - c.init(other.c.get()); - break; - case types::paging: - c.init(other.c.get()); - break; - case types::pdu_session_res_notify: - c.init(other.c.get()); - break; - case types::private_msg: - c.init(other.c.get()); - break; - case types::pws_fail_ind: - c.init(other.c.get()); - break; - case types::pws_restart_ind: - c.init(other.c.get()); - break; - case types::reroute_nas_request: - c.init(other.c.get()); - break; - case types::rrc_inactive_transition_report: - c.init(other.c.get()); - break; - case types::secondary_rat_data_usage_report: - c.init(other.c.get()); - break; - case types::trace_fail_ind: - c.init(other.c.get()); - break; - case types::trace_start: - c.init(other.c.get()); - break; - case types::ue_context_release_request: - c.init(other.c.get()); - break; - case types::ue_radio_cap_info_ind: - c.init(other.c.get()); - break; - case types::uetnla_binding_release_request: - c.init(other.c.get()); - break; - case types::ul_nas_transport: - c.init(other.c.get()); - break; - case types::ul_non_ueassociated_nrp_pa_transport: - c.init(other.c.get()); - break; - case types::ul_ran_cfg_transfer: - c.init(other.c.get()); - break; - case types::ul_ran_status_transfer: - c.init(other.c.get()); + case types::secondary_ratusage_info: + c.init(other.c.get()); break; - case types::ul_ueassociated_nrp_pa_transport: - c.init(other.c.get()); + case types::security_result: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); } } -ngap_elem_procs_o::init_msg_c& ngap_elem_procs_o::init_msg_c::operator=(const ngap_elem_procs_o::init_msg_c& other) +pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::operator=( + const pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_cfg_upd: - c.set(other.c.get()); - break; - case types::ho_cancel: - c.set(other.c.get()); - break; - case types::ho_required: - c.set(other.c.get()); - break; - case types::ho_request: - c.set(other.c.get()); - break; - case types::init_context_setup_request: - c.set(other.c.get()); - break; - case types::ng_reset: - c.set(other.c.get()); - break; - case types::ng_setup_request: - c.set(other.c.get()); - break; - case types::path_switch_request: - c.set(other.c.get()); - break; - case types::pdu_session_res_modify_request: - c.set(other.c.get()); - break; - case types::pdu_session_res_modify_ind: - c.set(other.c.get()); - break; - case types::pdu_session_res_release_cmd: - c.set(other.c.get()); - break; - case types::pdu_session_res_setup_request: - c.set(other.c.get()); - break; - case types::pws_cancel_request: - c.set(other.c.get()); - break; - case types::ran_cfg_upd: - c.set(other.c.get()); - break; - case types::ue_context_mod_request: - c.set(other.c.get()); - break; - case types::ue_context_release_cmd: - c.set(other.c.get()); - break; - case types::ue_radio_cap_check_request: - c.set(other.c.get()); - break; - case types::write_replace_warning_request: - c.set(other.c.get()); - break; - case types::amf_status_ind: - c.set(other.c.get()); - break; - case types::cell_traffic_trace: - c.set(other.c.get()); - break; - case types::deactiv_trace: - c.set(other.c.get()); - break; - case types::dl_nas_transport: - c.set(other.c.get()); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - c.set(other.c.get()); - break; - case types::dl_ran_cfg_transfer: - c.set(other.c.get()); - break; - case types::dl_ran_status_transfer: - c.set(other.c.get()); - break; - case types::dl_ueassociated_nrp_pa_transport: - c.set(other.c.get()); - break; - case types::error_ind: - c.set(other.c.get()); - break; - case types::ho_notify: - c.set(other.c.get()); - break; - case types::init_ue_msg: - c.set(other.c.get()); - break; - case types::location_report: - c.set(other.c.get()); + case types::secondary_ratusage_info: + c.set(other.c.get()); break; - case types::location_report_ctrl: - c.set(other.c.get()); + case types::security_result: + c.set(other.c.get()); break; - case types::location_report_fail_ind: - c.set(other.c.get()); + case types::nulltype: break; - case types::nas_non_delivery_ind: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + } + + return *this; +} +secondary_ratusage_info_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::secondary_ratusage_info() +{ + assert_choice_type(types::secondary_ratusage_info, type_, "Extension"); + return c.get(); +} +security_result_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::security_result() +{ + assert_choice_type(types::security_result, type_, "Extension"); + return c.get(); +} +const secondary_ratusage_info_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::secondary_ratusage_info() const +{ + assert_choice_type(types::secondary_ratusage_info, type_, "Extension"); + return c.get(); +} +const security_result_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::security_result() const +{ + assert_choice_type(types::security_result, type_, "Extension"); + return c.get(); +} +void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::secondary_ratusage_info: + j.write_fieldname("SecondaryRATUsageInformation"); + c.get().to_json(j); break; - case types::overload_start: - c.set(other.c.get()); + case types::security_result: + j.write_fieldname("SecurityResult"); + c.get().to_json(j); break; - case types::overload_stop: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + } + j.end_obj(); +} +SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::secondary_ratusage_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::paging: - c.set(other.c.get()); + case types::security_result: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pdu_session_res_notify: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::secondary_ratusage_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::private_msg: - c.set(other.c.get()); + case types::security_result: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pws_fail_ind: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +const char* pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::types_opts::to_string() const +{ + static const char* options[] = {"SecondaryRATUsageInformation", "SecurityResult"}; + return convert_enum_idx(options, 2, value, "pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::types"); +} + +template struct asn1::ngap_nr::protocol_ext_field_s; + +pdu_session_res_modify_ind_transfer_ext_ies_container::pdu_session_res_modify_ind_transfer_ext_ies_container() : + secondary_ratusage_info(144, crit_e::ignore), security_result(156, crit_e::ignore) +{} +SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += secondary_ratusage_info_present ? 1 : 0; + nof_ies += security_result_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (secondary_ratusage_info_present) { + HANDLE_CODE(secondary_ratusage_info.pack(bref)); + } + if (security_result_present) { + HANDLE_CODE(security_result.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_container::unpack(cbit_ref& bref) +{ + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 1u, 65535u, true); + + for (; nof_ies > 0; --nof_ies) { + protocol_ext_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 144: + secondary_ratusage_info_present = true; + secondary_ratusage_info.id = c.id; + secondary_ratusage_info.crit = c.crit; + secondary_ratusage_info.ext = c.ext_value.secondary_ratusage_info(); + break; + case 156: + security_result_present = true; + security_result.id = c.id; + security_result.crit = c.crit; + security_result.ext = c.ext_value.security_result(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_ind_transfer_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (secondary_ratusage_info_present) { + j.write_fieldname(""); + secondary_ratusage_info.to_json(j); + } + if (security_result_present) { + j.write_fieldname(""); + security_result.to_json(j); + } + j.end_obj(); +} + +// PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_ind_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_ind_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(dlqos_flow_per_tnl_info.unpack(bref)); + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_ind_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("dLQosFlowPerTNLInformation"); + dlqos_flow_per_tnl_info.to_json(j); + if (add_dl_qos_flow_per_tnl_info_present) { + j.start_array("additionalDLQosFlowPerTNLInformation"); + for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// PDUSessionResourceModifyIndicationUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_ind_unsuccessful_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_ind_unsuccessful_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_ind_unsuccessful_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// AdditionalQosFlowInformation ::= ENUMERATED +const char* add_qos_flow_info_opts::to_string() const +{ + static const char* options[] = {"more-likely"}; + return convert_enum_idx(options, 1, value, "add_qos_flow_info_e"); +} + +// QosCharacteristics ::= CHOICE +void qos_characteristics_c::destroy_() +{ + switch (type_) { + case types::non_dynamic5_qi: + c.destroy(); break; - case types::pws_restart_ind: - c.set(other.c.get()); + case types::dynamic5_qi: + c.destroy(); break; - case types::reroute_nas_request: - c.set(other.c.get()); + case types::choice_exts: + c.destroy >(); break; - case types::rrc_inactive_transition_report: - c.set(other.c.get()); + default: break; - case types::secondary_rat_data_usage_report: - c.set(other.c.get()); + } +} +void qos_characteristics_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::non_dynamic5_qi: + c.init(); break; - case types::trace_fail_ind: - c.set(other.c.get()); + case types::dynamic5_qi: + c.init(); break; - case types::trace_start: - c.set(other.c.get()); + case types::choice_exts: + c.init >(); break; - case types::ue_context_release_request: - c.set(other.c.get()); + case types::nulltype: break; - case types::ue_radio_cap_info_ind: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "qos_characteristics_c"); + } +} +qos_characteristics_c::qos_characteristics_c(const qos_characteristics_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::non_dynamic5_qi: + c.init(other.c.get()); break; - case types::uetnla_binding_release_request: - c.set(other.c.get()); + case types::dynamic5_qi: + c.init(other.c.get()); break; - case types::ul_nas_transport: - c.set(other.c.get()); + case types::choice_exts: + c.init(other.c.get >()); break; - case types::ul_non_ueassociated_nrp_pa_transport: - c.set(other.c.get()); + case types::nulltype: break; - case types::ul_ran_cfg_transfer: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "qos_characteristics_c"); + } +} +qos_characteristics_c& qos_characteristics_c::operator=(const qos_characteristics_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::non_dynamic5_qi: + c.set(other.c.get()); break; - case types::ul_ran_status_transfer: - c.set(other.c.get()); + case types::dynamic5_qi: + c.set(other.c.get()); break; - case types::ul_ueassociated_nrp_pa_transport: - c.set(other.c.get()); + case types::choice_exts: + c.set(other.c.get >()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + log_invalid_choice_id(type_, "qos_characteristics_c"); } return *this; } -void ngap_elem_procs_o::init_msg_c::to_json(json_writer& j) const +non_dynamic5_qi_descriptor_s& qos_characteristics_c::set_non_dynamic5_qi() +{ + set(types::non_dynamic5_qi); + return c.get(); +} +dynamic5_qi_descriptor_s& qos_characteristics_c::set_dynamic5_qi() +{ + set(types::dynamic5_qi); + return c.get(); +} +protocol_ie_single_container_s& qos_characteristics_c::set_choice_exts() +{ + set(types::choice_exts); + return c.get >(); +} +void qos_characteristics_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_cfg_upd: - j.write_fieldname("AMFConfigurationUpdate"); - c.get().to_json(j); - break; - case types::ho_cancel: - j.write_fieldname("HandoverCancel"); - c.get().to_json(j); - break; - case types::ho_required: - j.write_fieldname("HandoverRequired"); - c.get().to_json(j); - break; - case types::ho_request: - j.write_fieldname("HandoverRequest"); - c.get().to_json(j); - break; - case types::init_context_setup_request: - j.write_fieldname("InitialContextSetupRequest"); - c.get().to_json(j); - break; - case types::ng_reset: - j.write_fieldname("NGReset"); - c.get().to_json(j); - break; - case types::ng_setup_request: - j.write_fieldname("NGSetupRequest"); - c.get().to_json(j); - break; - case types::path_switch_request: - j.write_fieldname("PathSwitchRequest"); - c.get().to_json(j); - break; - case types::pdu_session_res_modify_request: - j.write_fieldname("PDUSessionResourceModifyRequest"); - c.get().to_json(j); - break; - case types::pdu_session_res_modify_ind: - j.write_fieldname("PDUSessionResourceModifyIndication"); - c.get().to_json(j); - break; - case types::pdu_session_res_release_cmd: - j.write_fieldname("PDUSessionResourceReleaseCommand"); - c.get().to_json(j); - break; - case types::pdu_session_res_setup_request: - j.write_fieldname("PDUSessionResourceSetupRequest"); - c.get().to_json(j); - break; - case types::pws_cancel_request: - j.write_fieldname("PWSCancelRequest"); - c.get().to_json(j); - break; - case types::ran_cfg_upd: - j.write_fieldname("RANConfigurationUpdate"); - c.get().to_json(j); - break; - case types::ue_context_mod_request: - j.write_fieldname("UEContextModificationRequest"); - c.get().to_json(j); - break; - case types::ue_context_release_cmd: - j.write_fieldname("UEContextReleaseCommand"); - c.get().to_json(j); - break; - case types::ue_radio_cap_check_request: - j.write_fieldname("UERadioCapabilityCheckRequest"); - c.get().to_json(j); - break; - case types::write_replace_warning_request: - j.write_fieldname("WriteReplaceWarningRequest"); - c.get().to_json(j); - break; - case types::amf_status_ind: - j.write_fieldname("AMFStatusIndication"); - c.get().to_json(j); - break; - case types::cell_traffic_trace: - j.write_fieldname("CellTrafficTrace"); - c.get().to_json(j); - break; - case types::deactiv_trace: - j.write_fieldname("DeactivateTrace"); - c.get().to_json(j); - break; - case types::dl_nas_transport: - j.write_fieldname("DownlinkNASTransport"); - c.get().to_json(j); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - j.write_fieldname("DownlinkNonUEAssociatedNRPPaTransport"); - c.get().to_json(j); - break; - case types::dl_ran_cfg_transfer: - j.write_fieldname("DownlinkRANConfigurationTransfer"); - c.get().to_json(j); - break; - case types::dl_ran_status_transfer: - j.write_fieldname("DownlinkRANStatusTransfer"); - c.get().to_json(j); - break; - case types::dl_ueassociated_nrp_pa_transport: - j.write_fieldname("DownlinkUEAssociatedNRPPaTransport"); - c.get().to_json(j); - break; - case types::error_ind: - j.write_fieldname("ErrorIndication"); - c.get().to_json(j); - break; - case types::ho_notify: - j.write_fieldname("HandoverNotify"); - c.get().to_json(j); - break; - case types::init_ue_msg: - j.write_fieldname("InitialUEMessage"); - c.get().to_json(j); - break; - case types::location_report: - j.write_fieldname("LocationReport"); - c.get().to_json(j); - break; - case types::location_report_ctrl: - j.write_fieldname("LocationReportingControl"); - c.get().to_json(j); - break; - case types::location_report_fail_ind: - j.write_fieldname("LocationReportingFailureIndication"); - c.get().to_json(j); - break; - case types::nas_non_delivery_ind: - j.write_fieldname("NASNonDeliveryIndication"); - c.get().to_json(j); - break; - case types::overload_start: - j.write_fieldname("OverloadStart"); - c.get().to_json(j); - break; - case types::overload_stop: - j.write_fieldname("OverloadStop"); - c.get().to_json(j); - break; - case types::paging: - j.write_fieldname("Paging"); - c.get().to_json(j); - break; - case types::pdu_session_res_notify: - j.write_fieldname("PDUSessionResourceNotify"); - c.get().to_json(j); - break; - case types::private_msg: - j.write_fieldname("PrivateMessage"); - c.get().to_json(j); - break; - case types::pws_fail_ind: - j.write_fieldname("PWSFailureIndication"); - c.get().to_json(j); + case types::non_dynamic5_qi: + j.write_fieldname("nonDynamic5QI"); + c.get().to_json(j); break; - case types::pws_restart_ind: - j.write_fieldname("PWSRestartIndication"); - c.get().to_json(j); + case types::dynamic5_qi: + j.write_fieldname("dynamic5QI"); + c.get().to_json(j); break; - case types::reroute_nas_request: - j.write_fieldname("RerouteNASRequest"); - c.get().to_json(j); + case types::choice_exts: + j.write_fieldname("choice-Extensions"); + c.get >().to_json(j); break; - case types::rrc_inactive_transition_report: - j.write_fieldname("RRCInactiveTransitionReport"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "qos_characteristics_c"); + } + j.end_obj(); +} +SRSASN_CODE qos_characteristics_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::non_dynamic5_qi: + HANDLE_CODE(c.get().pack(bref)); break; - case types::secondary_rat_data_usage_report: - j.write_fieldname("SecondaryRATDataUsageReport"); - c.get().to_json(j); + case types::dynamic5_qi: + HANDLE_CODE(c.get().pack(bref)); break; - case types::trace_fail_ind: - j.write_fieldname("TraceFailureIndication"); - c.get().to_json(j); + case types::choice_exts: + HANDLE_CODE(c.get >().pack(bref)); break; - case types::trace_start: - j.write_fieldname("TraceStart"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "qos_characteristics_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_characteristics_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::non_dynamic5_qi: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_context_release_request: - j.write_fieldname("UEContextReleaseRequest"); - c.get().to_json(j); + case types::dynamic5_qi: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ue_radio_cap_info_ind: - j.write_fieldname("UERadioCapabilityInfoIndication"); - c.get().to_json(j); + case types::choice_exts: + HANDLE_CODE(c.get >().unpack(bref)); break; - case types::uetnla_binding_release_request: - j.write_fieldname("UETNLABindingReleaseRequest"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "qos_characteristics_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +const char* qos_characteristics_c::types_opts::to_string() const +{ + static const char* options[] = {"nonDynamic5QI", "dynamic5QI", "choice-Extensions"}; + return convert_enum_idx(options, 3, value, "qos_characteristics_c::types"); +} + +// ReflectiveQosAttribute ::= ENUMERATED +const char* reflective_qos_attribute_opts::to_string() const +{ + static const char* options[] = {"subject-to"}; + return convert_enum_idx(options, 1, value, "reflective_qos_attribute_e"); +} + +// QosFlowLevelQosParameters ::= SEQUENCE +SRSASN_CODE qos_flow_level_qos_params_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(gbr_qos_info_present, 1)); + HANDLE_CODE(bref.pack(reflective_qos_attribute_present, 1)); + HANDLE_CODE(bref.pack(add_qos_flow_info_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(qos_characteristics.pack(bref)); + HANDLE_CODE(alloc_and_retention_prio.pack(bref)); + if (gbr_qos_info_present) { + HANDLE_CODE(gbr_qos_info.pack(bref)); + } + if (reflective_qos_attribute_present) { + HANDLE_CODE(reflective_qos_attribute.pack(bref)); + } + if (add_qos_flow_info_present) { + HANDLE_CODE(add_qos_flow_info.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_level_qos_params_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(gbr_qos_info_present, 1)); + HANDLE_CODE(bref.unpack(reflective_qos_attribute_present, 1)); + HANDLE_CODE(bref.unpack(add_qos_flow_info_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(qos_characteristics.unpack(bref)); + HANDLE_CODE(alloc_and_retention_prio.unpack(bref)); + if (gbr_qos_info_present) { + HANDLE_CODE(gbr_qos_info.unpack(bref)); + } + if (reflective_qos_attribute_present) { + HANDLE_CODE(reflective_qos_attribute.unpack(bref)); + } + if (add_qos_flow_info_present) { + HANDLE_CODE(add_qos_flow_info.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_level_qos_params_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("qosCharacteristics"); + qos_characteristics.to_json(j); + j.write_fieldname("allocationAndRetentionPriority"); + alloc_and_retention_prio.to_json(j); + if (gbr_qos_info_present) { + j.write_fieldname("gBR-QosInformation"); + gbr_qos_info.to_json(j); + } + if (reflective_qos_attribute_present) { + j.write_str("reflectiveQosAttribute", "subject-to"); + } + if (add_qos_flow_info_present) { + j.write_str("additionalQosFlowInformation", "more-likely"); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// QosFlowAddOrModifyRequestItem ::= SEQUENCE +SRSASN_CODE qos_flow_add_or_modify_request_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(qos_flow_level_qos_params_present, 1)); + HANDLE_CODE(bref.pack(erab_id_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (qos_flow_level_qos_params_present) { + HANDLE_CODE(qos_flow_level_qos_params.pack(bref)); + } + if (erab_id_present) { + HANDLE_CODE(pack_integer(bref, erab_id, (uint8_t)0u, (uint8_t)15u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_add_or_modify_request_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(qos_flow_level_qos_params_present, 1)); + HANDLE_CODE(bref.unpack(erab_id_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (qos_flow_level_qos_params_present) { + HANDLE_CODE(qos_flow_level_qos_params.unpack(bref)); + } + if (erab_id_present) { + HANDLE_CODE(unpack_integer(erab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_add_or_modify_request_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (qos_flow_level_qos_params_present) { + j.write_fieldname("qosFlowLevelQosParameters"); + qos_flow_level_qos_params.to_json(j); + } + if (erab_id_present) { + j.write_int("e-RAB-ID", erab_id); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// UL-NGU-UP-TNLModifyItem ::= SEQUENCE +SRSASN_CODE ul_ngu_up_tnl_modify_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); + HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ul_ngu_up_tnl_modify_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); + HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ul_ngu_up_tnl_modify_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("uL-NGU-UP-TNLInformation"); + ul_ngu_up_tnl_info.to_json(j); + j.write_fieldname("dL-NGU-UP-TNLInformation"); + dl_ngu_up_tnl_info.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// UPTransportLayerInformationItem ::= SEQUENCE +SRSASN_CODE up_transport_layer_info_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(ngu_up_tnl_info.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE up_transport_layer_info_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(ngu_up_tnl_info.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void up_transport_layer_info_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("nGU-UP-TNLInformation"); + ngu_up_tnl_info.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// PDUSessionResourceModifyRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_modify_request_transfer_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {130, 140, 129, 135, 137, 126}; + return map_enum_number(options, 6, idx, "id"); +} +bool pdu_session_res_modify_request_transfer_ies_o::is_id_valid(const uint32_t& id) +{ + static const uint32_t options[] = {130, 140, 129, 135, 137, 126}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; +} +crit_e pdu_session_res_modify_request_transfer_ies_o::get_crit(const uint32_t& id) +{ + switch (id) { + case 130: + return crit_e::reject; + case 140: + return crit_e::reject; + case 129: + return crit_e::reject; + case 135: + return crit_e::reject; + case 137: + return crit_e::reject; + case 126: + return crit_e::reject; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} +pdu_session_res_modify_request_transfer_ies_o::value_c +pdu_session_res_modify_request_transfer_ies_o::get_value(const uint32_t& id) +{ + value_c ret{}; + switch (id) { + case 130: + ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); break; - case types::ul_nas_transport: - j.write_fieldname("UplinkNASTransport"); - c.get().to_json(j); + case 140: + ret.set(value_c::types::ul_ngu_up_tnl_modify_list); break; - case types::ul_non_ueassociated_nrp_pa_transport: - j.write_fieldname("UplinkNonUEAssociatedNRPPaTransport"); - c.get().to_json(j); + case 129: + ret.set(value_c::types::network_instance); break; - case types::ul_ran_cfg_transfer: - j.write_fieldname("UplinkRANConfigurationTransfer"); - c.get().to_json(j); + case 135: + ret.set(value_c::types::qos_flow_add_or_modify_request_list); break; - case types::ul_ran_status_transfer: - j.write_fieldname("UplinkRANStatusTransfer"); - c.get().to_json(j); + case 137: + ret.set(value_c::types::qos_flow_to_release_list); break; - case types::ul_ueassociated_nrp_pa_transport: - j.write_fieldname("UplinkUEAssociatedNRPPaTransport"); - c.get().to_json(j); + case 126: + ret.set(value_c::types::add_ul_ngu_up_tnl_info); break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + asn1::log_error("The id=%d is not recognized", id); } - j.end_obj(); + return ret; } -SRSASN_CODE ngap_elem_procs_o::init_msg_c::pack(bit_ref& bref) const +presence_e pdu_session_res_modify_request_transfer_ies_o::get_presence(const uint32_t& id) +{ + switch (id) { + case 130: + return presence_e::optional; + case 140: + return presence_e::optional; + case 129: + return presence_e::optional; + case 135: + return presence_e::optional; + case 137: + return presence_e::optional; + case 126: + return presence_e::optional; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; +} + +// Value ::= OPEN TYPE +void pdu_session_res_modify_request_transfer_ies_o::value_c::destroy_() { - varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_cfg_upd: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_cancel: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_required: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::init_context_setup_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ng_reset: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ng_setup_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::path_switch_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_modify_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_modify_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_release_cmd: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_setup_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pws_cancel_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ran_cfg_upd: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_context_mod_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_context_release_cmd: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_radio_cap_check_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::write_replace_warning_request: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::amf_status_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::cell_traffic_trace: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::deactiv_trace: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dl_nas_transport: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dl_non_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dl_ran_cfg_transfer: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dl_ran_status_transfer: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::dl_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::error_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_notify: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::init_ue_msg: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::location_report: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::location_report_ctrl: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::location_report_fail_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::nas_non_delivery_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::overload_start: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::overload_stop: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::paging: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_notify: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::private_msg: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pws_fail_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pws_restart_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::reroute_nas_request: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_aggregate_maximum_bit_rate: + c.destroy(); break; - case types::rrc_inactive_transition_report: - HANDLE_CODE(c.get().pack(bref)); + case types::ul_ngu_up_tnl_modify_list: + c.destroy(); break; - case types::secondary_rat_data_usage_report: - HANDLE_CODE(c.get().pack(bref)); + case types::qos_flow_add_or_modify_request_list: + c.destroy(); break; - case types::trace_fail_ind: - HANDLE_CODE(c.get().pack(bref)); + case types::qos_flow_to_release_list: + c.destroy(); break; - case types::trace_start: - HANDLE_CODE(c.get().pack(bref)); + case types::add_ul_ngu_up_tnl_info: + c.destroy(); break; - case types::ue_context_release_request: - HANDLE_CODE(c.get().pack(bref)); + default: break; - case types::ue_radio_cap_info_ind: - HANDLE_CODE(c.get().pack(bref)); + } +} +void pdu_session_res_modify_request_transfer_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::pdu_session_aggregate_maximum_bit_rate: + c.init(); break; - case types::uetnla_binding_release_request: - HANDLE_CODE(c.get().pack(bref)); + case types::ul_ngu_up_tnl_modify_list: + c.init(); break; - case types::ul_nas_transport: - HANDLE_CODE(c.get().pack(bref)); + case types::network_instance: break; - case types::ul_non_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().pack(bref)); + case types::qos_flow_add_or_modify_request_list: + c.init(); break; - case types::ul_ran_cfg_transfer: - HANDLE_CODE(c.get().pack(bref)); + case types::qos_flow_to_release_list: + c.init(); break; - case types::ul_ran_status_transfer: - HANDLE_CODE(c.get().pack(bref)); + case types::add_ul_ngu_up_tnl_info: + c.init(); break; - case types::ul_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().pack(bref)); + case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); - return SRSASN_ERROR_ENCODE_FAIL; + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); } - return SRSASN_SUCCESS; } -SRSASN_CODE ngap_elem_procs_o::init_msg_c::unpack(cbit_ref& bref) +pdu_session_res_modify_request_transfer_ies_o::value_c::value_c( + const pdu_session_res_modify_request_transfer_ies_o::value_c& other) { - varlength_field_unpack_guard varlen_scope(bref, true); + type_ = other.type(); switch (type_) { - case types::amf_cfg_upd: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_cancel: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_required: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::init_context_setup_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ng_reset: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ng_setup_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::path_switch_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_modify_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_modify_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_release_cmd: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_setup_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pws_cancel_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ran_cfg_upd: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_context_mod_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_context_release_cmd: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_radio_cap_check_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::write_replace_warning_request: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::amf_status_ind: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::cell_traffic_trace: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::deactiv_trace: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::dl_nas_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; - case types::dl_non_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_modify_list: + c.init(other.c.get()); break; - case types::dl_ran_cfg_transfer: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + c.init(other.c.get()); break; - case types::dl_ran_status_transfer: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_add_or_modify_request_list: + c.init(other.c.get()); break; - case types::dl_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_to_release_list: + c.init(other.c.get()); break; - case types::error_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + c.init(other.c.get()); break; - case types::ho_notify: - HANDLE_CODE(c.get().unpack(bref)); + case types::nulltype: break; - case types::init_ue_msg: - HANDLE_CODE(c.get().unpack(bref)); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + } +} +pdu_session_res_modify_request_transfer_ies_o::value_c& +pdu_session_res_modify_request_transfer_ies_o::value_c::operator=( + const pdu_session_res_modify_request_transfer_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::pdu_session_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; - case types::location_report: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_modify_list: + c.set(other.c.get()); break; - case types::location_report_ctrl: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + c.set(other.c.get()); break; - case types::location_report_fail_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_add_or_modify_request_list: + c.set(other.c.get()); break; - case types::nas_non_delivery_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_to_release_list: + c.set(other.c.get()); break; - case types::overload_start: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + c.set(other.c.get()); break; - case types::overload_stop: - HANDLE_CODE(c.get().unpack(bref)); + case types::nulltype: break; - case types::paging: - HANDLE_CODE(c.get().unpack(bref)); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + } + + return *this; +} +pdu_session_aggregate_maximum_bit_rate_s& +pdu_session_res_modify_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::pdu_session_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +ul_ngu_up_tnl_modify_list_l& pdu_session_res_modify_request_transfer_ies_o::value_c::ul_ngu_up_tnl_modify_list() +{ + assert_choice_type(types::ul_ngu_up_tnl_modify_list, type_, "Value"); + return c.get(); +} +uint16_t& pdu_session_res_modify_request_transfer_ies_o::value_c::network_instance() +{ + assert_choice_type(types::network_instance, type_, "Value"); + return c.get(); +} +qos_flow_add_or_modify_request_list_l& +pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_add_or_modify_request_list() +{ + assert_choice_type(types::qos_flow_add_or_modify_request_list, type_, "Value"); + return c.get(); +} +qos_flow_list_with_cause_l& pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_to_release_list() +{ + assert_choice_type(types::qos_flow_to_release_list, type_, "Value"); + return c.get(); +} +up_transport_layer_info_list_l& pdu_session_res_modify_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() +{ + assert_choice_type(types::add_ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +const pdu_session_aggregate_maximum_bit_rate_s& +pdu_session_res_modify_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::pdu_session_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const ul_ngu_up_tnl_modify_list_l& +pdu_session_res_modify_request_transfer_ies_o::value_c::ul_ngu_up_tnl_modify_list() const +{ + assert_choice_type(types::ul_ngu_up_tnl_modify_list, type_, "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_modify_request_transfer_ies_o::value_c::network_instance() const +{ + assert_choice_type(types::network_instance, type_, "Value"); + return c.get(); +} +const qos_flow_add_or_modify_request_list_l& +pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_add_or_modify_request_list() const +{ + assert_choice_type(types::qos_flow_add_or_modify_request_list, type_, "Value"); + return c.get(); +} +const qos_flow_list_with_cause_l& +pdu_session_res_modify_request_transfer_ies_o::value_c::qos_flow_to_release_list() const +{ + assert_choice_type(types::qos_flow_to_release_list, type_, "Value"); + return c.get(); +} +const up_transport_layer_info_list_l& +pdu_session_res_modify_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() const +{ + assert_choice_type(types::add_ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +void pdu_session_res_modify_request_transfer_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::pdu_session_aggregate_maximum_bit_rate: + j.write_fieldname("PDUSessionAggregateMaximumBitRate"); + c.get().to_json(j); break; - case types::pdu_session_res_notify: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_modify_list: + j.start_array("UL-NGU-UP-TNLModifyList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::private_msg: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + j.write_int("INTEGER (1..256,...)", c.get()); break; - case types::pws_fail_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_add_or_modify_request_list: + j.start_array("QosFlowAddOrModifyRequestList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::pws_restart_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_to_release_list: + j.start_array("QosFlowListWithCause"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::reroute_nas_request: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + j.start_array("UPTransportLayerInformationList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::rrc_inactive_transition_report: - HANDLE_CODE(c.get().unpack(bref)); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + } + j.end_obj(); +} +SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::pdu_session_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; - case types::secondary_rat_data_usage_report: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_modify_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 4, true)); break; - case types::trace_fail_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::trace_start: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_add_or_modify_request_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); break; - case types::ue_context_release_request: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_to_release_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); break; - case types::ue_radio_cap_info_ind: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 3, true)); break; - case types::uetnla_binding_release_request: - HANDLE_CODE(c.get().unpack(bref)); + default: + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + switch (type_) { + case types::pdu_session_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ul_nas_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_modify_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 4, true)); break; - case types::ul_non_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::ul_ran_cfg_transfer: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_add_or_modify_request_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); break; - case types::ul_ran_status_transfer: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_to_release_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); break; - case types::ul_ueassociated_nrp_pa_transport: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 3, true)); break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::init_msg_c"); + log_invalid_choice_id(type_, "pdu_session_res_modify_request_transfer_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ngap_elem_procs_o::init_msg_c::types_opts::to_string() const +const char* pdu_session_res_modify_request_transfer_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"AMFConfigurationUpdate", - "HandoverCancel", - "HandoverRequired", - "HandoverRequest", - "InitialContextSetupRequest", - "NGReset", - "NGSetupRequest", - "PathSwitchRequest", - "PDUSessionResourceModifyRequest", - "PDUSessionResourceModifyIndication", - "PDUSessionResourceReleaseCommand", - "PDUSessionResourceSetupRequest", - "PWSCancelRequest", - "RANConfigurationUpdate", - "UEContextModificationRequest", - "UEContextReleaseCommand", - "UERadioCapabilityCheckRequest", - "WriteReplaceWarningRequest", - "AMFStatusIndication", - "CellTrafficTrace", - "DeactivateTrace", - "DownlinkNASTransport", - "DownlinkNonUEAssociatedNRPPaTransport", - "DownlinkRANConfigurationTransfer", - "DownlinkRANStatusTransfer", - "DownlinkUEAssociatedNRPPaTransport", - "ErrorIndication", - "HandoverNotify", - "InitialUEMessage", - "LocationReport", - "LocationReportingControl", - "LocationReportingFailureIndication", - "NASNonDeliveryIndication", - "OverloadStart", - "OverloadStop", - "Paging", - "PDUSessionResourceNotify", - "PrivateMessage", - "PWSFailureIndication", - "PWSRestartIndication", - "RerouteNASRequest", - "RRCInactiveTransitionReport", - "SecondaryRATDataUsageReport", - "TraceFailureIndication", - "TraceStart", - "UEContextReleaseRequest", - "UERadioCapabilityInfoIndication", - "UETNLABindingReleaseRequest", - "UplinkNASTransport", - "UplinkNonUEAssociatedNRPPaTransport", - "UplinkRANConfigurationTransfer", - "UplinkRANStatusTransfer", - "UplinkUEAssociatedNRPPaTransport"}; - return convert_enum_idx(options, 53, value, "ngap_elem_procs_o::init_msg_c::types"); + static const char* options[] = {"PDUSessionAggregateMaximumBitRate", + "UL-NGU-UP-TNLModifyList", + "INTEGER (1..256,...)", + "QosFlowAddOrModifyRequestList", + "QosFlowListWithCause", + "UPTransportLayerInformationList"}; + return convert_enum_idx(options, 6, value, "pdu_session_res_modify_request_transfer_ies_o::value_c::types"); +} +uint8_t pdu_session_res_modify_request_transfer_ies_o::value_c::types_opts::to_number() const +{ + if (value == network_instance) { + return 1; + } + invalid_enum_number(value, "pdu_session_res_modify_request_transfer_ies_o::value_c::types"); + return 0; +} + +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_modify_request_transfer_ies_container::pdu_session_res_modify_request_transfer_ies_container() : + pdu_session_aggregate_maximum_bit_rate(130, crit_e::reject), + ul_ngu_up_tnl_modify_list(140, crit_e::reject), + network_instance(129, crit_e::reject), + qos_flow_add_or_modify_request_list(135, crit_e::reject), + qos_flow_to_release_list(137, crit_e::reject), + add_ul_ngu_up_tnl_info(126, crit_e::reject) +{} +SRSASN_CODE pdu_session_res_modify_request_transfer_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += pdu_session_aggregate_maximum_bit_rate_present ? 1 : 0; + nof_ies += ul_ngu_up_tnl_modify_list_present ? 1 : 0; + nof_ies += network_instance_present ? 1 : 0; + nof_ies += qos_flow_add_or_modify_request_list_present ? 1 : 0; + nof_ies += qos_flow_to_release_list_present ? 1 : 0; + nof_ies += add_ul_ngu_up_tnl_info_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + if (pdu_session_aggregate_maximum_bit_rate_present) { + HANDLE_CODE(pdu_session_aggregate_maximum_bit_rate.pack(bref)); + } + if (ul_ngu_up_tnl_modify_list_present) { + HANDLE_CODE(ul_ngu_up_tnl_modify_list.pack(bref)); + } + if (network_instance_present) { + HANDLE_CODE(network_instance.pack(bref)); + } + if (qos_flow_add_or_modify_request_list_present) { + HANDLE_CODE(qos_flow_add_or_modify_request_list.pack(bref)); + } + if (qos_flow_to_release_list_present) { + HANDLE_CODE(qos_flow_to_release_list.pack(bref)); + } + if (add_ul_ngu_up_tnl_info_present) { + HANDLE_CODE(add_ul_ngu_up_tnl_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_request_transfer_ies_container::unpack(cbit_ref& bref) +{ + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 130: + pdu_session_aggregate_maximum_bit_rate_present = true; + pdu_session_aggregate_maximum_bit_rate.id = c.id; + pdu_session_aggregate_maximum_bit_rate.crit = c.crit; + pdu_session_aggregate_maximum_bit_rate.value = c.value.pdu_session_aggregate_maximum_bit_rate(); + break; + case 140: + ul_ngu_up_tnl_modify_list_present = true; + ul_ngu_up_tnl_modify_list.id = c.id; + ul_ngu_up_tnl_modify_list.crit = c.crit; + ul_ngu_up_tnl_modify_list.value = c.value.ul_ngu_up_tnl_modify_list(); + break; + case 129: + network_instance_present = true; + network_instance.id = c.id; + network_instance.crit = c.crit; + network_instance.value = c.value.network_instance(); + break; + case 135: + qos_flow_add_or_modify_request_list_present = true; + qos_flow_add_or_modify_request_list.id = c.id; + qos_flow_add_or_modify_request_list.crit = c.crit; + qos_flow_add_or_modify_request_list.value = c.value.qos_flow_add_or_modify_request_list(); + break; + case 137: + qos_flow_to_release_list_present = true; + qos_flow_to_release_list.id = c.id; + qos_flow_to_release_list.crit = c.crit; + qos_flow_to_release_list.value = c.value.qos_flow_to_release_list(); + break; + case 126: + add_ul_ngu_up_tnl_info_present = true; + add_ul_ngu_up_tnl_info.id = c.id; + add_ul_ngu_up_tnl_info.crit = c.crit; + add_ul_ngu_up_tnl_info.value = c.value.add_ul_ngu_up_tnl_info(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_request_transfer_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (pdu_session_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + pdu_session_aggregate_maximum_bit_rate.to_json(j); + } + if (ul_ngu_up_tnl_modify_list_present) { + j.write_fieldname(""); + ul_ngu_up_tnl_modify_list.to_json(j); + } + if (network_instance_present) { + j.write_fieldname(""); + network_instance.to_json(j); + } + if (qos_flow_add_or_modify_request_list_present) { + j.write_fieldname(""); + qos_flow_add_or_modify_request_list.to_json(j); + } + if (qos_flow_to_release_list_present) { + j.write_fieldname(""); + qos_flow_to_release_list.to_json(j); + } + if (add_ul_ngu_up_tnl_info_present) { + j.write_fieldname(""); + add_ul_ngu_up_tnl_info.to_json(j); + } + j.end_obj(); +} + +// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_request_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_request_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_request_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + +// QosFlowAddOrModifyResponseItem ::= SEQUENCE +SRSASN_CODE qos_flow_add_or_modify_resp_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_add_or_modify_resp_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_add_or_modify_resp_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// PDUSessionResourceModifyResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_modify_resp_transfer_ext_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {154}; + return map_enum_number(options, 1, idx, "id"); +} +bool pdu_session_res_modify_resp_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +{ + return 154 == id; +} +crit_e pdu_session_res_modify_resp_transfer_ext_ies_o::get_crit(const uint32_t& id) +{ + if (id == 154) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; +} +pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c +pdu_session_res_modify_resp_transfer_ext_ies_o::get_ext(const uint32_t& id) +{ + ext_c ret{}; + if (id != 154) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; +} +presence_e pdu_session_res_modify_resp_transfer_ext_ies_o::get_presence(const uint32_t& id) +{ + if (id == 154) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; +} + +// Extension ::= OPEN TYPE +void pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const +{ + j.start_obj(); + j.start_array("UPTransportLayerInformationPairList"); + for (const auto& e1 : c) { + e1.to_json(j); + } + j.end_array(); + j.end_obj(); +} +SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) +{ + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); + return SRSASN_SUCCESS; +} + +const char* pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::types_opts::to_string() const +{ + static const char* options[] = {"UPTransportLayerInformationPairList"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::types"); +} + +// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_resp_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(dl_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_add_or_modify_resp_list_present, 1)); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_add_or_modify_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (dl_ngu_up_tnl_info_present) { + HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + } + if (ul_ngu_up_tnl_info_present) { + HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); + } + if (qos_flow_add_or_modify_resp_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_add_or_modify_resp_list, 1, 64, true)); + } + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); + } + if (qos_flow_failed_to_add_or_modify_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_add_or_modify_list, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } +SRSASN_CODE pdu_session_res_modify_resp_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(dl_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_add_or_modify_resp_list_present, 1)); + HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_failed_to_add_or_modify_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (dl_ngu_up_tnl_info_present) { + HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + } + if (ul_ngu_up_tnl_info_present) { + HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); + } + if (qos_flow_add_or_modify_resp_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_add_or_modify_resp_list, bref, 1, 64, true)); + } + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); + } + if (qos_flow_failed_to_add_or_modify_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_add_or_modify_list, bref, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } -// SuccessfulOutcome ::= OPEN TYPE -amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd_ack() -{ - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel_ack() -{ - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_cmd() -{ - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + return SRSASN_SUCCESS; } -ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request_ack() +void pdu_session_res_modify_resp_transfer_s::to_json(json_writer& j) const { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + if (dl_ngu_up_tnl_info_present) { + j.write_fieldname("dL-NGU-UP-TNLInformation"); + dl_ngu_up_tnl_info.to_json(j); + } + if (ul_ngu_up_tnl_info_present) { + j.write_fieldname("uL-NGU-UP-TNLInformation"); + ul_ngu_up_tnl_info.to_json(j); + } + if (qos_flow_add_or_modify_resp_list_present) { + j.start_array("qosFlowAddOrModifyResponseList"); + for (const auto& e1 : qos_flow_add_or_modify_resp_list) { + e1.to_json(j); + } + j.end_array(); + } + if (add_dl_qos_flow_per_tnl_info_present) { + j.start_array("additionalDLQosFlowPerTNLInformation"); + for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { + e1.to_json(j); + } + j.end_array(); + } + if (qos_flow_failed_to_add_or_modify_list_present) { + j.start_array("qosFlowFailedToAddOrModifyList"); + for (const auto& e1 : qos_flow_failed_to_add_or_modify_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); } -init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_resp() + +// PDUSessionResourceModifyUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_unsuccessful_transfer_s::pack(bit_ref& bref) const { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset_ack() +SRSASN_CODE pdu_session_res_modify_unsuccessful_transfer_s::unpack(cbit_ref& bref) { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_resp() +void pdu_session_res_modify_unsuccessful_transfer_s::to_json(json_writer& j) const { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname("criticalityDiagnostics"); + crit_diagnostics.to_json(j); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request_ack() + +// PDUSessionResourceNotifyReleasedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_notify_released_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + static const uint32_t options[] = {144}; + return map_enum_number(options, 1, idx, "id"); } -pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_resp() +bool pdu_session_res_notify_released_transfer_ext_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + return 144 == id; } -pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_confirm() +crit_e pdu_session_res_notify_released_transfer_ext_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + if (id == 144) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_resp() +pdu_session_res_notify_released_transfer_ext_ies_o::ext_c +pdu_session_res_notify_released_transfer_ext_ies_o::get_ext(const uint32_t& id) { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + ext_c ret{}; + if (id != 144) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_resp() +presence_e pdu_session_res_notify_released_transfer_ext_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + if (id == 144) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_resp() + +// Extension ::= OPEN TYPE +void pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_fieldname("SecondaryRATUsageInformation"); + c.to_json(j); + j.end_obj(); } -ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd_ack() +SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; } -ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() +SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_complete() + +const char* pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::types_opts::to_string() const { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + static const char* options[] = {"SecondaryRATUsageInformation"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::types"); } -ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_resp() + +// PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_notify_released_transfer_s::pack(bit_ref& bref) const { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() +SRSASN_CODE pdu_session_res_notify_released_transfer_s::unpack(cbit_ref& bref) { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -const amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd_ack() const +void pdu_session_res_notify_released_transfer_s::to_json(json_writer& j) const { - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); } -const ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel_ack() const + +// NotificationCause ::= ENUMERATED +const char* notif_cause_opts::to_string() const { - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + static const char* options[] = {"fulfilled", "not-fulfilled"}; + return convert_enum_idx(options, 2, value, "notif_cause_e"); } -const ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_cmd() const + +// QosFlowNotifyItem ::= SEQUENCE +SRSASN_CODE qos_flow_notify_item_s::pack(bit_ref& bref) const { - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(notif_cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -const ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request_ack() const +SRSASN_CODE qos_flow_notify_item_s::unpack(cbit_ref& bref) { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(notif_cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; } -const init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_resp() const +void qos_flow_notify_item_s::to_json(json_writer& j) const { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_str("notificationCause", notif_cause.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); } -const ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset_ack() const + +// PDUSessionResourceNotifyTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_notify_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + static const uint32_t options[] = {144}; + return map_enum_number(options, 1, idx, "id"); } -const ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_resp() const +bool pdu_session_res_notify_transfer_ext_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + return 144 == id; } -const path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request_ack() const +crit_e pdu_session_res_notify_transfer_ext_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + if (id == 144) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -const pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_resp() const +pdu_session_res_notify_transfer_ext_ies_o::ext_c pdu_session_res_notify_transfer_ext_ies_o::get_ext(const uint32_t& id) { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + ext_c ret{}; + if (id != 144) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -const pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_confirm() const +presence_e pdu_session_res_notify_transfer_ext_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + if (id == 144) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -const pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_resp() const + +// Extension ::= OPEN TYPE +void pdu_session_res_notify_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_fieldname("SecondaryRATUsageInformation"); + c.to_json(j); + j.end_obj(); } -const pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_resp() const +SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; } -const pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_resp() const +SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -const ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd_ack() const + +const char* pdu_session_res_notify_transfer_ext_ies_o::ext_c::types_opts::to_string() const { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + static const char* options[] = {"SecondaryRATUsageInformation"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_notify_transfer_ext_ies_o::ext_c::types"); } -const ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() const + +// PDUSessionResourceNotifyTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_notify_transfer_s::pack(bit_ref& bref) const { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(qos_flow_notify_list_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_released_list_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (qos_flow_notify_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_notify_list, 1, 64, true)); + } + if (qos_flow_released_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_released_list, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -const ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_complete() const +SRSASN_CODE pdu_session_res_notify_transfer_s::unpack(cbit_ref& bref) { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(qos_flow_notify_list_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_released_list_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (qos_flow_notify_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_notify_list, bref, 1, 64, true)); + } + if (qos_flow_released_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_released_list, bref, 1, 64, true)); + } + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -const ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_resp() const +void pdu_session_res_notify_transfer_s::to_json(json_writer& j) const { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + j.start_obj(); + if (qos_flow_notify_list_present) { + j.start_array("qosFlowNotifyList"); + for (const auto& e1 : qos_flow_notify_list) { + e1.to_json(j); + } + j.end_array(); + } + if (qos_flow_released_list_present) { + j.start_array("qosFlowReleasedList"); + for (const auto& e1 : qos_flow_released_list) { + e1.to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); } -const write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() const + +// PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_release_cmd_transfer_s::pack(bit_ref& bref) const { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; } -void ngap_elem_procs_o::successful_outcome_c::destroy_() +SRSASN_CODE pdu_session_res_release_cmd_transfer_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::amf_cfg_upd_ack: - c.destroy(); - break; - case types::ho_cancel_ack: - c.destroy(); - break; - case types::ho_cmd: - c.destroy(); - break; - case types::ho_request_ack: - c.destroy(); - break; - case types::init_context_setup_resp: - c.destroy(); - break; - case types::ng_reset_ack: - c.destroy(); - break; - case types::ng_setup_resp: - c.destroy(); - break; - case types::path_switch_request_ack: - c.destroy(); - break; - case types::pdu_session_res_modify_resp: - c.destroy(); - break; - case types::pdu_session_res_modify_confirm: - c.destroy(); - break; - case types::pdu_session_res_release_resp: - c.destroy(); - break; - case types::pdu_session_res_setup_resp: - c.destroy(); - break; - case types::pws_cancel_resp: - c.destroy(); - break; - case types::ran_cfg_upd_ack: - c.destroy(); - break; - case types::ue_context_mod_resp: - c.destroy(); - break; - case types::ue_context_release_complete: - c.destroy(); - break; - case types::ue_radio_cap_check_resp: - c.destroy(); - break; - case types::write_replace_warning_resp: - c.destroy(); - break; - default: - break; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + + return SRSASN_SUCCESS; } -void ngap_elem_procs_o::successful_outcome_c::set(types::options e) +void pdu_session_res_release_cmd_transfer_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::amf_cfg_upd_ack: - c.init(); - break; - case types::ho_cancel_ack: - c.init(); - break; - case types::ho_cmd: - c.init(); - break; - case types::ho_request_ack: - c.init(); - break; - case types::init_context_setup_resp: - c.init(); - break; - case types::ng_reset_ack: - c.init(); - break; - case types::ng_setup_resp: - c.init(); - break; - case types::path_switch_request_ack: - c.init(); - break; - case types::pdu_session_res_modify_resp: - c.init(); - break; - case types::pdu_session_res_modify_confirm: - c.init(); - break; - case types::pdu_session_res_release_resp: - c.init(); - break; - case types::pdu_session_res_setup_resp: - c.init(); - break; - case types::pws_cancel_resp: - c.init(); - break; - case types::ran_cfg_upd_ack: - c.init(); - break; - case types::ue_context_mod_resp: - c.init(); - break; - case types::ue_context_release_complete: - c.init(); - break; - case types::ue_radio_cap_check_resp: - c.init(); - break; - case types::write_replace_warning_resp: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } + j.end_obj(); } -ngap_elem_procs_o::successful_outcome_c::successful_outcome_c(const ngap_elem_procs_o::successful_outcome_c& other) + +// PDUSessionResourceReleaseResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t pdu_session_res_release_resp_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - type_ = other.type(); - switch (type_) { - case types::amf_cfg_upd_ack: - c.init(other.c.get()); - break; - case types::ho_cancel_ack: - c.init(other.c.get()); - break; - case types::ho_cmd: - c.init(other.c.get()); - break; - case types::ho_request_ack: - c.init(other.c.get()); - break; - case types::init_context_setup_resp: - c.init(other.c.get()); - break; - case types::ng_reset_ack: - c.init(other.c.get()); - break; - case types::ng_setup_resp: - c.init(other.c.get()); - break; - case types::path_switch_request_ack: - c.init(other.c.get()); - break; - case types::pdu_session_res_modify_resp: - c.init(other.c.get()); - break; - case types::pdu_session_res_modify_confirm: - c.init(other.c.get()); - break; - case types::pdu_session_res_release_resp: - c.init(other.c.get()); - break; - case types::pdu_session_res_setup_resp: - c.init(other.c.get()); - break; - case types::pws_cancel_resp: - c.init(other.c.get()); - break; - case types::ran_cfg_upd_ack: - c.init(other.c.get()); - break; - case types::ue_context_mod_resp: - c.init(other.c.get()); - break; - case types::ue_context_release_complete: - c.init(other.c.get()); - break; - case types::ue_radio_cap_check_resp: - c.init(other.c.get()); - break; - case types::write_replace_warning_resp: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + static const uint32_t options[] = {144}; + return map_enum_number(options, 1, idx, "id"); +} +bool pdu_session_res_release_resp_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +{ + return 144 == id; +} +crit_e pdu_session_res_release_resp_transfer_ext_ies_o::get_crit(const uint32_t& id) +{ + if (id == 144) { + return crit_e::ignore; } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -ngap_elem_procs_o::successful_outcome_c& ngap_elem_procs_o::successful_outcome_c:: - operator=(const ngap_elem_procs_o::successful_outcome_c& other) +pdu_session_res_release_resp_transfer_ext_ies_o::ext_c +pdu_session_res_release_resp_transfer_ext_ies_o::get_ext(const uint32_t& id) { - if (this == &other) { - return *this; + ext_c ret{}; + if (id != 144) { + asn1::log_error("The id=%d is not recognized", id); } - set(other.type()); - switch (type_) { - case types::amf_cfg_upd_ack: - c.set(other.c.get()); - break; - case types::ho_cancel_ack: - c.set(other.c.get()); - break; - case types::ho_cmd: - c.set(other.c.get()); - break; - case types::ho_request_ack: - c.set(other.c.get()); - break; - case types::init_context_setup_resp: - c.set(other.c.get()); - break; - case types::ng_reset_ack: - c.set(other.c.get()); - break; - case types::ng_setup_resp: - c.set(other.c.get()); - break; - case types::path_switch_request_ack: - c.set(other.c.get()); - break; - case types::pdu_session_res_modify_resp: - c.set(other.c.get()); - break; - case types::pdu_session_res_modify_confirm: - c.set(other.c.get()); - break; - case types::pdu_session_res_release_resp: - c.set(other.c.get()); - break; - case types::pdu_session_res_setup_resp: - c.set(other.c.get()); - break; - case types::pws_cancel_resp: - c.set(other.c.get()); - break; - case types::ran_cfg_upd_ack: - c.set(other.c.get()); - break; - case types::ue_context_mod_resp: - c.set(other.c.get()); - break; - case types::ue_context_release_complete: - c.set(other.c.get()); - break; - case types::ue_radio_cap_check_resp: - c.set(other.c.get()); - break; - case types::write_replace_warning_resp: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); + return ret; +} +presence_e pdu_session_res_release_resp_transfer_ext_ies_o::get_presence(const uint32_t& id) +{ + if (id == 144) { + return presence_e::optional; } - - return *this; + asn1::log_error("The id=%d is not recognized", id); + return {}; } -void ngap_elem_procs_o::successful_outcome_c::to_json(json_writer& j) const + +// Extension ::= OPEN TYPE +void pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::amf_cfg_upd_ack: - j.write_fieldname("AMFConfigurationUpdateAcknowledge"); - c.get().to_json(j); - break; - case types::ho_cancel_ack: - j.write_fieldname("HandoverCancelAcknowledge"); - c.get().to_json(j); - break; - case types::ho_cmd: - j.write_fieldname("HandoverCommand"); - c.get().to_json(j); - break; - case types::ho_request_ack: - j.write_fieldname("HandoverRequestAcknowledge"); - c.get().to_json(j); - break; - case types::init_context_setup_resp: - j.write_fieldname("InitialContextSetupResponse"); - c.get().to_json(j); - break; - case types::ng_reset_ack: - j.write_fieldname("NGResetAcknowledge"); - c.get().to_json(j); - break; - case types::ng_setup_resp: - j.write_fieldname("NGSetupResponse"); - c.get().to_json(j); - break; - case types::path_switch_request_ack: - j.write_fieldname("PathSwitchRequestAcknowledge"); - c.get().to_json(j); - break; - case types::pdu_session_res_modify_resp: - j.write_fieldname("PDUSessionResourceModifyResponse"); - c.get().to_json(j); - break; - case types::pdu_session_res_modify_confirm: - j.write_fieldname("PDUSessionResourceModifyConfirm"); - c.get().to_json(j); - break; - case types::pdu_session_res_release_resp: - j.write_fieldname("PDUSessionResourceReleaseResponse"); - c.get().to_json(j); - break; - case types::pdu_session_res_setup_resp: - j.write_fieldname("PDUSessionResourceSetupResponse"); - c.get().to_json(j); - break; - case types::pws_cancel_resp: - j.write_fieldname("PWSCancelResponse"); - c.get().to_json(j); - break; - case types::ran_cfg_upd_ack: - j.write_fieldname("RANConfigurationUpdateAcknowledge"); - c.get().to_json(j); - break; - case types::ue_context_mod_resp: - j.write_fieldname("UEContextModificationResponse"); - c.get().to_json(j); - break; - case types::ue_context_release_complete: - j.write_fieldname("UEContextReleaseComplete"); - c.get().to_json(j); - break; - case types::ue_radio_cap_check_resp: - j.write_fieldname("UERadioCapabilityCheckResponse"); - c.get().to_json(j); - break; - case types::write_replace_warning_resp: - j.write_fieldname("WriteReplaceWarningResponse"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); - } + j.write_fieldname("SecondaryRATUsageInformation"); + c.to_json(j); j.end_obj(); } -SRSASN_CODE ngap_elem_procs_o::successful_outcome_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_cfg_upd_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_cancel_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_cmd: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ho_request_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::init_context_setup_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ng_reset_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ng_setup_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::path_switch_request_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_modify_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_modify_confirm: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_release_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pdu_session_res_setup_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pws_cancel_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ran_cfg_upd_ack: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_context_mod_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_context_release_complete: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_radio_cap_check_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::write_replace_warning_resp: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + HANDLE_CODE(c.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ngap_elem_procs_o::successful_outcome_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); - switch (type_) { - case types::amf_cfg_upd_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_cancel_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_cmd: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ho_request_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::init_context_setup_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ng_reset_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ng_setup_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::path_switch_request_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_modify_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_modify_confirm: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_release_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pdu_session_res_setup_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pws_cancel_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ran_cfg_upd_ack: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_context_mod_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_context_release_complete: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::ue_radio_cap_check_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::write_replace_warning_resp: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::successful_outcome_c"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; +} + +const char* pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::types_opts::to_string() const +{ + static const char* options[] = {"SecondaryRATUsageInformation"}; + return convert_enum_idx(options, 1, value, "pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::types"); +} + +// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_release_resp_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_release_resp_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); } + return SRSASN_SUCCESS; } +void pdu_session_res_release_resp_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); +} -std::string ngap_elem_procs_o::successful_outcome_c::types_opts::to_string() const +// MaximumIntegrityProtectedDataRate ::= ENUMERATED +const char* maximum_integrity_protected_data_rate_opts::to_string() const { - static const char* options[] = {"AMFConfigurationUpdateAcknowledge", - "HandoverCancelAcknowledge", - "HandoverCommand", - "HandoverRequestAcknowledge", - "InitialContextSetupResponse", - "NGResetAcknowledge", - "NGSetupResponse", - "PathSwitchRequestAcknowledge", - "PDUSessionResourceModifyResponse", - "PDUSessionResourceModifyConfirm", - "PDUSessionResourceReleaseResponse", - "PDUSessionResourceSetupResponse", - "PWSCancelResponse", - "RANConfigurationUpdateAcknowledge", - "UEContextModificationResponse", - "UEContextReleaseComplete", - "UERadioCapabilityCheckResponse", - "WriteReplaceWarningResponse"}; - return convert_enum_idx(options, 18, value, "ngap_elem_procs_o::successful_outcome_c::types"); + static const char* options[] = {"bitrate64kbs", "maximum-UE-rate"}; + return convert_enum_idx(options, 2, value, "maximum_integrity_protected_data_rate_e"); +} +uint8_t maximum_integrity_protected_data_rate_opts::to_number() const +{ + static const uint8_t options[] = {64}; + return map_enum_number(options, 1, value, "maximum_integrity_protected_data_rate_e"); } -// UnsuccessfulOutcome ::= OPEN TYPE -amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd_fail() +// ConfidentialityProtectionIndication ::= ENUMERATED +const char* confidentiality_protection_ind_opts::to_string() const +{ + static const char* options[] = {"required", "preferred", "not-needed"}; + return convert_enum_idx(options, 3, value, "confidentiality_protection_ind_e"); +} + +// IntegrityProtectionIndication ::= ENUMERATED +const char* integrity_protection_ind_opts::to_string() const +{ + static const char* options[] = {"required", "preferred", "not-needed"}; + return convert_enum_idx(options, 3, value, "integrity_protection_ind_e"); +} + +// QosFlowSetupRequestItem ::= SEQUENCE +SRSASN_CODE qos_flow_setup_request_item_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(erab_id_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(qos_flow_level_qos_params.pack(bref)); + if (erab_id_present) { + HANDLE_CODE(pack_integer(bref, erab_id, (uint8_t)0u, (uint8_t)15u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE qos_flow_setup_request_item_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(erab_id_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + HANDLE_CODE(qos_flow_level_qos_params.unpack(bref)); + if (erab_id_present) { + HANDLE_CODE(unpack_integer(erab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void qos_flow_setup_request_item_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("qosFlowIdentifier", qos_flow_id); + j.write_fieldname("qosFlowLevelQosParameters"); + qos_flow_level_qos_params.to_json(j); + if (erab_id_present) { + j.write_int("e-RAB-ID", erab_id); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + +// SecurityIndication-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t security_ind_ext_ies_o::idx_to_id(uint32_t idx) +{ + static const uint32_t options[] = {151}; + return map_enum_number(options, 1, idx, "id"); +} +bool security_ind_ext_ies_o::is_id_valid(const uint32_t& id) +{ + return 151 == id; +} +crit_e security_ind_ext_ies_o::get_crit(const uint32_t& id) +{ + if (id == 151) { + return crit_e::ignore; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; +} +security_ind_ext_ies_o::ext_c security_ind_ext_ies_o::get_ext(const uint32_t& id) { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + ext_c ret{}; + if (id != 151) { + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() +presence_e security_ind_ext_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + if (id == 151) { + return presence_e::optional; + } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_fail() + +// Extension ::= OPEN TYPE +void security_ind_ext_ies_o::ext_c::to_json(json_writer& j) const { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_str("MaximumIntegrityProtectedDataRate", c.to_string()); + j.end_obj(); } -init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() +SRSASN_CODE security_ind_ext_ies_o::ext_c::pack(bit_ref& bref) const { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; } -ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_fail() +SRSASN_CODE security_ind_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() + +const char* security_ind_ext_ies_o::ext_c::types_opts::to_string() const { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + static const char* options[] = {"MaximumIntegrityProtectedDataRate"}; + return convert_enum_idx(options, 1, value, "security_ind_ext_ies_o::ext_c::types"); } -ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd_fail() + +// DataForwardingNotPossible ::= ENUMERATED +const char* data_forwarding_not_possible_opts::to_string() const { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + static const char* options[] = {"data-forwarding-not-possible"}; + return convert_enum_idx(options, 1, value, "data_forwarding_not_possible_e"); } -ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() + +// PDUSessionType ::= ENUMERATED +const char* pdu_session_type_opts::to_string() const { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + static const char* options[] = {"ipv4", "ipv6", "ipv4v6", "ethernet", "unstructured"}; + return convert_enum_idx(options, 5, value, "pdu_session_type_e"); } -const amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd_fail() const + +// SecurityIndication ::= SEQUENCE +SRSASN_CODE security_ind_s::pack(bit_ref& bref) const { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(maximum_integrity_protected_data_rate_ul_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(integrity_protection_ind.pack(bref)); + HANDLE_CODE(confidentiality_protection_ind.pack(bref)); + if (maximum_integrity_protected_data_rate_ul_present) { + HANDLE_CODE(maximum_integrity_protected_data_rate_ul.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -const ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() const +SRSASN_CODE security_ind_s::unpack(cbit_ref& bref) { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(maximum_integrity_protected_data_rate_ul_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(integrity_protection_ind.unpack(bref)); + HANDLE_CODE(confidentiality_protection_ind.unpack(bref)); + if (maximum_integrity_protected_data_rate_ul_present) { + HANDLE_CODE(maximum_integrity_protected_data_rate_ul.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); + } + + return SRSASN_SUCCESS; } -const ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_fail() const +void security_ind_s::to_json(json_writer& j) const { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + j.start_obj(); + j.write_str("integrityProtectionIndication", integrity_protection_ind.to_string()); + j.write_str("confidentialityProtectionIndication", confidentiality_protection_ind.to_string()); + if (maximum_integrity_protected_data_rate_ul_present) { + j.write_str("maximumIntegrityProtectedDataRate-UL", maximum_integrity_protected_data_rate_ul.to_string()); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); } -const init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() const + +// PDUSessionResourceSetupRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +uint32_t pdu_session_res_setup_request_transfer_ies_o::idx_to_id(uint32_t idx) { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + static const uint32_t options[] = {130, 139, 126, 127, 134, 138, 129, 136}; + return map_enum_number(options, 8, idx, "id"); } -const ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_fail() const +bool pdu_session_res_setup_request_transfer_ies_o::is_id_valid(const uint32_t& id) { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + static const uint32_t options[] = {130, 139, 126, 127, 134, 138, 129, 136}; + for (const auto& o : options) { + if (o == id) { + return true; + } + } + return false; } -const path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() const +crit_e pdu_session_res_setup_request_transfer_ies_o::get_crit(const uint32_t& id) { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + switch (id) { + case 130: + return crit_e::reject; + case 139: + return crit_e::reject; + case 126: + return crit_e::reject; + case 127: + return crit_e::reject; + case 134: + return crit_e::reject; + case 138: + return crit_e::reject; + case 129: + return crit_e::reject; + case 136: + return crit_e::reject; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -const ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd_fail() const +pdu_session_res_setup_request_transfer_ies_o::value_c +pdu_session_res_setup_request_transfer_ies_o::get_value(const uint32_t& id) { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + value_c ret{}; + switch (id) { + case 130: + ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); + break; + case 139: + ret.set(value_c::types::ul_ngu_up_tnl_info); + break; + case 126: + ret.set(value_c::types::add_ul_ngu_up_tnl_info); + break; + case 127: + ret.set(value_c::types::data_forwarding_not_possible); + break; + case 134: + ret.set(value_c::types::pdu_session_type); + break; + case 138: + ret.set(value_c::types::security_ind); + break; + case 129: + ret.set(value_c::types::network_instance); + break; + case 136: + ret.set(value_c::types::qos_flow_setup_request_list); + break; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return ret; } -const ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() const +presence_e pdu_session_res_setup_request_transfer_ies_o::get_presence(const uint32_t& id) { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); + switch (id) { + case 130: + return presence_e::optional; + case 139: + return presence_e::mandatory; + case 126: + return presence_e::optional; + case 127: + return presence_e::optional; + case 134: + return presence_e::mandatory; + case 138: + return presence_e::optional; + case 129: + return presence_e::optional; + case 136: + return presence_e::mandatory; + default: + asn1::log_error("The id=%d is not recognized", id); + } + return {}; } -void ngap_elem_procs_o::unsuccessful_outcome_c::destroy_() + +// Value ::= OPEN TYPE +void pdu_session_res_setup_request_transfer_ies_o::value_c::destroy_() { switch (type_) { - case types::amf_cfg_upd_fail: - c.destroy(); - break; - case types::ho_prep_fail: - c.destroy(); - break; - case types::ho_fail: - c.destroy(); - break; - case types::init_context_setup_fail: - c.destroy(); + case types::pdu_session_aggregate_maximum_bit_rate: + c.destroy(); break; - case types::ng_setup_fail: - c.destroy(); + case types::ul_ngu_up_tnl_info: + c.destroy(); break; - case types::path_switch_request_fail: - c.destroy(); + case types::add_ul_ngu_up_tnl_info: + c.destroy(); break; - case types::ran_cfg_upd_fail: - c.destroy(); + case types::security_ind: + c.destroy(); break; - case types::ue_context_mod_fail: - c.destroy(); + case types::qos_flow_setup_request_list: + c.destroy(); break; default: break; } } -void ngap_elem_procs_o::unsuccessful_outcome_c::set(types::options e) +void pdu_session_res_setup_request_transfer_ies_o::value_c::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::amf_cfg_upd_fail: - c.init(); + case types::pdu_session_aggregate_maximum_bit_rate: + c.init(); break; - case types::ho_prep_fail: - c.init(); + case types::ul_ngu_up_tnl_info: + c.init(); break; - case types::ho_fail: - c.init(); + case types::add_ul_ngu_up_tnl_info: + c.init(); break; - case types::init_context_setup_fail: - c.init(); + case types::data_forwarding_not_possible: break; - case types::ng_setup_fail: - c.init(); + case types::pdu_session_type: break; - case types::path_switch_request_fail: - c.init(); + case types::security_ind: + c.init(); break; - case types::ran_cfg_upd_fail: - c.init(); + case types::network_instance: break; - case types::ue_context_mod_fail: - c.init(); + case types::qos_flow_setup_request_list: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); } } -ngap_elem_procs_o::unsuccessful_outcome_c::unsuccessful_outcome_c( - const ngap_elem_procs_o::unsuccessful_outcome_c& other) +pdu_session_res_setup_request_transfer_ies_o::value_c::value_c( + const pdu_session_res_setup_request_transfer_ies_o::value_c& other) { type_ = other.type(); switch (type_) { - case types::amf_cfg_upd_fail: - c.init(other.c.get()); + case types::pdu_session_aggregate_maximum_bit_rate: + c.init(other.c.get()); break; - case types::ho_prep_fail: - c.init(other.c.get()); + case types::ul_ngu_up_tnl_info: + c.init(other.c.get()); break; - case types::ho_fail: - c.init(other.c.get()); + case types::add_ul_ngu_up_tnl_info: + c.init(other.c.get()); break; - case types::init_context_setup_fail: - c.init(other.c.get()); + case types::data_forwarding_not_possible: + c.init(other.c.get()); break; - case types::ng_setup_fail: - c.init(other.c.get()); + case types::pdu_session_type: + c.init(other.c.get()); break; - case types::path_switch_request_fail: - c.init(other.c.get()); + case types::security_ind: + c.init(other.c.get()); break; - case types::ran_cfg_upd_fail: - c.init(other.c.get()); + case types::network_instance: + c.init(other.c.get()); break; - case types::ue_context_mod_fail: - c.init(other.c.get()); + case types::qos_flow_setup_request_list: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); } } -ngap_elem_procs_o::unsuccessful_outcome_c& ngap_elem_procs_o::unsuccessful_outcome_c:: - operator=(const ngap_elem_procs_o::unsuccessful_outcome_c& other) +pdu_session_res_setup_request_transfer_ies_o::value_c& pdu_session_res_setup_request_transfer_ies_o::value_c::operator=( + const pdu_session_res_setup_request_transfer_ies_o::value_c& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::amf_cfg_upd_fail: - c.set(other.c.get()); + case types::pdu_session_aggregate_maximum_bit_rate: + c.set(other.c.get()); break; - case types::ho_prep_fail: - c.set(other.c.get()); + case types::ul_ngu_up_tnl_info: + c.set(other.c.get()); break; - case types::ho_fail: - c.set(other.c.get()); + case types::add_ul_ngu_up_tnl_info: + c.set(other.c.get()); break; - case types::init_context_setup_fail: - c.set(other.c.get()); + case types::data_forwarding_not_possible: + c.set(other.c.get()); break; - case types::ng_setup_fail: - c.set(other.c.get()); + case types::pdu_session_type: + c.set(other.c.get()); break; - case types::path_switch_request_fail: - c.set(other.c.get()); + case types::security_ind: + c.set(other.c.get()); break; - case types::ran_cfg_upd_fail: - c.set(other.c.get()); + case types::network_instance: + c.set(other.c.get()); break; - case types::ue_context_mod_fail: - c.set(other.c.get()); + case types::qos_flow_setup_request_list: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); } return *this; } -void ngap_elem_procs_o::unsuccessful_outcome_c::to_json(json_writer& j) const +pdu_session_aggregate_maximum_bit_rate_s& +pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() +{ + assert_choice_type(types::pdu_session_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +up_transport_layer_info_c& pdu_session_res_setup_request_transfer_ies_o::value_c::ul_ngu_up_tnl_info() +{ + assert_choice_type(types::ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +up_transport_layer_info_list_l& pdu_session_res_setup_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() +{ + assert_choice_type(types::add_ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +data_forwarding_not_possible_e& pdu_session_res_setup_request_transfer_ies_o::value_c::data_forwarding_not_possible() +{ + assert_choice_type(types::data_forwarding_not_possible, type_, "Value"); + return c.get(); +} +pdu_session_type_e& pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_type() +{ + assert_choice_type(types::pdu_session_type, type_, "Value"); + return c.get(); +} +security_ind_s& pdu_session_res_setup_request_transfer_ies_o::value_c::security_ind() +{ + assert_choice_type(types::security_ind, type_, "Value"); + return c.get(); +} +uint16_t& pdu_session_res_setup_request_transfer_ies_o::value_c::network_instance() +{ + assert_choice_type(types::network_instance, type_, "Value"); + return c.get(); +} +qos_flow_setup_request_list_l& pdu_session_res_setup_request_transfer_ies_o::value_c::qos_flow_setup_request_list() +{ + assert_choice_type(types::qos_flow_setup_request_list, type_, "Value"); + return c.get(); +} +const pdu_session_aggregate_maximum_bit_rate_s& +pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_aggregate_maximum_bit_rate() const +{ + assert_choice_type(types::pdu_session_aggregate_maximum_bit_rate, type_, "Value"); + return c.get(); +} +const up_transport_layer_info_c& pdu_session_res_setup_request_transfer_ies_o::value_c::ul_ngu_up_tnl_info() const +{ + assert_choice_type(types::ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +const up_transport_layer_info_list_l& +pdu_session_res_setup_request_transfer_ies_o::value_c::add_ul_ngu_up_tnl_info() const +{ + assert_choice_type(types::add_ul_ngu_up_tnl_info, type_, "Value"); + return c.get(); +} +const data_forwarding_not_possible_e& +pdu_session_res_setup_request_transfer_ies_o::value_c::data_forwarding_not_possible() const +{ + assert_choice_type(types::data_forwarding_not_possible, type_, "Value"); + return c.get(); +} +const pdu_session_type_e& pdu_session_res_setup_request_transfer_ies_o::value_c::pdu_session_type() const +{ + assert_choice_type(types::pdu_session_type, type_, "Value"); + return c.get(); +} +const security_ind_s& pdu_session_res_setup_request_transfer_ies_o::value_c::security_ind() const +{ + assert_choice_type(types::security_ind, type_, "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_setup_request_transfer_ies_o::value_c::network_instance() const +{ + assert_choice_type(types::network_instance, type_, "Value"); + return c.get(); +} +const qos_flow_setup_request_list_l& +pdu_session_res_setup_request_transfer_ies_o::value_c::qos_flow_setup_request_list() const +{ + assert_choice_type(types::qos_flow_setup_request_list, type_, "Value"); + return c.get(); +} +void pdu_session_res_setup_request_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::amf_cfg_upd_fail: - j.write_fieldname("AMFConfigurationUpdateFailure"); - c.get().to_json(j); + case types::pdu_session_aggregate_maximum_bit_rate: + j.write_fieldname("PDUSessionAggregateMaximumBitRate"); + c.get().to_json(j); break; - case types::ho_prep_fail: - j.write_fieldname("HandoverPreparationFailure"); - c.get().to_json(j); + case types::ul_ngu_up_tnl_info: + j.write_fieldname("UPTransportLayerInformation"); + c.get().to_json(j); break; - case types::ho_fail: - j.write_fieldname("HandoverFailure"); - c.get().to_json(j); + case types::add_ul_ngu_up_tnl_info: + j.start_array("UPTransportLayerInformationList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; - case types::init_context_setup_fail: - j.write_fieldname("InitialContextSetupFailure"); - c.get().to_json(j); + case types::data_forwarding_not_possible: + j.write_str("DataForwardingNotPossible", "data-forwarding-not-possible"); break; - case types::ng_setup_fail: - j.write_fieldname("NGSetupFailure"); - c.get().to_json(j); + case types::pdu_session_type: + j.write_str("PDUSessionType", c.get().to_string()); break; - case types::path_switch_request_fail: - j.write_fieldname("PathSwitchRequestFailure"); - c.get().to_json(j); + case types::security_ind: + j.write_fieldname("SecurityIndication"); + c.get().to_json(j); break; - case types::ran_cfg_upd_fail: - j.write_fieldname("RANConfigurationUpdateFailure"); - c.get().to_json(j); + case types::network_instance: + j.write_int("INTEGER (1..256,...)", c.get()); break; - case types::ue_context_mod_fail: - j.write_fieldname("UEContextModificationFailure"); - c.get().to_json(j); + case types::qos_flow_setup_request_list: + j.start_array("QosFlowSetupRequestList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); } j.end_obj(); } -SRSASN_CODE ngap_elem_procs_o::unsuccessful_outcome_c::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_cfg_upd_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ho_prep_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::ul_ngu_up_tnl_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ho_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::add_ul_ngu_up_tnl_info: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 3, true)); break; - case types::init_context_setup_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::data_forwarding_not_possible: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ng_setup_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::pdu_session_type: + HANDLE_CODE(c.get().pack(bref)); break; - case types::path_switch_request_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::security_ind: + HANDLE_CODE(c.get().pack(bref)); break; - case types::ran_cfg_upd_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::network_instance: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::ue_context_mod_fail: - HANDLE_CODE(c.get().pack(bref)); + case types::qos_flow_setup_request_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ngap_elem_procs_o::unsuccessful_outcome_c::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::unpack(cbit_ref& bref) { varlength_field_unpack_guard varlen_scope(bref, true); switch (type_) { - case types::amf_cfg_upd_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_aggregate_maximum_bit_rate: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ho_prep_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::ul_ngu_up_tnl_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ho_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::add_ul_ngu_up_tnl_info: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 3, true)); break; - case types::init_context_setup_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::data_forwarding_not_possible: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ng_setup_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::pdu_session_type: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::path_switch_request_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::security_ind: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::ran_cfg_upd_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::network_instance: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); break; - case types::ue_context_mod_fail: - HANDLE_CODE(c.get().unpack(bref)); + case types::qos_flow_setup_request_list: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); break; default: - log_invalid_choice_id(type_, "ngap_elem_procs_o::unsuccessful_outcome_c"); + log_invalid_choice_id(type_, "pdu_session_res_setup_request_transfer_ies_o::value_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ngap_elem_procs_o::unsuccessful_outcome_c::types_opts::to_string() const +const char* pdu_session_res_setup_request_transfer_ies_o::value_c::types_opts::to_string() const { - static const char* options[] = {"AMFConfigurationUpdateFailure", - "HandoverPreparationFailure", - "HandoverFailure", - "InitialContextSetupFailure", - "NGSetupFailure", - "PathSwitchRequestFailure", - "RANConfigurationUpdateFailure", - "UEContextModificationFailure"}; - return convert_enum_idx(options, 8, value, "ngap_elem_procs_o::unsuccessful_outcome_c::types"); + static const char* options[] = {"PDUSessionAggregateMaximumBitRate", + "UPTransportLayerInformation", + "UPTransportLayerInformationList", + "DataForwardingNotPossible", + "PDUSessionType", + "SecurityIndication", + "INTEGER (1..256,...)", + "QosFlowSetupRequestList"}; + return convert_enum_idx(options, 8, value, "pdu_session_res_setup_request_transfer_ies_o::value_c::types"); +} +uint8_t pdu_session_res_setup_request_transfer_ies_o::value_c::types_opts::to_number() const +{ + if (value == network_instance) { + return 1; + } + invalid_enum_number(value, "pdu_session_res_setup_request_transfer_ies_o::value_c::types"); + return 0; } -// InitiatingMessage ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -SRSASN_CODE init_msg_s::pack(bit_ref& bref) const +template struct asn1::ngap_nr::protocol_ie_field_s; + +pdu_session_res_setup_request_transfer_ies_container::pdu_session_res_setup_request_transfer_ies_container() : + pdu_session_aggregate_maximum_bit_rate(130, crit_e::reject), + ul_ngu_up_tnl_info(139, crit_e::reject), + add_ul_ngu_up_tnl_info(126, crit_e::reject), + data_forwarding_not_possible(127, crit_e::reject), + pdu_session_type(134, crit_e::reject), + security_ind(138, crit_e::reject), + network_instance(129, crit_e::reject), + qos_flow_setup_request_list(136, crit_e::reject) +{} +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); - warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); - HANDLE_CODE(crit.pack(bref)); - HANDLE_CODE(value.pack(bref)); + uint32_t nof_ies = 3; + nof_ies += pdu_session_aggregate_maximum_bit_rate_present ? 1 : 0; + nof_ies += add_ul_ngu_up_tnl_info_present ? 1 : 0; + nof_ies += data_forwarding_not_possible_present ? 1 : 0; + nof_ies += security_ind_present ? 1 : 0; + nof_ies += network_instance_present ? 1 : 0; + pack_length(bref, nof_ies, 0u, 65535u, true); + + if (pdu_session_aggregate_maximum_bit_rate_present) { + HANDLE_CODE(pdu_session_aggregate_maximum_bit_rate.pack(bref)); + } + HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); + if (add_ul_ngu_up_tnl_info_present) { + HANDLE_CODE(add_ul_ngu_up_tnl_info.pack(bref)); + } + if (data_forwarding_not_possible_present) { + HANDLE_CODE(data_forwarding_not_possible.pack(bref)); + } + HANDLE_CODE(pdu_session_type.pack(bref)); + if (security_ind_present) { + HANDLE_CODE(security_ind.pack(bref)); + } + if (network_instance_present) { + HANDLE_CODE(network_instance.pack(bref)); + } + HANDLE_CODE(qos_flow_setup_request_list.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE init_msg_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(crit.unpack(bref)); - value = ngap_elem_procs_o::get_init_msg(proc_code); - HANDLE_CODE(value.unpack(bref)); + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 0u, 65535u, true); + + uint32_t nof_mandatory_ies = 3; + + for (; nof_ies > 0; --nof_ies) { + protocol_ie_field_s c; + HANDLE_CODE(c.unpack(bref)); + switch (c.id) { + case 130: + pdu_session_aggregate_maximum_bit_rate_present = true; + pdu_session_aggregate_maximum_bit_rate.id = c.id; + pdu_session_aggregate_maximum_bit_rate.crit = c.crit; + pdu_session_aggregate_maximum_bit_rate.value = c.value.pdu_session_aggregate_maximum_bit_rate(); + break; + case 139: + nof_mandatory_ies--; + ul_ngu_up_tnl_info.id = c.id; + ul_ngu_up_tnl_info.crit = c.crit; + ul_ngu_up_tnl_info.value = c.value.ul_ngu_up_tnl_info(); + break; + case 126: + add_ul_ngu_up_tnl_info_present = true; + add_ul_ngu_up_tnl_info.id = c.id; + add_ul_ngu_up_tnl_info.crit = c.crit; + add_ul_ngu_up_tnl_info.value = c.value.add_ul_ngu_up_tnl_info(); + break; + case 127: + data_forwarding_not_possible_present = true; + data_forwarding_not_possible.id = c.id; + data_forwarding_not_possible.crit = c.crit; + data_forwarding_not_possible.value = c.value.data_forwarding_not_possible(); + break; + case 134: + nof_mandatory_ies--; + pdu_session_type.id = c.id; + pdu_session_type.crit = c.crit; + pdu_session_type.value = c.value.pdu_session_type(); + break; + case 138: + security_ind_present = true; + security_ind.id = c.id; + security_ind.crit = c.crit; + security_ind.value = c.value.security_ind(); + break; + case 129: + network_instance_present = true; + network_instance.id = c.id; + network_instance.crit = c.crit; + network_instance.value = c.value.network_instance(); + break; + case 136: + nof_mandatory_ies--; + qos_flow_setup_request_list.id = c.id; + qos_flow_setup_request_list.crit = c.crit; + qos_flow_setup_request_list.value = c.value.qos_flow_setup_request_list(); + break; + default: + asn1::log_error("Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + asn1::log_error("Mandatory fields are missing\n"); + return SRSASN_ERROR_DECODE_FAIL; + } return SRSASN_SUCCESS; } -void init_msg_s::to_json(json_writer& j) const +void pdu_session_res_setup_request_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); - j.write_int("procedureCode", proc_code); - j.write_str("criticality", crit.to_string()); - j.write_fieldname("value"); - value.to_json(j); + if (pdu_session_aggregate_maximum_bit_rate_present) { + j.write_fieldname(""); + pdu_session_aggregate_maximum_bit_rate.to_json(j); + } + j.write_fieldname(""); + ul_ngu_up_tnl_info.to_json(j); + if (add_ul_ngu_up_tnl_info_present) { + j.write_fieldname(""); + add_ul_ngu_up_tnl_info.to_json(j); + } + if (data_forwarding_not_possible_present) { + j.write_fieldname(""); + data_forwarding_not_possible.to_json(j); + } + j.write_fieldname(""); + pdu_session_type.to_json(j); + if (security_ind_present) { + j.write_fieldname(""); + security_ind.to_json(j); + } + if (network_instance_present) { + j.write_fieldname(""); + network_instance.to_json(j); + } + j.write_fieldname(""); + qos_flow_setup_request_list.to_json(j); j.end_obj(); } -bool init_msg_s::load_info_obj(const uint16_t& proc_code_) + +// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_request_transfer_s::pack(bit_ref& bref) const { - if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { - return false; - } - proc_code = proc_code_; - crit = ngap_elem_procs_o::get_crit(proc_code); - value = ngap_elem_procs_o::get_init_msg(proc_code); - return value.type().value != ngap_elem_procs_o::init_msg_c::types_opts::nulltype; + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; } +SRSASN_CODE pdu_session_res_setup_request_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); -// LastVisitedNGRANCellInformation ::= SEQUENCE -SRSASN_CODE last_visited_ngran_cell_info_s::pack(bit_ref& bref) const + return SRSASN_SUCCESS; +} +void pdu_session_res_setup_request_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + +// PDUSessionResourceSetupResponseTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_resp_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(time_ue_stayed_in_cell_enhanced_granularity_present, 1)); - HANDLE_CODE(bref.pack(hocause_value_present, 1)); + HANDLE_CODE(bref.pack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(security_result_present, 1)); + HANDLE_CODE(bref.pack(qos_flow_failed_to_setup_list_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(global_cell_id.pack(bref)); - HANDLE_CODE(cell_type.pack(bref)); - HANDLE_CODE(pack_integer(bref, time_ue_stayed_in_cell, (uint16_t)0u, (uint16_t)4095u, false, true)); - if (time_ue_stayed_in_cell_enhanced_granularity_present) { - HANDLE_CODE( - pack_integer(bref, time_ue_stayed_in_cell_enhanced_granularity, (uint16_t)0u, (uint16_t)40950u, false, true)); + HANDLE_CODE(dlqos_flow_per_tnl_info.pack(bref)); + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, add_dl_qos_flow_per_tnl_info, 1, 3, true)); } - if (hocause_value_present) { - HANDLE_CODE(hocause_value.pack(bref)); + if (security_result_present) { + HANDLE_CODE(security_result.pack(bref)); + } + if (qos_flow_failed_to_setup_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_failed_to_setup_list, 1, 64, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -51655,22 +52101,23 @@ SRSASN_CODE last_visited_ngran_cell_info_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE last_visited_ngran_cell_info_s::unpack(cbit_ref& bref) +SRSASN_CODE pdu_session_res_setup_resp_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(time_ue_stayed_in_cell_enhanced_granularity_present, 1)); - HANDLE_CODE(bref.unpack(hocause_value_present, 1)); + HANDLE_CODE(bref.unpack(add_dl_qos_flow_per_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(security_result_present, 1)); + HANDLE_CODE(bref.unpack(qos_flow_failed_to_setup_list_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(global_cell_id.unpack(bref)); - HANDLE_CODE(cell_type.unpack(bref)); - HANDLE_CODE(unpack_integer(time_ue_stayed_in_cell, bref, (uint16_t)0u, (uint16_t)4095u, false, true)); - if (time_ue_stayed_in_cell_enhanced_granularity_present) { - HANDLE_CODE( - unpack_integer(time_ue_stayed_in_cell_enhanced_granularity, bref, (uint16_t)0u, (uint16_t)40950u, false, true)); + HANDLE_CODE(dlqos_flow_per_tnl_info.unpack(bref)); + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(add_dl_qos_flow_per_tnl_info, bref, 1, 3, true)); } - if (hocause_value_present) { - HANDLE_CODE(hocause_value.unpack(bref)); + if (security_result_present) { + HANDLE_CODE(security_result.unpack(bref)); + } + if (qos_flow_failed_to_setup_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_failed_to_setup_list, bref, 1, 64, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -51678,20 +52125,28 @@ SRSASN_CODE last_visited_ngran_cell_info_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void last_visited_ngran_cell_info_s::to_json(json_writer& j) const +void pdu_session_res_setup_resp_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("globalCellID"); - global_cell_id.to_json(j); - j.write_fieldname("cellType"); - cell_type.to_json(j); - j.write_int("timeUEStayedInCell", time_ue_stayed_in_cell); - if (time_ue_stayed_in_cell_enhanced_granularity_present) { - j.write_int("timeUEStayedInCellEnhancedGranularity", time_ue_stayed_in_cell_enhanced_granularity); + j.write_fieldname("dLQosFlowPerTNLInformation"); + dlqos_flow_per_tnl_info.to_json(j); + if (add_dl_qos_flow_per_tnl_info_present) { + j.start_array("additionalDLQosFlowPerTNLInformation"); + for (const auto& e1 : add_dl_qos_flow_per_tnl_info) { + e1.to_json(j); + } + j.end_array(); } - if (hocause_value_present) { - j.write_fieldname("hOCauseValue"); - hocause_value.to_json(j); + if (security_result_present) { + j.write_fieldname("securityResult"); + security_result.to_json(j); + } + if (qos_flow_failed_to_setup_list_present) { + j.start_array("qosFlowFailedToSetupList"); + for (const auto& e1 : qos_flow_failed_to_setup_list) { + e1.to_json(j); + } + j.end_array(); } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); @@ -51700,498 +52155,356 @@ void last_visited_ngran_cell_info_s::to_json(json_writer& j) const j.end_obj(); } -// LastVisitedCellInformation ::= CHOICE -void last_visited_cell_info_c::destroy_() +// PDUSessionResourceSetupUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_unsuccessful_transfer_s::pack(bit_ref& bref) const { - switch (type_) { - case types::ngran_cell: - c.destroy(); - break; - case types::eutran_cell: - c.destroy >(); - break; - case types::utran_cell: - c.destroy >(); - break; - case types::geran_cell: - c.destroy >(); - break; - case types::choice_exts: - c.destroy >(); - break; - default: - break; + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(crit_diagnostics_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); } + + return SRSASN_SUCCESS; } -void last_visited_cell_info_c::set(types::options e) +SRSASN_CODE pdu_session_res_setup_unsuccessful_transfer_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::ngran_cell: - c.init(); - break; - case types::eutran_cell: - c.init >(); - break; - case types::utran_cell: - c.init >(); - break; - case types::geran_cell: - c.init >(); - break; - case types::choice_exts: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(crit_diagnostics_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (crit_diagnostics_present) { + HANDLE_CODE(crit_diagnostics.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + + return SRSASN_SUCCESS; } -last_visited_cell_info_c::last_visited_cell_info_c(const last_visited_cell_info_c& other) +void pdu_session_res_setup_unsuccessful_transfer_s::to_json(json_writer& j) const { - type_ = other.type(); - switch (type_) { - case types::ngran_cell: - c.init(other.c.get()); - break; - case types::eutran_cell: - c.init(other.c.get >()); - break; - case types::utran_cell: - c.init(other.c.get >()); - break; - case types::geran_cell: - c.init(other.c.get >()); - break; - case types::choice_exts: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname("criticalityDiagnostics"); + crit_diagnostics.to_json(j); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } + j.end_obj(); } -last_visited_cell_info_c& last_visited_cell_info_c::operator=(const last_visited_cell_info_c& other) + +// PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t path_switch_request_ack_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - if (this == &other) { - return *this; + static const uint32_t options[] = {154}; + return map_enum_number(options, 1, idx, "id"); +} +bool path_switch_request_ack_transfer_ext_ies_o::is_id_valid(const uint32_t& id) +{ + return 154 == id; +} +crit_e path_switch_request_ack_transfer_ext_ies_o::get_crit(const uint32_t& id) +{ + if (id == 154) { + return crit_e::ignore; } - set(other.type()); - switch (type_) { - case types::ngran_cell: - c.set(other.c.get()); - break; - case types::eutran_cell: - c.set(other.c.get >()); - break; - case types::utran_cell: - c.set(other.c.get >()); - break; - case types::geran_cell: - c.set(other.c.get >()); - break; - case types::choice_exts: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); + asn1::log_error("The id=%d is not recognized", id); + return {}; +} +path_switch_request_ack_transfer_ext_ies_o::ext_c +path_switch_request_ack_transfer_ext_ies_o::get_ext(const uint32_t& id) +{ + ext_c ret{}; + if (id != 154) { + asn1::log_error("The id=%d is not recognized", id); } - - return *this; + return ret; } -void last_visited_cell_info_c::to_json(json_writer& j) const +presence_e path_switch_request_ack_transfer_ext_ies_o::get_presence(const uint32_t& id) { - j.start_obj(); - switch (type_) { - case types::ngran_cell: - j.write_fieldname("nGRANCell"); - c.get().to_json(j); - break; - case types::eutran_cell: - j.write_str("eUTRANCell", c.get >().to_string()); - break; - case types::utran_cell: - j.write_str("uTRANCell", c.get >().to_string()); - break; - case types::geran_cell: - j.write_str("gERANCell", c.get >().to_string()); - break; - case types::choice_exts: - j.write_fieldname("choice-Extensions"); - c.get >().to_json(j); - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); + if (id == 154) { + return presence_e::optional; } - j.end_obj(); + asn1::log_error("The id=%d is not recognized", id); + return {}; } -SRSASN_CODE last_visited_cell_info_c::pack(bit_ref& bref) const + +// Extension ::= OPEN TYPE +void path_switch_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { - type_.pack(bref); - switch (type_) { - case types::ngran_cell: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::eutran_cell: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::utran_cell: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::geran_cell: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); - return SRSASN_ERROR_ENCODE_FAIL; + j.start_obj(); + j.start_array("UPTransportLayerInformationPairList"); + for (const auto& e1 : c) { + e1.to_json(j); } + j.end_array(); + j.end_obj(); +} +SRSASN_CODE path_switch_request_ack_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); return SRSASN_SUCCESS; } -SRSASN_CODE last_visited_cell_info_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ack_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::ngran_cell: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::eutran_cell: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::utran_cell: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::geran_cell: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::choice_exts: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "last_visited_cell_info_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); return SRSASN_SUCCESS; } -std::string last_visited_cell_info_c::types_opts::to_string() const +const char* path_switch_request_ack_transfer_ext_ies_o::ext_c::types_opts::to_string() const { - static const char* options[] = {"nGRANCell", "eUTRANCell", "uTRANCell", "gERANCell", "choice-Extensions"}; - return convert_enum_idx(options, 5, value, "last_visited_cell_info_c::types"); + static const char* options[] = {"UPTransportLayerInformationPairList"}; + return convert_enum_idx(options, 1, value, "path_switch_request_ack_transfer_ext_ies_o::ext_c::types"); } -// LastVisitedCellItem ::= SEQUENCE -SRSASN_CODE last_visited_cell_item_s::pack(bit_ref& bref) const +// PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE +SRSASN_CODE path_switch_request_ack_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ul_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.pack(security_ind_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(last_visited_cell_info.pack(bref)); + if (ul_ngu_up_tnl_info_present) { + HANDLE_CODE(ul_ngu_up_tnl_info.pack(bref)); + } + if (security_ind_present) { + HANDLE_CODE(security_ind.pack(bref)); + } if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } return SRSASN_SUCCESS; } -SRSASN_CODE last_visited_cell_item_s::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_ack_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ul_ngu_up_tnl_info_present, 1)); + HANDLE_CODE(bref.unpack(security_ind_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(last_visited_cell_info.unpack(bref)); + if (ul_ngu_up_tnl_info_present) { + HANDLE_CODE(ul_ngu_up_tnl_info.unpack(bref)); + } + if (security_ind_present) { + HANDLE_CODE(security_ind.unpack(bref)); + } if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); } return SRSASN_SUCCESS; } -void last_visited_cell_item_s::to_json(json_writer& j) const +void path_switch_request_ack_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("lastVisitedCellInformation"); - last_visited_cell_info.to_json(j); + if (ul_ngu_up_tnl_info_present) { + j.write_fieldname("uL-NGU-UP-TNLInformation"); + ul_ngu_up_tnl_info.to_json(j); + } + if (security_ind_present) { + j.write_fieldname("securityIndication"); + security_ind.to_json(j); + } if (ie_exts_present) { j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); } j.end_obj(); } -// SuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -SRSASN_CODE successful_outcome_s::pack(bit_ref& bref) const +// PathSwitchRequestSetupFailedTransfer ::= SEQUENCE +SRSASN_CODE path_switch_request_setup_failed_transfer_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); - warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); - HANDLE_CODE(crit.pack(bref)); - HANDLE_CODE(value.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE successful_outcome_s::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_setup_failed_transfer_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(crit.unpack(bref)); - value = ngap_elem_procs_o::get_successful_outcome(proc_code); - HANDLE_CODE(value.unpack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } return SRSASN_SUCCESS; } -void successful_outcome_s::to_json(json_writer& j) const +void path_switch_request_setup_failed_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("procedureCode", proc_code); - j.write_str("criticality", crit.to_string()); - j.write_fieldname("value"); - value.to_json(j); - j.end_obj(); -} -bool successful_outcome_s::load_info_obj(const uint16_t& proc_code_) -{ - if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { - return false; + j.write_fieldname("cause"); + cause.to_json(j); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); } - proc_code = proc_code_; - crit = ngap_elem_procs_o::get_crit(proc_code); - value = ngap_elem_procs_o::get_successful_outcome(proc_code); - return value.type().value != ngap_elem_procs_o::successful_outcome_c::types_opts::nulltype; + j.end_obj(); } -// UnsuccessfulOutcome ::= SEQUENCE{{NGAP-ELEMENTARY-PROCEDURE}} -SRSASN_CODE unsuccessful_outcome_s::pack(bit_ref& bref) const +// QosFlowAcceptedItem ::= SEQUENCE +SRSASN_CODE qos_flow_accepted_item_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true)); - warn_assert(crit != ngap_elem_procs_o::get_crit(proc_code), __func__, __LINE__); - HANDLE_CODE(crit.pack(bref)); - HANDLE_CODE(value.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE unsuccessful_outcome_s::unpack(cbit_ref& bref) +SRSASN_CODE qos_flow_accepted_item_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(crit.unpack(bref)); - value = ngap_elem_procs_o::get_unsuccessful_outcome(proc_code); - HANDLE_CODE(value.unpack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } return SRSASN_SUCCESS; } -void unsuccessful_outcome_s::to_json(json_writer& j) const +void qos_flow_accepted_item_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("procedureCode", proc_code); - j.write_str("criticality", crit.to_string()); - j.write_fieldname("value"); - value.to_json(j); + j.write_int("qosFlowIdentifier", qos_flow_id); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } j.end_obj(); } -bool unsuccessful_outcome_s::load_info_obj(const uint16_t& proc_code_) + +// DL-NGU-TNLInformationReused ::= ENUMERATED +const char* dl_ngu_tnl_info_reused_opts::to_string() const { - if (not ngap_elem_procs_o::is_proc_code_valid(proc_code_)) { - return false; - } - proc_code = proc_code_; - crit = ngap_elem_procs_o::get_crit(proc_code); - value = ngap_elem_procs_o::get_unsuccessful_outcome(proc_code); - return value.type().value != ngap_elem_procs_o::unsuccessful_outcome_c::types_opts::nulltype; + static const char* options[] = {"true"}; + return convert_enum_idx(options, 1, value, "dl_ngu_tnl_info_reused_e"); } -// NGAP-PDU ::= CHOICE -void ngap_pdu_c::destroy_() +// PathSwitchRequestTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION +uint32_t path_switch_request_transfer_ext_ies_o::idx_to_id(uint32_t idx) { - switch (type_) { - case types::init_msg: - c.destroy(); - break; - case types::successful_outcome: - c.destroy(); - break; - case types::unsuccessful_outcome: - c.destroy(); - break; - default: - break; - } + static const uint32_t options[] = {155}; + return map_enum_number(options, 1, idx, "id"); } -void ngap_pdu_c::set(types::options e) +bool path_switch_request_transfer_ext_ies_o::is_id_valid(const uint32_t& id) { - destroy_(); - type_ = e; - switch (type_) { - case types::init_msg: - c.init(); - break; - case types::successful_outcome: - c.init(); - break; - case types::unsuccessful_outcome: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); - } + return 155 == id; } -ngap_pdu_c::ngap_pdu_c(const ngap_pdu_c& other) +crit_e path_switch_request_transfer_ext_ies_o::get_crit(const uint32_t& id) { - type_ = other.type(); - switch (type_) { - case types::init_msg: - c.init(other.c.get()); - break; - case types::successful_outcome: - c.init(other.c.get()); - break; - case types::unsuccessful_outcome: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); + if (id == 155) { + return crit_e::ignore; } + asn1::log_error("The id=%d is not recognized", id); + return {}; } -ngap_pdu_c& ngap_pdu_c::operator=(const ngap_pdu_c& other) +path_switch_request_transfer_ext_ies_o::ext_c path_switch_request_transfer_ext_ies_o::get_ext(const uint32_t& id) { - if (this == &other) { - return *this; + ext_c ret{}; + if (id != 155) { + asn1::log_error("The id=%d is not recognized", id); } - set(other.type()); - switch (type_) { - case types::init_msg: - c.set(other.c.get()); - break; - case types::successful_outcome: - c.set(other.c.get()); - break; - case types::unsuccessful_outcome: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); + return ret; +} +presence_e path_switch_request_transfer_ext_ies_o::get_presence(const uint32_t& id) +{ + if (id == 155) { + return presence_e::optional; } - - return *this; + asn1::log_error("The id=%d is not recognized", id); + return {}; } -void ngap_pdu_c::to_json(json_writer& j) const + +// Extension ::= OPEN TYPE +void path_switch_request_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::init_msg: - j.write_fieldname("initiatingMessage"); - c.get().to_json(j); - break; - case types::successful_outcome: - j.write_fieldname("successfulOutcome"); - c.get().to_json(j); - break; - case types::unsuccessful_outcome: - j.write_fieldname("unsuccessfulOutcome"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); + j.start_array("QosFlowPerTNLInformationList"); + for (const auto& e1 : c) { + e1.to_json(j); } + j.end_array(); j.end_obj(); } -SRSASN_CODE ngap_pdu_c::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_transfer_ext_ies_o::ext_c::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::init_msg: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::successful_outcome: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::unsuccessful_outcome: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + varlength_field_pack_guard varlen_scope(bref, true); + HANDLE_CODE(pack_dyn_seq_of(bref, c, 1, 3, true)); return SRSASN_SUCCESS; } -SRSASN_CODE ngap_pdu_c::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::init_msg: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::successful_outcome: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::unsuccessful_outcome: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "ngap_pdu_c"); - return SRSASN_ERROR_DECODE_FAIL; - } + varlength_field_unpack_guard varlen_scope(bref, true); + HANDLE_CODE(unpack_dyn_seq_of(c, bref, 1, 3, true)); return SRSASN_SUCCESS; } -std::string ngap_pdu_c::types_opts::to_string() const +const char* path_switch_request_transfer_ext_ies_o::ext_c::types_opts::to_string() const { - static const char* options[] = {"initiatingMessage", "successfulOutcome", "unsuccessfulOutcome"}; - return convert_enum_idx(options, 3, value, "ngap_pdu_c::types"); + static const char* options[] = {"QosFlowPerTNLInformationList"}; + return convert_enum_idx(options, 1, value, "path_switch_request_transfer_ext_ies_o::ext_c::types"); } -// QosFlowInformationItem ::= SEQUENCE -SRSASN_CODE qos_flow_info_item_s::pack(bit_ref& bref) const +// UserPlaneSecurityInformation ::= SEQUENCE +SRSASN_CODE user_plane_security_info_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dlforwarding_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); - if (dlforwarding_present) { - HANDLE_CODE(dlforwarding.pack(bref)); - } + HANDLE_CODE(security_result.pack(bref)); + HANDLE_CODE(security_ind.pack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE qos_flow_info_item_s::unpack(cbit_ref& bref) +SRSASN_CODE user_plane_security_info_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dlforwarding_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); - if (dlforwarding_present) { - HANDLE_CODE(dlforwarding.unpack(bref)); - } + HANDLE_CODE(security_result.unpack(bref)); + HANDLE_CODE(security_ind.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void qos_flow_info_item_s::to_json(json_writer& j) const +void user_plane_security_info_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("qosFlowIdentifier", qos_flow_id); - if (dlforwarding_present) { - j.write_str("dLForwarding", "dl-forwarding-proposed"); - } + j.write_fieldname("securityResult"); + security_result.to_json(j); + j.write_fieldname("securityIndication"); + security_ind.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -52199,57 +52512,102 @@ void qos_flow_info_item_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceInformationItem ::= SEQUENCE -SRSASN_CODE pdu_session_res_info_item_s::pack(bit_ref& bref) const +// PathSwitchRequestTransfer ::= SEQUENCE +SRSASN_CODE path_switch_request_transfer_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(drbs_to_qos_flows_map_list_present, 1)); + HANDLE_CODE(bref.pack(dl_ngu_tnl_info_reused_present, 1)); + HANDLE_CODE(bref.pack(user_plane_security_info_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_info_list, 1, 64, true)); - if (drbs_to_qos_flows_map_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, drbs_to_qos_flows_map_list, 1, 32, true)); + HANDLE_CODE(dl_ngu_up_tnl_info.pack(bref)); + if (dl_ngu_tnl_info_reused_present) { + HANDLE_CODE(dl_ngu_tnl_info_reused.pack(bref)); + } + if (user_plane_security_info_present) { + HANDLE_CODE(user_plane_security_info.pack(bref)); } + HANDLE_CODE(pack_dyn_seq_of(bref, qos_flow_accepted_list, 1, 64, true)); if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, ie_exts, 1, 65535, true)); } return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_info_item_s::unpack(cbit_ref& bref) +SRSASN_CODE path_switch_request_transfer_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(drbs_to_qos_flows_map_list_present, 1)); + HANDLE_CODE(bref.unpack(dl_ngu_tnl_info_reused_present, 1)); + HANDLE_CODE(bref.unpack(user_plane_security_info_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(pdu_session_id, bref, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(unpack_dyn_seq_of(qos_flow_info_list, bref, 1, 64, true)); - if (drbs_to_qos_flows_map_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(drbs_to_qos_flows_map_list, bref, 1, 32, true)); + HANDLE_CODE(dl_ngu_up_tnl_info.unpack(bref)); + if (dl_ngu_tnl_info_reused_present) { + HANDLE_CODE(dl_ngu_tnl_info_reused.unpack(bref)); } + if (user_plane_security_info_present) { + HANDLE_CODE(user_plane_security_info.unpack(bref)); + } + HANDLE_CODE(unpack_dyn_seq_of(qos_flow_accepted_list, bref, 1, 64, true)); if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(ie_exts, bref, 1, 65535, true)); } return SRSASN_SUCCESS; } -void pdu_session_res_info_item_s::to_json(json_writer& j) const +void path_switch_request_transfer_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("pDUSessionID", pdu_session_id); - j.start_array("qosFlowInformationList"); - for (const auto& e1 : qos_flow_info_list) { + j.write_fieldname("dL-NGU-UP-TNLInformation"); + dl_ngu_up_tnl_info.to_json(j); + if (dl_ngu_tnl_info_reused_present) { + j.write_str("dL-NGU-TNLInformationReused", "true"); + } + if (user_plane_security_info_present) { + j.write_fieldname("userPlaneSecurityInformation"); + user_plane_security_info.to_json(j); + } + j.start_array("qosFlowAcceptedList"); + for (const auto& e1 : qos_flow_accepted_list) { e1.to_json(j); } j.end_array(); - if (drbs_to_qos_flows_map_list_present) { - j.start_array("dRBsToQosFlowsMappingList"); - for (const auto& e1 : drbs_to_qos_flows_map_list) { - e1.to_json(j); - } - j.end_array(); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + } + j.end_obj(); +} + +// PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE +SRSASN_CODE path_switch_request_unsuccessful_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(cause.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE path_switch_request_unsuccessful_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(cause.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); } + + return SRSASN_SUCCESS; +} +void path_switch_request_unsuccessful_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("cause"); + cause.to_json(j); if (ie_exts_present) { j.write_fieldname("iE-Extensions"); ie_exts.to_json(j); @@ -52344,6 +52702,51 @@ void qos_flow_setup_resp_item_su_res_s::to_json(json_writer& j) const j.end_obj(); } +// SecondaryRATDataUsageReportTransfer ::= SEQUENCE +SRSASN_CODE secondary_rat_data_usage_report_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(secondary_ratusage_info_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + if (secondary_ratusage_info_present) { + HANDLE_CODE(secondary_ratusage_info.pack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE secondary_rat_data_usage_report_transfer_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(secondary_ratusage_info_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + if (secondary_ratusage_info_present) { + HANDLE_CODE(secondary_ratusage_info.unpack(bref)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void secondary_rat_data_usage_report_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (secondary_ratusage_info_present) { + j.write_fieldname("secondaryRATUsageInformation"); + secondary_ratusage_info.to_json(j); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::pack(bit_ref& bref) const { diff --git a/lib/src/asn1/rrc.cc b/lib/src/asn1/rrc.cc index 23b056be3..150f5971f 100644 --- a/lib/src/asn1/rrc.cc +++ b/lib/src/asn1/rrc.cc @@ -58,7 +58,7 @@ void mib_mbms_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string mib_mbms_r14_s::dl_bw_mbms_r14_opts::to_string() const +const char* mib_mbms_r14_s::dl_bw_mbms_r14_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "mib_mbms_r14_s::dl_bw_mbms_r14_e_"); @@ -98,19 +98,19 @@ void bcch_bch_msg_mbms_s::to_json(json_writer& j) const j.end_array(); } -std::string plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::types_opts::to_string() const +const char* plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::types_opts::to_string() const { static const char* options[] = {"plmn-Identity-r15", "plmn-Index-r15"}; return convert_enum_idx(options, 2, value, "plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::types"); } -std::string cell_id_minus5_gc_r15_c::types_opts::to_string() const +const char* cell_id_minus5_gc_r15_c::types_opts::to_string() const { static const char* options[] = {"cellIdentity-r15", "cellId-Index-r15"}; return convert_enum_idx(options, 2, value, "cell_id_minus5_gc_r15_c::types"); } -std::string sl_tx_pwr_r14_c::types_opts::to_string() const +const char* sl_tx_pwr_r14_c::types_opts::to_string() const { static const char* options[] = {"minusinfinity-r14", "txPower-r14"}; return convert_enum_idx(options, 2, value, "sl_tx_pwr_r14_c::types"); @@ -121,19 +121,19 @@ int8_t sl_tx_pwr_r14_c::types_opts::to_number() const return map_enum_number(options, 1, value, "sl_tx_pwr_r14_c::types"); } -std::string sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types_opts::to_string() const +const char* sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types_opts::to_string() const { static const char* options[] = {"crs-IntfMitigEnabled", "crs-IntfMitigNumPRBs"}; return convert_enum_idx(options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types"); } -std::string sl_offset_ind_r12_c::types_opts::to_string() const +const char* sl_offset_ind_r12_c::types_opts::to_string() const { static const char* options[] = {"small-r12", "large-r12"}; return convert_enum_idx(options, 2, value, "sl_offset_ind_r12_c::types"); } -std::string sf_bitmap_sl_r12_c::types_opts::to_string() const +const char* sf_bitmap_sl_r12_c::types_opts::to_string() const { static const char* options[] = {"bs4-r12", "bs8-r12", "bs12-r12", "bs16-r12", "bs30-r12", "bs40-r12", "bs42-r12"}; return convert_enum_idx(options, 7, value, "sf_bitmap_sl_r12_c::types"); @@ -144,7 +144,7 @@ uint8_t sf_bitmap_sl_r12_c::types_opts::to_number() const return map_enum_number(options, 7, value, "sf_bitmap_sl_r12_c::types"); } -std::string sf_bitmap_sl_r14_c::types_opts::to_string() const +const char* sf_bitmap_sl_r14_c::types_opts::to_string() const { static const char* options[] = { "bs10-r14", "bs16-r14", "bs20-r14", "bs30-r14", "bs40-r14", "bs50-r14", "bs60-r14", "bs100-r14"}; @@ -156,13 +156,13 @@ uint8_t sf_bitmap_sl_r14_c::types_opts::to_number() const return map_enum_number(options, 8, value, "sf_bitmap_sl_r14_c::types"); } -std::string setup_opts::to_string() const +const char* setup_opts::to_string() const { static const char* options[] = {"release", "setup"}; return convert_enum_idx(options, 2, value, "setup_e"); } -std::string +const char* sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::types_opts::to_string() const { static const char* options[] = {"rsrpBased-r12", "random-r12"}; @@ -170,20 +170,20 @@ sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_ options, 2, value, "sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::types"); } -std::string plmn_id_info2_r12_c::types_opts::to_string() const +const char* plmn_id_info2_r12_c::types_opts::to_string() const { static const char* options[] = {"plmn-Index-r12", "plmnIdentity-r12"}; return convert_enum_idx(options, 2, value, "plmn_id_info2_r12_c::types"); } -std::string sl_disc_tx_res_inter_freq_r13_c::types_opts::to_string() const +const char* sl_disc_tx_res_inter_freq_r13_c::types_opts::to_string() const { static const char* options[] = { "acquireSI-FromCarrier-r13", "discTxPoolCommon-r13", "requestDedicated-r13", "noTxOnCarrier-r13"}; return convert_enum_idx(options, 4, value, "sl_disc_tx_res_inter_freq_r13_c::types"); } -std::string +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; @@ -194,7 +194,7 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::types"); } -std::string +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; @@ -205,19 +205,19 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::types"); } -std::string sys_time_info_cdma2000_s::cdma_sys_time_c_::types_opts::to_string() const +const char* sys_time_info_cdma2000_s::cdma_sys_time_c_::types_opts::to_string() const { static const char* options[] = {"synchronousSystemTime", "asynchronousSystemTime"}; return convert_enum_idx(options, 2, value, "sys_time_info_cdma2000_s::cdma_sys_time_c_::types"); } -std::string carrier_freqs_geran_s::following_arfcns_c_::types_opts::to_string() const +const char* carrier_freqs_geran_s::following_arfcns_c_::types_opts::to_string() const { static const char* options[] = {"explicitListOfARFCNs", "equallySpacedARFCNs", "variableBitMapOfARFCNs"}; return convert_enum_idx(options, 3, value, "carrier_freqs_geran_s::following_arfcns_c_::types"); } -std::string mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::types_opts::to_string() const +const char* mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::types_opts::to_string() const { static const char* options[] = {"sf5-r15", "sf10-r15", "sf20-r15", "sf40-r15", "sf80-r15", "sf160-r15"}; return convert_enum_idx(options, 6, value, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::types"); @@ -228,25 +228,25 @@ uint8_t mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::types_opts::to_number() return map_enum_number(options, 6, value, "mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::types"); } -std::string params_cdma2000_r11_s::sys_time_info_r11_c_::types_opts::to_string() const +const char* params_cdma2000_r11_s::sys_time_info_r11_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "params_cdma2000_r11_s::sys_time_info_r11_c_::types"); } -std::string sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::types_opts::to_string() const +const char* sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::types_opts::to_string() const { static const char* options[] = {"additionalSpectrumEmission-r14", "additionalSpectrumEmission-v1440"}; return convert_enum_idx(options, 2, value, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::types"); } -std::string ssb_to_measure_r15_c::types_opts::to_string() const +const char* ssb_to_measure_r15_c::types_opts::to_string() const { static const char* options[] = {"shortBitmap-r15", "mediumBitmap-r15", "longBitmap-r15"}; return convert_enum_idx(options, 3, value, "ssb_to_measure_r15_c::types"); } -std::string +const char* sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::types_opts::to_string() const { @@ -269,31 +269,31 @@ sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_b "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::types"); } -std::string freq_hop_params_r13_s::dummy2_c_::types_opts::to_string() const +const char* freq_hop_params_r13_s::dummy2_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; return convert_enum_idx(options, 2, value, "freq_hop_params_r13_s::dummy2_c_::types"); } -std::string freq_hop_params_r13_s::dummy3_c_::types_opts::to_string() const +const char* freq_hop_params_r13_s::dummy3_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; return convert_enum_idx(options, 2, value, "freq_hop_params_r13_s::dummy3_c_::types"); } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::types_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; return convert_enum_idx(options, 2, value, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::types"); } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::types_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-r13", "interval-TDD-r13"}; return convert_enum_idx(options, 2, value, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::types"); } -std::string mbsfn_sf_cfg_s::sf_alloc_c_::types_opts::to_string() const +const char* mbsfn_sf_cfg_s::sf_alloc_c_::types_opts::to_string() const { static const char* options[] = {"oneFrame", "fourFrames"}; return convert_enum_idx(options, 2, value, "mbsfn_sf_cfg_s::sf_alloc_c_::types"); @@ -304,7 +304,7 @@ uint8_t mbsfn_sf_cfg_s::sf_alloc_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "mbsfn_sf_cfg_s::sf_alloc_c_::types"); } -std::string mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::types_opts::to_string() const +const char* mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::types_opts::to_string() const { static const char* options[] = {"oneFrame-v1430", "fourFrames-v1430"}; return convert_enum_idx(options, 2, value, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::types"); @@ -315,25 +315,25 @@ uint8_t mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::types"); } -std::string prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const +const char* prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r13", "tdd-r13"}; return convert_enum_idx(options, 2, value, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types"); } -std::string sib8_per_plmn_r11_s::params_cdma2000_r11_c_::types_opts::to_string() const +const char* sib8_per_plmn_r11_s::params_cdma2000_r11_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_::types"); } -std::string uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::types_opts::to_string() const +const char* uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::types_opts::to_string() const { static const char* options[] = {"uac-ImplicitAC-BarringList-r15", "uac-ExplicitAC-BarringList-r15"}; return convert_enum_idx(options, 2, value, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::types"); } -std::string sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const +const char* sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -360,26 +360,26 @@ uint16_t sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::types return map_enum_number(options, 16, value, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::types"); } -std::string sib_type14_r11_s::eab_param_r11_c_::types_opts::to_string() const +const char* sib_type14_r11_s::eab_param_r11_c_::types_opts::to_string() const { static const char* options[] = {"eab-Common-r11", "eab-PerPLMN-List-r11"}; return convert_enum_idx(options, 2, value, "sib_type14_r11_s::eab_param_r11_c_::types"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::types_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r14", "tdd-r14"}; return convert_enum_idx( options, 2, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::types"); } -std::string sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::types_opts::to_string() const +const char* sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::types_opts::to_string() const { static const char* options[] = {"plmnCommon-r15", "individualPLMNList-r15"}; return convert_enum_idx(options, 2, value, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::types"); } -std::string pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types_opts::to_string() const +const char* pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types_opts::to_string() const { static const char* options[] = { "posSib1-1-r15", "posSib1-2-r15", "posSib1-3-r15", "posSib1-4-r15", "posSib1-5-r15", "posSib1-6-r15", @@ -390,7 +390,7 @@ std::string pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types_opt return convert_enum_idx(options, 27, value, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types"); } -std::string sys_info_r8_ies_s::sib_type_and_info_item_c_::types_opts::to_string() const +const char* sys_info_r8_ies_s::sib_type_and_info_item_c_::types_opts::to_string() const { static const char* options[] = {"sib2", "sib3", "sib4", "sib5", "sib6", "sib7", "sib8", "sib9", "sib10", "sib11", @@ -405,19 +405,19 @@ uint8_t sib_info_item_c::types_opts::to_number() const return map_enum_number(options, 23, value, "sib_info_item_c::types"); } -std::string sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::types_opts::to_string() const +const char* sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::types_opts::to_string() const { static const char* options[] = {"posSystemInformation-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::types"); } -std::string sys_info_s::crit_exts_c_::types_opts::to_string() const +const char* sys_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation-r8", "criticalExtensionsFuture-r15"}; return convert_enum_idx(options, 2, value, "sys_info_s::crit_exts_c_::types"); } -std::string bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation", "systemInformationBlockType1"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_c::c1_c_::types"); @@ -431,7 +431,7 @@ uint8_t bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_number() const return 0; } -std::string bcch_dl_sch_msg_type_c::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_c::types"); @@ -442,7 +442,7 @@ uint8_t bcch_dl_sch_msg_type_c::types_opts::to_number() const return map_enum_number(options, 1, value, "bcch_dl_sch_msg_type_c::types"); } -std::string bcch_dl_sch_msg_type_br_r13_c::c1_c_::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_br_r13_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation-BR-r13", "systemInformationBlockType1-BR-r13"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_br_r13_c::c1_c_::types"); @@ -456,7 +456,7 @@ uint8_t bcch_dl_sch_msg_type_br_r13_c::c1_c_::types_opts::to_number() const return 0; } -std::string bcch_dl_sch_msg_type_br_r13_c::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_br_r13_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_br_r13_c::types"); @@ -472,6 +472,15 @@ void bcch_dl_sch_msg_type_mbms_r14_c::set(types::options e) { type_ = e; } +bcch_dl_sch_msg_type_mbms_r14_c::c1_c_& bcch_dl_sch_msg_type_mbms_r14_c::set_c1() +{ + set(types::c1); + return c; +} +void bcch_dl_sch_msg_type_mbms_r14_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_dl_sch_msg_type_mbms_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -588,6 +597,16 @@ bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::operator=(const bcch_dl_sch_msg_type_mbm return *this; } +sys_info_mbms_r14_s& bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::set_sys_info_mbms_r14() +{ + set(types::sys_info_mbms_r14); + return c.get(); +} +sib_type1_mbms_r14_s& bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::set_sib_type1_mbms_r14() +{ + set(types::sib_type1_mbms_r14); + return c.get(); +} void bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -640,7 +659,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation-MBMS-r14", "systemInformationBlockType1-MBMS-r14"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::types"); @@ -654,7 +673,7 @@ uint8_t bcch_dl_sch_msg_type_mbms_r14_c::c1_c_::types_opts::to_number() const return 0; } -std::string bcch_dl_sch_msg_type_mbms_r14_c::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_mbms_r14_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_mbms_r14_c::types"); @@ -694,7 +713,7 @@ void bcch_dl_sch_msg_mbms_s::to_json(json_writer& j) const j.end_array(); } -std::string p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types_opts::to_string() const +const char* p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types_opts::to_string() const { static const char* options[] = {"nonPrecoded-r13", "beamformedK1a-r13", "beamformedKN-r13"}; return convert_enum_idx(options, 3, value, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types"); @@ -708,38 +727,38 @@ uint8_t p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types_opts::to_number() const return 0; } -std::string csi_rs_cfg_emimo_r13_c::setup_c_::types_opts::to_string() const +const char* csi_rs_cfg_emimo_r13_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"nonPrecoded-r13", "beamformed-r13"}; return convert_enum_idx(options, 2, value, "csi_rs_cfg_emimo_r13_c::setup_c_::types"); } -std::string csi_rs_cfg_emimo_v1430_c::setup_c_::types_opts::to_string() const +const char* csi_rs_cfg_emimo_v1430_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"nonPrecoded-v1430", "beamformed-v1430"}; return convert_enum_idx(options, 2, value, "csi_rs_cfg_emimo_v1430_c::setup_c_::types"); } -std::string csi_rs_cfg_emimo_v1480_c::setup_c_::types_opts::to_string() const +const char* csi_rs_cfg_emimo_v1480_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"nonPrecoded-v1480", "beamformed-v1480"}; return convert_enum_idx(options, 2, value, "csi_rs_cfg_emimo_v1480_c::setup_c_::types"); } -std::string csi_rs_cfg_emimo_v1530_c::setup_c_::types_opts::to_string() const +const char* csi_rs_cfg_emimo_v1530_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"nonPrecoded-v1530"}; return convert_enum_idx(options, 1, value, "csi_rs_cfg_emimo_v1530_c::setup_c_::types"); } -std::string cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::types_opts::to_string() const +const char* cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::types_opts::to_string() const { static const char* options[] = {"widebandCQI-r11", "subbandCQI-r11"}; return convert_enum_idx( options, 2, value, "cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::types"); } -std::string cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::types_opts::to_string() const +const char* cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::types_opts::to_string() const { static const char* options[] = {"oneBit-r14", "twoBit-r14", "threeBit-r14"}; return convert_enum_idx(options, 3, value, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::types"); @@ -750,14 +769,14 @@ uint8_t cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::types_opts::to_numbe return map_enum_number(options, 3, value, "cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::types"); } -std::string cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::types_opts::to_string() const +const char* cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::types_opts::to_string() const { static const char* options[] = {"widebandCQI-r10", "subbandCQI-r10"}; return convert_enum_idx( options, 2, value, "cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::types"); } -std::string meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::types_opts::to_string() const +const char* meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::types_opts::to_string() const { static const char* options[] = {"subframeConfig1-5-r10", "subframeConfig0-r10", "subframeConfig6-r10"}; return convert_enum_idx(options, 3, value, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::types"); @@ -768,19 +787,19 @@ uint8_t meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::types_opts::to_number() co return map_enum_number(options, 3, value, "meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::types"); } -std::string meas_sf_pattern_r10_c::types_opts::to_string() const +const char* meas_sf_pattern_r10_c::types_opts::to_string() const { static const char* options[] = {"subframePatternFDD-r10", "subframePatternTDD-r10"}; return convert_enum_idx(options, 2, value, "meas_sf_pattern_r10_c::types"); } -std::string tpc_idx_c::types_opts::to_string() const +const char* tpc_idx_c::types_opts::to_string() const { static const char* options[] = {"indexOfFormat3", "indexOfFormat3A"}; return convert_enum_idx(options, 2, value, "tpc_idx_c::types"); } -std::string +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r13", "tdd-r13"}; @@ -788,20 +807,20 @@ epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_:: options, 2, value, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::types"); } -std::string enable256_qam_r14_c::setup_c_::types_opts::to_string() const +const char* enable256_qam_r14_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"tpc-SubframeSet-Configured-r14", "tpc-SubframeSet-NotConfigured-r14"}; return convert_enum_idx(options, 2, value, "enable256_qam_r14_c::setup_c_::types"); } -std::string rlc_cfg_r15_s::mode_r15_c_::types_opts::to_string() const +const char* rlc_cfg_r15_s::mode_r15_c_::types_opts::to_string() const { static const char* options[] = { "am-r15", "um-Bi-Directional-r15", "um-Uni-Directional-UL-r15", "um-Uni-Directional-DL-r15"}; return convert_enum_idx(options, 4, value, "rlc_cfg_r15_s::mode_r15_c_::types"); } -std::string ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::types_opts::to_string() const +const char* ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::types_opts::to_string() const { static const char* options[] = {"n2TxAntenna-tm3-r15", "n4TxAntenna-tm3-r15", @@ -819,37 +838,37 @@ std::string ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::type return convert_enum_idx(options, 13, value, "ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::types"); } -std::string cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types_opts::to_string() const +const char* cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types_opts::to_string() const { static const char* options[] = {"widebandCQI", "subbandCQI"}; return convert_enum_idx(options, 2, value, "cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::types"); } -std::string pdcp_cfg_s::hdr_compress_c_::types_opts::to_string() const +const char* pdcp_cfg_s::hdr_compress_c_::types_opts::to_string() const { static const char* options[] = {"notUsed", "rohc"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::hdr_compress_c_::types"); } -std::string pdcp_cfg_s::ul_only_hdr_compress_r14_c_::types_opts::to_string() const +const char* pdcp_cfg_s::ul_only_hdr_compress_r14_c_::types_opts::to_string() const { static const char* options[] = {"notUsed-r14", "rohc-r14"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::ul_only_hdr_compress_r14_c_::types"); } -std::string rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::types_opts::to_string() const +const char* rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::types_opts::to_string() const { static const char* options[] = {"logicalChannelIdentity-r15", "logicalChannelIdentityExt-r15"}; return convert_enum_idx(options, 2, value, "rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::types"); } -std::string rlc_cfg_c::types_opts::to_string() const +const char* rlc_cfg_c::types_opts::to_string() const { static const char* options[] = {"am", "um-Bi-Directional", "um-Uni-Directional-UL", "um-Uni-Directional-DL"}; return convert_enum_idx(options, 4, value, "rlc_cfg_c::types"); } -std::string ant_info_ded_s::codebook_subset_restrict_c_::types_opts::to_string() const +const char* ant_info_ded_s::codebook_subset_restrict_c_::types_opts::to_string() const { static const char* options[] = {"n2TxAntenna-tm3", "n4TxAntenna-tm3", @@ -862,7 +881,7 @@ std::string ant_info_ded_s::codebook_subset_restrict_c_::types_opts::to_string() return convert_enum_idx(options, 8, value, "ant_info_ded_s::codebook_subset_restrict_c_::types"); } -std::string ant_info_ded_v1530_c::setup_c_::types_opts::to_string() const +const char* ant_info_ded_v1530_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"ue-TxAntennaSelection-SRS-1T4R-Config-r15", "ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15"}; @@ -874,7 +893,7 @@ int8_t ant_info_ded_v1530_c::setup_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "ant_info_ded_v1530_c::setup_c_::types"); } -std::string ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::types_opts::to_string() const +const char* ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::types_opts::to_string() const { static const char* options[] = {"n2TxAntenna-tm8-r9", "n4TxAntenna-tm8-r9"}; return convert_enum_idx(options, 2, value, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::types"); @@ -885,7 +904,7 @@ uint8_t ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::types_opts::to_nu return map_enum_number(options, 2, value, "ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::types"); } -std::string drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::types_opts::to_string() const +const char* drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -911,7 +930,7 @@ uint16_t drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::types_opts::to_num return map_enum_number(options, 16, value, "drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::types"); } -std::string drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::types_opts::to_string() const +const char* drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::types_opts::to_string() const { static const char* options[] = {"sf60-v1130", "sf70-v1130"}; return convert_enum_idx(options, 2, value, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::types"); @@ -922,7 +941,7 @@ uint8_t drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::types_opts::to_nu return map_enum_number(options, 2, value, "drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::types"); } -std::string pucch_cfg_ded_r13_s::pucch_format_r13_c_::types_opts::to_string() const +const char* pucch_cfg_ded_r13_s::pucch_format_r13_c_::types_opts::to_string() const { static const char* options[] = {"format3-r13", "channelSelection-r13", "format4-r13", "format5-r13"}; return convert_enum_idx(options, 4, value, "pucch_cfg_ded_r13_s::pucch_format_r13_c_::types"); @@ -942,13 +961,13 @@ uint8_t pucch_cfg_ded_r13_s::pucch_format_r13_c_::types_opts::to_number() const return 0; } -std::string pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::types_opts::to_string() const +const char* pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"modeA", "modeB"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::types"); } -std::string pucch_cfg_ded_v1020_s::pucch_format_r10_c_::types_opts::to_string() const +const char* pucch_cfg_ded_v1020_s::pucch_format_r10_c_::types_opts::to_string() const { static const char* options[] = {"format3-r10", "channelSelection-r10"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_::types"); @@ -959,26 +978,26 @@ uint8_t pucch_cfg_ded_v1020_s::pucch_format_r10_c_::types_opts::to_number() cons return map_enum_number(options, 1, value, "pucch_cfg_ded_v1020_s::pucch_format_r10_c_::types"); } -std::string pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::types_opts::to_string() const +const char* pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::types_opts::to_string() const { static const char* options[] = {"interval-FDD-PUSCH-Enh-r14", "interval-TDD-PUSCH-Enh-r14"}; return convert_enum_idx( options, 2, value, "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::types"); } -std::string srb_to_add_mod_s::rlc_cfg_c_::types_opts::to_string() const +const char* srb_to_add_mod_s::rlc_cfg_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "srb_to_add_mod_s::rlc_cfg_c_::types"); } -std::string srb_to_add_mod_s::lc_ch_cfg_c_::types_opts::to_string() const +const char* srb_to_add_mod_s::lc_ch_cfg_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "srb_to_add_mod_s::lc_ch_cfg_c_::types"); } -std::string mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_string() const +const char* mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"sf5120", "sf10240"}; return convert_enum_idx(options, 2, value, "mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types"); @@ -989,44 +1008,44 @@ uint16_t mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opt return map_enum_number(options, 2, value, "mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types"); } -std::string phys_cfg_ded_s::ant_info_c_::types_opts::to_string() const +const char* phys_cfg_ded_s::ant_info_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_s::ant_info_c_::types"); } -std::string phys_cfg_ded_s::ant_info_r10_c_::types_opts::to_string() const +const char* phys_cfg_ded_s::ant_info_r10_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue-r10", "defaultValue"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_s::ant_info_r10_c_::types"); } -std::string phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::types_opts::to_string() const +const char* phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"cfi-Config-r15", "cfi-PatternConfig-r15"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::types"); } -std::string rr_cfg_ded_s::mac_main_cfg_c_::types_opts::to_string() const +const char* rr_cfg_ded_s::mac_main_cfg_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "rr_cfg_ded_s::mac_main_cfg_c_::types"); } -std::string rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types_opts::to_string() const +const char* rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"crs-IntfMitigEnabled", "crs-IntfMitigNumPRBs"}; return convert_enum_idx(options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types"); } -std::string redirected_carrier_info_r15_ies_c::types_opts::to_string() const +const char* redirected_carrier_info_r15_ies_c::types_opts::to_string() const { static const char* options[] = { "eutra-r15", "geran-r15", "utra-FDD-r15", "cdma2000-HRPD-r15", "cdma2000-1xRTT-r15", "utra-TDD-r15"}; return convert_enum_idx(options, 6, value, "redirected_carrier_info_r15_ies_c::types"); } -std::string c1_or_crit_ext_opts::to_string() const +const char* c1_or_crit_ext_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "c1_or_crit_ext_e"); @@ -1037,39 +1056,39 @@ uint8_t c1_or_crit_ext_opts::to_number() const return map_enum_number(options, 1, value, "c1_or_crit_ext_e"); } -std::string rrc_conn_reest_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_reest_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "rrcConnectionReestablishment-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "rrc_conn_reest_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_reest_reject_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_reest_reject_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentReject-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_reject_s::crit_exts_c_::types"); } -std::string rrc_conn_reject_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_reject_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReject-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rrc_conn_reject_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_setup_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_setup_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "rrcConnectionSetup-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "rrc_conn_setup_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_early_data_complete_r15_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_early_data_complete_r15_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataComplete-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_early_data_complete_r15_s::crit_exts_c_::types"); } -std::string dl_ccch_msg_type_c::c1_c_::types_opts::to_string() const +const char* dl_ccch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishment", "rrcConnectionReestablishmentReject", @@ -1078,13 +1097,13 @@ std::string dl_ccch_msg_type_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 4, value, "dl_ccch_msg_type_c::c1_c_::types"); } -std::string dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const +const char* dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataComplete-r15", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types"); } -std::string dl_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const +const char* dl_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const { static const char* options[] = {"c2", "messageClassExtensionFuture-r15"}; return convert_enum_idx(options, 2, value, "dl_ccch_msg_type_c::msg_class_ext_c_::types"); @@ -1095,7 +1114,7 @@ uint8_t dl_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "dl_ccch_msg_type_c::msg_class_ext_c_::types"); } -std::string dl_ccch_msg_type_c::types_opts::to_string() const +const char* dl_ccch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_ccch_msg_type_c::types"); @@ -1106,44 +1125,44 @@ uint8_t dl_ccch_msg_type_c::types_opts::to_number() const return map_enum_number(options, 1, value, "dl_ccch_msg_type_c::types"); } -std::string cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::types_opts::to_string() const +const char* cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::types_opts::to_string() const { static const char* options[] = {"widebandCQI-r15", "subbandCQI-r15"}; return convert_enum_idx( options, 2, value, "cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::types"); } -std::string lbt_cfg_r14_c::types_opts::to_string() const +const char* lbt_cfg_r14_c::types_opts::to_string() const { static const char* options[] = {"maxEnergyDetectionThreshold-r14", "energyDetectionThresholdOffset-r14"}; return convert_enum_idx(options, 2, value, "lbt_cfg_r14_c::types"); } -std::string cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::types_opts::to_string() const +const char* cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::types_opts::to_string() const { static const char* options[] = {"widebandCQI-Short-r15", "subbandCQI-Short-r15"}; return convert_enum_idx(options, 2, value, "cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::types"); } -std::string cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::types_opts::to_string() const +const char* cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::types_opts::to_string() const { static const char* options[] = {"own-r10", "other-r10"}; return convert_enum_idx(options, 2, value, "cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::types"); } -std::string cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::types_opts::to_string() const +const char* cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::types_opts::to_string() const { static const char* options[] = {"own-r13", "other-r13"}; return convert_enum_idx(options, 2, value, "cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::types"); } -std::string phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::types_opts::to_string() const +const char* phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"cfi-Config-r15", "cfi-PatternConfig-r15"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::types"); } -std::string meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types_opts::to_string() const +const char* meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types_opts::to_string() const { static const char* options[] = {"ms40-r12", "ms80-r12", "ms160-r12"}; return convert_enum_idx(options, 3, value, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types"); @@ -1154,13 +1173,13 @@ uint8_t meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types_opts::to_n return map_enum_number(options, 3, value, "meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types"); } -std::string meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::types_opts::to_string() const +const char* meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::types_opts::to_string() const { static const char* options[] = {"durationFDD-r12", "durationTDD-r12"}; return convert_enum_idx(options, 2, value, "meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::types"); } -std::string meas_gap_cfg_c::setup_s_::gap_offset_c_::types_opts::to_string() const +const char* meas_gap_cfg_c::setup_s_::gap_offset_c_::types_opts::to_string() const { static const char* options[] = {"gp0", "gp1", @@ -1185,19 +1204,19 @@ std::string meas_gap_cfg_c::setup_s_::gap_offset_c_::types_opts::to_string() con return convert_enum_idx(options, 20, value, "meas_gap_cfg_c::setup_s_::gap_offset_c_::types"); } -std::string thres_eutra_c::types_opts::to_string() const +const char* thres_eutra_c::types_opts::to_string() const { static const char* options[] = {"threshold-RSRP", "threshold-RSRQ"}; return convert_enum_idx(options, 2, value, "thres_eutra_c::types"); } -std::string thres_nr_r15_c::types_opts::to_string() const +const char* thres_nr_r15_c::types_opts::to_string() const { static const char* options[] = {"nr-RSRP-r15", "nr-RSRQ-r15", "nr-SINR-r15"}; return convert_enum_idx(options, 3, value, "thres_nr_r15_c::types"); } -std::string thres_utra_c::types_opts::to_string() const +const char* thres_utra_c::types_opts::to_string() const { static const char* options[] = {"utra-RSCP", "utra-EcN0"}; return convert_enum_idx(options, 2, value, "thres_utra_c::types"); @@ -1211,25 +1230,25 @@ uint8_t thres_utra_c::types_opts::to_number() const return 0; } -std::string meas_obj_utra_s::cells_to_add_mod_list_c_::types_opts::to_string() const +const char* meas_obj_utra_s::cells_to_add_mod_list_c_::types_opts::to_string() const { static const char* options[] = {"cellsToAddModListUTRA-FDD", "cellsToAddModListUTRA-TDD"}; return convert_enum_idx(options, 2, value, "meas_obj_utra_s::cells_to_add_mod_list_c_::types"); } -std::string meas_obj_utra_s::cell_for_which_to_report_cgi_c_::types_opts::to_string() const +const char* meas_obj_utra_s::cell_for_which_to_report_cgi_c_::types_opts::to_string() const { static const char* options[] = {"utra-FDD", "utra-TDD"}; return convert_enum_idx(options, 2, value, "meas_obj_utra_s::cell_for_which_to_report_cgi_c_::types"); } -std::string meas_obj_wlan_r13_s::carrier_freq_r13_c_::types_opts::to_string() const +const char* meas_obj_wlan_r13_s::carrier_freq_r13_c_::types_opts::to_string() const { static const char* options[] = {"bandIndicatorListWLAN-r13", "carrierInfoListWLAN-r13"}; return convert_enum_idx(options, 2, value, "meas_obj_wlan_r13_s::carrier_freq_r13_c_::types"); } -std::string eutra_event_s::event_id_c_::types_opts::to_string() const +const char* eutra_event_s::event_id_c_::types_opts::to_string() const { static const char* options[] = {"eventA1", "eventA2", @@ -1246,13 +1265,13 @@ std::string eutra_event_s::event_id_c_::types_opts::to_string() const return convert_enum_idx(options, 12, value, "eutra_event_s::event_id_c_::types"); } -std::string report_cfg_eutra_s::trigger_type_c_::types_opts::to_string() const +const char* report_cfg_eutra_s::trigger_type_c_::types_opts::to_string() const { static const char* options[] = {"event", "periodical"}; return convert_enum_idx(options, 2, value, "report_cfg_eutra_s::trigger_type_c_::types"); } -std::string +const char* report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::types_opts::to_string() const { static const char* options[] = {"b1-ThresholdUTRA", "b1-ThresholdGERAN", "b1-ThresholdCDMA2000"}; @@ -1263,7 +1282,7 @@ report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_ "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::types"); } -std::string +const char* report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::types_opts::to_string() const { static const char* options[] = {"b2-Threshold2UTRA", "b2-Threshold2GERAN", "b2-Threshold2CDMA2000"}; @@ -1274,26 +1293,26 @@ report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_ "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::types"); } -std::string report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::types_opts::to_string() const +const char* report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::types_opts::to_string() const { static const char* options[] = { "eventB1", "eventB2", "eventW1-r13", "eventW2-r13", "eventW3-r13", "eventB1-NR-r15", "eventB2-NR-r15"}; return convert_enum_idx(options, 7, value, "report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::types"); } -std::string report_cfg_inter_rat_s::trigger_type_c_::types_opts::to_string() const +const char* report_cfg_inter_rat_s::trigger_type_c_::types_opts::to_string() const { static const char* options[] = {"event", "periodical"}; return convert_enum_idx(options, 2, value, "report_cfg_inter_rat_s::trigger_type_c_::types"); } -std::string drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types_opts::to_string() const +const char* drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types_opts::to_string() const { static const char* options[] = {"split-r12", "scg-r12"}; return convert_enum_idx(options, 2, value, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types"); } -std::string ip_address_r13_c::types_opts::to_string() const +const char* ip_address_r13_c::types_opts::to_string() const { static const char* options[] = {"ipv4-r13", "ipv6-r13"}; return convert_enum_idx(options, 2, value, "ip_address_r13_c::types"); @@ -1304,7 +1323,7 @@ uint8_t ip_address_r13_c::types_opts::to_number() const return map_enum_number(options, 2, value, "ip_address_r13_c::types"); } -std::string meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_string() const +const char* meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_string() const { static const char* options[] = {"measObjectEUTRA", "measObjectUTRA", @@ -1323,7 +1342,7 @@ uint16_t meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_number() const return 0; } -std::string meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::types_opts::to_string() const +const char* meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::types_opts::to_string() const { static const char* options[] = {"measObjectEUTRA-r13", "measObjectUTRA-r13", @@ -1342,19 +1361,19 @@ uint16_t meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::types_opts::to_number() return 0; } -std::string report_cfg_to_add_mod_s::report_cfg_c_::types_opts::to_string() const +const char* report_cfg_to_add_mod_s::report_cfg_c_::types_opts::to_string() const { static const char* options[] = {"reportConfigEUTRA", "reportConfigInterRAT"}; return convert_enum_idx(options, 2, value, "report_cfg_to_add_mod_s::report_cfg_c_::types"); } -std::string security_cfg_ho_v1530_s::handov_type_v1530_c_::types_opts::to_string() const +const char* security_cfg_ho_v1530_s::handov_type_v1530_c_::types_opts::to_string() const { static const char* options[] = {"intra5GC-r15", "fivegc-ToEPC-r15", "epc-To5GC-r15"}; return convert_enum_idx(options, 3, value, "security_cfg_ho_v1530_s::handov_type_v1530_c_::types"); } -std::string meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::types_opts::to_string() const +const char* meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::types_opts::to_string() const { static const char* options[] = {"rstd0-r15", "rstd1-r15", "rstd2-r15", "rstd3-r15", "rstd4-r15", "rstd5-r15", "rstd6-r15", "rstd7-r15", "rstd8-r15", "rstd9-r15", "rstd10-r15", "rstd11-r15", @@ -1370,7 +1389,7 @@ uint8_t meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::typ options, 21, value, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::types"); } -std::string rach_skip_r14_s::target_ta_r14_c_::types_opts::to_string() const +const char* rach_skip_r14_s::target_ta_r14_c_::types_opts::to_string() const { static const char* options[] = {"ta0-r14", "mcg-PTAG-r14", "scg-PTAG-r14", "mcg-STAG-r14", "scg-STAG-r14"}; return convert_enum_idx(options, 5, value, "rach_skip_r14_s::target_ta_r14_c_::types"); @@ -1381,103 +1400,103 @@ uint8_t rach_skip_r14_s::target_ta_r14_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "rach_skip_r14_s::target_ta_r14_c_::types"); } -std::string sl_disc_tx_ref_carrier_ded_r13_c::types_opts::to_string() const +const char* sl_disc_tx_ref_carrier_ded_r13_c::types_opts::to_string() const { static const char* options[] = {"pCell", "sCell"}; return convert_enum_idx(options, 2, value, "sl_disc_tx_ref_carrier_ded_r13_c::types"); } -std::string sl_disc_tx_res_r13_c::setup_c_::types_opts::to_string() const +const char* sl_disc_tx_res_r13_c::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-r13", "ue-Selected-r13"}; return convert_enum_idx(options, 2, value, "sl_disc_tx_res_r13_c::setup_c_::types"); } -std::string rclwi_cfg_r13_s::cmd_c_::types_opts::to_string() const +const char* rclwi_cfg_r13_s::cmd_c_::types_opts::to_string() const { static const char* options[] = {"steerToWLAN-r13", "steerToLTE-r13"}; return convert_enum_idx(options, 2, value, "rclwi_cfg_r13_s::cmd_c_::types"); } -std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types_opts::to_string() const +const char* sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-r14", "ue-Selected-r14"}; return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types"); } -std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types_opts::to_string() const +const char* sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-v1530", "ue-Selected-v1530"}; return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types"); } -std::string ran_notif_area_info_r15_c::types_opts::to_string() const +const char* ran_notif_area_info_r15_c::types_opts::to_string() const { static const char* options[] = {"cellList-r15", "ran-AreaConfigList-r15"}; return convert_enum_idx(options, 2, value, "ran_notif_area_info_r15_c::types"); } -std::string sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types_opts::to_string() const +const char* sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-r12", "ue-Selected-r12"}; return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types"); } -std::string sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types_opts::to_string() const +const char* sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-v1310", "ue-Selected-v1310"}; return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types"); } -std::string sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types_opts::to_string() const +const char* sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-r12", "ue-Selected-r12"}; return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types"); } -std::string sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types_opts::to_string() const +const char* sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types_opts::to_string() const { static const char* options[] = {"scheduled-r13", "ue-Selected-r13"}; return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types"); } -std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const +const char* prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r13", "tdd-r13"}; return convert_enum_idx(options, 2, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types"); } -std::string rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::types_opts::to_string() const +const char* rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::types_opts::to_string() const { static const char* options[] = {"geran-r9", "utra-FDD-r9", "utra-TDD-r9", "utra-TDD-r10"}; return convert_enum_idx(options, 4, value, "rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::types"); } -std::string si_or_psi_geran_c::types_opts::to_string() const +const char* si_or_psi_geran_c::types_opts::to_string() const { static const char* options[] = {"si", "psi"}; return convert_enum_idx(options, 2, value, "si_or_psi_geran_c::types"); } -std::string area_cfg_r10_c::types_opts::to_string() const +const char* area_cfg_r10_c::types_opts::to_string() const { static const char* options[] = {"cellGlobalIdList-r10", "trackingAreaCodeList-r10"}; return convert_enum_idx(options, 2, value, "area_cfg_r10_c::types"); } -std::string cell_change_order_s::target_rat_type_c_::types_opts::to_string() const +const char* cell_change_order_s::target_rat_type_c_::types_opts::to_string() const { static const char* options[] = {"geran"}; return convert_enum_idx(options, 1, value, "cell_change_order_s::target_rat_type_c_::types"); } -std::string rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::types_opts::to_string() const { static const char* options[] = {"subframeConfigPatternFDD-r10", "subframeConfigPatternTDD-r10"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::types_opts::to_string() const { static const char* options[] = {"nrb6-r10", "nrb15-r10", "nrb25-r10", "nrb50-r10", "nrb75-r10", "nrb100-r10"}; return convert_enum_idx( @@ -1490,7 +1509,7 @@ uint8_t rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_ options, 6, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::types_opts::to_string() const { static const char* options[] = {"nrb6-r10", "nrb15-r10", "nrb25-r10", "nrb50-r10", "nrb75-r10", "nrb100-r10"}; return convert_enum_idx( @@ -1503,7 +1522,7 @@ uint8_t rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c options, 6, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types_opts::to_string() const { static const char* options[] = {"type01-r10", "type2-r10"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types"); @@ -1513,19 +1532,19 @@ float rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types_opts::t static const float options[] = {0.1, 2.0}; return map_enum_number(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types_opts::to_number_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types_opts::to_number_string() const { static const char* options[] = {"0.1", "2"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::types_opts::to_string() const { static const char* options[] = {"interleaving-r10", "noInterleaving-r10"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::types"); } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::types_opts::to_string() const { static const char* options[] = {"channelSelectionMultiplexingBundling", "fallbackForFormat3"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::types"); @@ -1539,51 +1558,51 @@ uint8_t rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::types_opts return 0; } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::types_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::types_opts::to_string() const { static const char* options[] = {"tdd", "fdd"}; return convert_enum_idx(options, 2, value, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::types"); } -std::string redirected_carrier_info_c::types_opts::to_string() const +const char* redirected_carrier_info_c::types_opts::to_string() const { static const char* options[] = { "eutra", "geran", "utra-FDD", "utra-TDD", "cdma2000-HRPD", "cdma2000-1xRTT", "utra-TDD-r10", "nr-r15"}; return convert_enum_idx(options, 8, value, "redirected_carrier_info_c::types"); } -std::string security_cfg_ho_s::handov_type_c_::types_opts::to_string() const +const char* security_cfg_ho_s::handov_type_c_::types_opts::to_string() const { static const char* options[] = {"intraLTE", "interRAT"}; return convert_enum_idx(options, 2, value, "security_cfg_ho_s::handov_type_c_::types"); } -std::string dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::types_opts::to_string() const +const char* dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::types_opts::to_string() const { static const char* options[] = { "dedicatedInfoNAS-r15", "dedicatedInfoCDMA2000-1XRTT-r15", "dedicatedInfoCDMA2000-HRPD-r15"}; return convert_enum_idx(options, 3, value, "dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::types"); } -std::string dl_info_transfer_r8_ies_s::ded_info_type_c_::types_opts::to_string() const +const char* dl_info_transfer_r8_ies_s::ded_info_type_c_::types_opts::to_string() const { static const char* options[] = {"dedicatedInfoNAS", "dedicatedInfoCDMA2000-1XRTT", "dedicatedInfoCDMA2000-HRPD"}; return convert_enum_idx(options, 3, value, "dl_info_transfer_r8_ies_s::ded_info_type_c_::types"); } -std::string mob_from_eutra_cmd_r8_ies_s::purpose_c_::types_opts::to_string() const +const char* mob_from_eutra_cmd_r8_ies_s::purpose_c_::types_opts::to_string() const { static const char* options[] = {"handover", "cellChangeOrder"}; return convert_enum_idx(options, 2, value, "mob_from_eutra_cmd_r8_ies_s::purpose_c_::types"); } -std::string mob_from_eutra_cmd_r9_ies_s::purpose_c_::types_opts::to_string() const +const char* mob_from_eutra_cmd_r9_ies_s::purpose_c_::types_opts::to_string() const { static const char* options[] = {"handover", "cellChangeOrder", "e-CSFB-r9"}; return convert_enum_idx(options, 3, value, "mob_from_eutra_cmd_r9_ies_s::purpose_c_::types"); } -std::string csfb_params_resp_cdma2000_s::crit_exts_c_::types_opts::to_string() const +const char* csfb_params_resp_cdma2000_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"csfbParametersResponseCDMA2000-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "csfb_params_resp_cdma2000_s::crit_exts_c_::types"); @@ -1594,80 +1613,80 @@ uint16_t csfb_params_resp_cdma2000_s::crit_exts_c_::types_opts::to_number() cons return map_enum_number(options, 1, value, "csfb_params_resp_cdma2000_s::crit_exts_c_::types"); } -std::string counter_check_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* counter_check_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"counterCheck-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "counter_check_s::crit_exts_c_::c1_c_::types"); } -std::string dl_info_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* dl_info_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"dlInformationTransfer-r8", "dlInformationTransfer-r15", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "dl_info_transfer_s::crit_exts_c_::c1_c_::types"); } -std::string ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"handoverFromEUTRAPreparationRequest-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::types"); } -std::string logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"loggedMeasurementConfiguration-r10", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::types"); } -std::string mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"mobilityFromEUTRACommand-r8", "mobilityFromEUTRACommand-r9", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::types"); } -std::string rn_recfg_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rn_recfg_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rnReconfiguration-r10", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rn_recfg_r10_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_recfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_recfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "rrcConnectionReconfiguration-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "rrc_conn_recfg_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_release_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_release_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionRelease-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rrc_conn_release_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResume-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::types"); } -std::string security_mode_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* security_mode_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"securityModeCommand-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "security_mode_cmd_s::crit_exts_c_::c1_c_::types"); } -std::string ue_cap_enquiry_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_cap_enquiry_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueCapabilityEnquiry-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_cap_enquiry_s::crit_exts_c_::c1_c_::types"); } -std::string ue_info_request_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_info_request_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueInformationRequest-r9", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_info_request_r9_s::crit_exts_c_::c1_c_::types"); } -std::string dl_dcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* dl_dcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"csfbParametersResponseCDMA2000", "dlInformationTransfer", @@ -1693,7 +1712,7 @@ uint16_t dl_dcch_msg_type_c::c1_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "dl_dcch_msg_type_c::c1_c_::types"); } -std::string dl_dcch_msg_type_c::types_opts::to_string() const +const char* dl_dcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_dcch_msg_type_c::types"); @@ -1704,7 +1723,7 @@ uint8_t dl_dcch_msg_type_c::types_opts::to_number() const return map_enum_number(options, 1, value, "dl_dcch_msg_type_c::types"); } -std::string tmgi_r9_s::plmn_id_r9_c_::types_opts::to_string() const +const char* tmgi_r9_s::plmn_id_r9_c_::types_opts::to_string() const { static const char* options[] = {"plmn-Index-r9", "explicitValue-r9"}; return convert_enum_idx(options, 2, value, "tmgi_r9_s::plmn_id_r9_c_::types"); @@ -1854,6 +1873,16 @@ pmch_cfg_r12_s::data_mcs_r12_c_::operator=(const pmch_cfg_r12_s::data_mcs_r12_c_ return *this; } +uint8_t& pmch_cfg_r12_s::data_mcs_r12_c_::set_normal_r12() +{ + set(types::normal_r12); + return c.get(); +} +uint8_t& pmch_cfg_r12_s::data_mcs_r12_c_::set_higer_order_r12() +{ + set(types::higer_order_r12); + return c.get(); +} void pmch_cfg_r12_s::data_mcs_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1904,13 +1933,13 @@ SRSASN_CODE pmch_cfg_r12_s::data_mcs_r12_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pmch_cfg_r12_s::data_mcs_r12_c_::types_opts::to_string() const +const char* pmch_cfg_r12_s::data_mcs_r12_c_::types_opts::to_string() const { static const char* options[] = {"normal-r12", "higerOrder-r12"}; return convert_enum_idx(options, 2, value, "pmch_cfg_r12_s::data_mcs_r12_c_::types"); } -std::string pmch_cfg_r12_s::mch_sched_period_r12_opts::to_string() const +const char* pmch_cfg_r12_s::mch_sched_period_r12_opts::to_string() const { static const char* options[] = {"rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512", "rf1024"}; return convert_enum_idx(options, 9, value, "pmch_cfg_r12_s::mch_sched_period_r12_e_"); @@ -1921,7 +1950,7 @@ uint16_t pmch_cfg_r12_s::mch_sched_period_r12_opts::to_number() const return map_enum_number(options, 9, value, "pmch_cfg_r12_s::mch_sched_period_r12_e_"); } -std::string pmch_cfg_r12_s::mch_sched_period_v1430_opts::to_string() const +const char* pmch_cfg_r12_s::mch_sched_period_v1430_opts::to_string() const { static const char* options[] = {"rf1", "rf2"}; return convert_enum_idx(options, 2, value, "pmch_cfg_r12_s::mch_sched_period_v1430_e_"); @@ -2023,7 +2052,7 @@ void pmch_cfg_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string pmch_cfg_r9_s::mch_sched_period_r9_opts::to_string() const +const char* pmch_cfg_r9_s::mch_sched_period_r9_opts::to_string() const { static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512", "rf1024"}; return convert_enum_idx(options, 8, value, "pmch_cfg_r9_s::mch_sched_period_r9_e_"); @@ -2267,7 +2296,7 @@ void mbsfn_area_cfg_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbsfn_area_cfg_r9_s::common_sf_alloc_period_r9_opts::to_string() const +const char* mbsfn_area_cfg_r9_s::common_sf_alloc_period_r9_opts::to_string() const { static const char* options[] = {"rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 7, value, "mbsfn_area_cfg_r9_s::common_sf_alloc_period_r9_e_"); @@ -2346,6 +2375,16 @@ mcch_msg_type_c& mcch_msg_type_c::operator=(const mcch_msg_type_c& other) return *this; } +mcch_msg_type_c::c1_c_& mcch_msg_type_c::set_c1() +{ + set(types::c1); + return c.get(); +} +mcch_msg_type_c::later_c_& mcch_msg_type_c::set_later() +{ + set(types::later); + return c.get(); +} void mcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -2416,7 +2455,7 @@ SRSASN_CODE mcch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* mcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"mbsfnAreaConfiguration-r9"}; return convert_enum_idx(options, 1, value, "mcch_msg_type_c::c1_c_::types"); @@ -2426,6 +2465,15 @@ void mcch_msg_type_c::later_c_::set(types::options e) { type_ = e; } +mcch_msg_type_c::later_c_::c2_c_& mcch_msg_type_c::later_c_::set_c2() +{ + set(types::c2); + return c; +} +void mcch_msg_type_c::later_c_::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void mcch_msg_type_c::later_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2492,13 +2540,13 @@ SRSASN_CODE mcch_msg_type_c::later_c_::c2_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mcch_msg_type_c::later_c_::c2_c_::types_opts::to_string() const +const char* mcch_msg_type_c::later_c_::c2_c_::types_opts::to_string() const { static const char* options[] = {"mbmsCountingRequest-r10"}; return convert_enum_idx(options, 1, value, "mcch_msg_type_c::later_c_::c2_c_::types"); } -std::string mcch_msg_type_c::later_c_::types_opts::to_string() const +const char* mcch_msg_type_c::later_c_::types_opts::to_string() const { static const char* options[] = {"c2", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "mcch_msg_type_c::later_c_::types"); @@ -2509,7 +2557,7 @@ uint8_t mcch_msg_type_c::later_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "mcch_msg_type_c::later_c_::types"); } -std::string mcch_msg_type_c::types_opts::to_string() const +const char* mcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "later"}; return convert_enum_idx(options, 2, value, "mcch_msg_type_c::types"); @@ -2549,7 +2597,7 @@ void mcch_msg_s::to_json(json_writer& j) const j.end_array(); } -std::string paging_ue_id_c::types_opts::to_string() const +const char* paging_ue_id_c::types_opts::to_string() const { static const char* options[] = {"s-TMSI", "imsi", "ng-5G-S-TMSI-r15", "fullI-RNTI-r15"}; return convert_enum_idx(options, 4, value, "paging_ue_id_c::types"); @@ -2563,13 +2611,13 @@ int8_t paging_ue_id_c::types_opts::to_number() const return 0; } -std::string pcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* pcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"paging"}; return convert_enum_idx(options, 1, value, "pcch_msg_type_c::c1_c_::types"); } -std::string pcch_msg_type_c::types_opts::to_string() const +const char* pcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "pcch_msg_type_c::types"); @@ -2643,7 +2691,7 @@ void sc_mtch_sched_info_br_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mtch_sched_info_br_r14_s::on_dur_timer_scptm_r14_opts::to_string() const +const char* sc_mtch_sched_info_br_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"psf300", "psf400", "psf500", "psf600", "psf800", "psf1000", "psf1200", "psf1600"}; return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_br_r14_s::on_dur_timer_scptm_r14_e_"); @@ -2654,7 +2702,7 @@ uint16_t sc_mtch_sched_info_br_r14_s::on_dur_timer_scptm_r14_opts::to_number() c return map_enum_number(options, 8, value, "sc_mtch_sched_info_br_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string sc_mtch_sched_info_br_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const +const char* sc_mtch_sched_info_br_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"psf0", "psf1", @@ -2810,6 +2858,86 @@ sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( return *this; } +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf4096() +{ + set(types::sf4096); + return c.get(); +} +uint16_t& sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf8192() +{ + set(types::sf8192); + return c.get(); +} void sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2986,7 +3114,7 @@ SRSASN_CODE sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_: return SRSASN_SUCCESS; } -std::string sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const +const char* sc_mtch_sched_info_br_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -3043,7 +3171,7 @@ void sc_mtch_sched_info_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mtch_sched_info_r13_s::on_dur_timer_scptm_r13_opts::to_string() const +const char* sc_mtch_sched_info_r13_s::on_dur_timer_scptm_r13_opts::to_string() const { static const char* options[] = {"psf1", "psf2", @@ -3069,7 +3197,7 @@ uint8_t sc_mtch_sched_info_r13_s::on_dur_timer_scptm_r13_opts::to_number() const return map_enum_number(options, 16, value, "sc_mtch_sched_info_r13_s::on_dur_timer_scptm_r13_e_"); } -std::string sc_mtch_sched_info_r13_s::drx_inactivity_timer_scptm_r13_opts::to_string() const +const char* sc_mtch_sched_info_r13_s::drx_inactivity_timer_scptm_r13_opts::to_string() const { static const char* options[] = {"psf0", "psf1", @@ -3225,6 +3353,86 @@ sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::operator=( return *this; } +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf4096() +{ + set(types::sf4096); + return c.get(); +} +uint16_t& sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::set_sf8192() +{ + set(types::sf8192); + return c.get(); +} void sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3401,7 +3609,7 @@ SRSASN_CODE sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::un return SRSASN_SUCCESS; } -std::string sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::types_opts::to_string() const +const char* sc_mtch_sched_info_r13_s::sched_period_start_offset_scptm_r13_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -3548,7 +3756,7 @@ void sc_mtch_info_br_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mtch_info_br_r14_s::mpdcch_num_repeat_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_num_repeat_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; return convert_enum_idx(options, 9, value, "sc_mtch_info_br_r14_s::mpdcch_num_repeat_sc_mtch_r14_e_"); @@ -3604,6 +3812,18 @@ sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_& sc_mtch_info_br_r14_s::mp return *this; } +sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_e_& +sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::set_fdd_r14() +{ + set(types::fdd_r14); + return c.get(); +} +sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_e_& +sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::set_tdd_r14() +{ + set(types::tdd_r14); + return c.get(); +} void sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3654,7 +3874,7 @@ SRSASN_CODE sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::unpack(cbit_r return SRSASN_SUCCESS; } -std::string sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_opts::to_string() const { static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_e_"); @@ -3664,13 +3884,13 @@ float sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_opts::to_nu static const float options[] = {1.0, 1.5, 2.0, 2.5, 4.0, 5.0, 8.0, 10.0}; return map_enum_number(options, 8, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_opts::to_number_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_opts::to_number_string() const { static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::fdd_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_opts::to_string() const { static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20"}; return convert_enum_idx(options, 7, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_e_"); @@ -3681,25 +3901,25 @@ uint8_t sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_opts::to_ return map_enum_number(options, 7, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::tdd_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::types_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r14", "tdd-r14"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_start_sf_sc_mtch_r14_c_::types"); } -std::string sc_mtch_info_br_r14_s::mpdcch_pdsch_hop_cfg_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_pdsch_hop_cfg_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_pdsch_hop_cfg_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_pdsch_cemode_cfg_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_pdsch_cemode_cfg_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"ce-ModeA", "ce-ModeB"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_pdsch_cemode_cfg_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"bw1dot4", "bw5"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_e_"); @@ -3709,13 +3929,13 @@ float sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_opts::to_number() c static const float options[] = {1.4, 5.0}; return map_enum_number(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_opts::to_number_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_opts::to_number_string() const { static const char* options[] = {"1.4", "5"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_br_r14_s::mpdcch_pdsch_max_bw_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_opts::to_string() const { static const char* options[] = { "zero", "oneEighth", "oneQuarter", "threeEighth", "oneHalf", "fiveEighth", "threeQuarter", "sevenEighth"}; @@ -3726,13 +3946,13 @@ float sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_opts::to_number() const static const float options[] = {0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875}; return map_enum_number(options, 8, value, "sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_opts::to_number_string() const +const char* sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_br_r14_s::mpdcch_offset_sc_mtch_r14_e_"); } -std::string sc_mtch_info_br_r14_s::p_a_r14_opts::to_string() const +const char* sc_mtch_info_br_r14_s::p_a_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_br_r14_s::p_a_r14_e_"); @@ -3742,7 +3962,7 @@ float sc_mtch_info_br_r14_s::p_a_r14_opts::to_number() const static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "sc_mtch_info_br_r14_s::p_a_r14_e_"); } -std::string sc_mtch_info_br_r14_s::p_a_r14_opts::to_number_string() const +const char* sc_mtch_info_br_r14_s::p_a_r14_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_br_r14_s::p_a_r14_e_"); @@ -3831,7 +4051,7 @@ void sc_mtch_info_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mtch_info_r13_s::p_a_r13_opts::to_string() const +const char* sc_mtch_info_r13_s::p_a_r13_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_r13_s::p_a_r13_e_"); @@ -3841,7 +4061,7 @@ float sc_mtch_info_r13_s::p_a_r13_opts::to_number() const static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "sc_mtch_info_r13_s::p_a_r13_e_"); } -std::string sc_mtch_info_r13_s::p_a_r13_opts::to_number_string() const +const char* sc_mtch_info_r13_s::p_a_r13_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_r13_s::p_a_r13_e_"); @@ -4086,6 +4306,16 @@ sc_mcch_msg_type_r13_c& sc_mcch_msg_type_r13_c::operator=(const sc_mcch_msg_type return *this; } +sc_mcch_msg_type_r13_c::c1_c_& sc_mcch_msg_type_r13_c::set_c1() +{ + set(types::c1); + return c.get(); +} +sc_mcch_msg_type_r13_c::msg_class_ext_c_& sc_mcch_msg_type_r13_c::set_msg_class_ext() +{ + set(types::msg_class_ext); + return c.get(); +} void sc_mcch_msg_type_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -4156,7 +4386,7 @@ SRSASN_CODE sc_mcch_msg_type_r13_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sc_mcch_msg_type_r13_c::c1_c_::types_opts::to_string() const +const char* sc_mcch_msg_type_r13_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"scptmConfiguration-r13"}; return convert_enum_idx(options, 1, value, "sc_mcch_msg_type_r13_c::c1_c_::types"); @@ -4166,6 +4396,15 @@ void sc_mcch_msg_type_r13_c::msg_class_ext_c_::set(types::options e) { type_ = e; } +sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_& sc_mcch_msg_type_r13_c::msg_class_ext_c_::set_c2() +{ + set(types::c2); + return c; +} +void sc_mcch_msg_type_r13_c::msg_class_ext_c_::set_msg_class_ext_future_r14() +{ + set(types::msg_class_ext_future_r14); +} void sc_mcch_msg_type_r13_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4218,6 +4457,15 @@ void sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::set(types::options e) { type_ = e; } +scptm_cfg_br_r14_s& sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::set_scptm_cfg_br_r14() +{ + set(types::scptm_cfg_br_r14); + return c; +} +void sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::set_spare() +{ + set(types::spare); +} void sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4266,13 +4514,13 @@ SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const +const char* sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const { static const char* options[] = {"scptmConfiguration-BR-r14", "spare"}; return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::c2_c_::types"); } -std::string sc_mcch_msg_type_r13_c::msg_class_ext_c_::types_opts::to_string() const +const char* sc_mcch_msg_type_r13_c::msg_class_ext_c_::types_opts::to_string() const { static const char* options[] = {"c2", "messageClassExtensionFuture-r14"}; return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::types"); @@ -4283,7 +4531,7 @@ uint8_t sc_mcch_msg_type_r13_c::msg_class_ext_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "sc_mcch_msg_type_r13_c::msg_class_ext_c_::types"); } -std::string sc_mcch_msg_type_r13_c::types_opts::to_string() const +const char* sc_mcch_msg_type_r13_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_r13_c::types"); @@ -4323,13 +4571,13 @@ void sc_mcch_msg_r13_s::to_json(json_writer& j) const j.end_array(); } -std::string init_ue_id_c::types_opts::to_string() const +const char* init_ue_id_c::types_opts::to_string() const { static const char* options[] = {"s-TMSI", "randomValue"}; return convert_enum_idx(options, 2, value, "init_ue_id_c::types"); } -std::string init_ue_id_minus5_gc_c::types_opts::to_string() const +const char* init_ue_id_minus5_gc_c::types_opts::to_string() const { static const char* options[] = {"ng-5G-S-TMSI-Part1", "randomValue"}; return convert_enum_idx(options, 2, value, "init_ue_id_minus5_gc_c::types"); @@ -4340,62 +4588,62 @@ int8_t init_ue_id_minus5_gc_c::types_opts::to_number() const return map_enum_number(options, 1, value, "init_ue_id_minus5_gc_c::types"); } -std::string rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::types_opts::to_string() const +const char* rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::types_opts::to_string() const { static const char* options[] = {"fullI-RNTI-r15", "shortI-RNTI-r15"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::types"); } -std::string rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::types_opts::to_string() const +const char* rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::types_opts::to_string() const { static const char* options[] = {"resumeID-r13", "truncatedResumeID-r13"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::types"); } -std::string rrc_conn_reest_request_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_reest_request_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentRequest-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_s::crit_exts_c_::types"); } -std::string rrc_conn_request_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_request_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionRequest-r8", "rrcConnectionRequest-r15"}; return convert_enum_idx(options, 2, value, "rrc_conn_request_s::crit_exts_c_::types"); } -std::string rrc_conn_resume_request_r13_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_resume_request_r13_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResumeRequest-r13", "rrcConnectionResumeRequest-r15"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_r13_s::crit_exts_c_::types"); } -std::string rrc_early_data_request_r15_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_early_data_request_r15_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataRequest-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_early_data_request_r15_s::crit_exts_c_::types"); } -std::string ul_ccch_msg_type_c::c1_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentRequest", "rrcConnectionRequest"}; return convert_enum_idx(options, 2, value, "ul_ccch_msg_type_c::c1_c_::types"); } -std::string ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResumeRequest-r13"}; return convert_enum_idx(options, 1, value, "ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::types"); } -std::string ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataRequest-r15", "spare3", "spare2", "spare1"}; return convert_enum_idx( options, 4, value, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::types"); } -std::string ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::types_opts::to_string() const { static const char* options[] = {"c3", "messageClassExtensionFuture-r15"}; return convert_enum_idx( @@ -4407,7 +4655,7 @@ uint8_t ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::types return map_enum_number(options, 1, value, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::types"); } -std::string ul_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const { static const char* options[] = {"c2", "messageClassExtensionFuture-r13"}; return convert_enum_idx(options, 2, value, "ul_ccch_msg_type_c::msg_class_ext_c_::types"); @@ -4418,7 +4666,7 @@ uint8_t ul_ccch_msg_type_c::msg_class_ext_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_ccch_msg_type_c::msg_class_ext_c_::types"); } -std::string ul_ccch_msg_type_c::types_opts::to_string() const +const char* ul_ccch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_ccch_msg_type_c::types"); @@ -4429,7 +4677,7 @@ uint8_t ul_ccch_msg_type_c::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_ccch_msg_type_c::types"); } -std::string cell_global_id_cdma2000_c::types_opts::to_string() const +const char* cell_global_id_cdma2000_c::types_opts::to_string() const { static const char* options[] = {"cellGlobalId1XRTT", "cellGlobalIdHRPD"}; return convert_enum_idx(options, 2, value, "cell_global_id_cdma2000_c::types"); @@ -4440,19 +4688,19 @@ uint8_t cell_global_id_cdma2000_c::types_opts::to_number() const return map_enum_number(options, 1, value, "cell_global_id_cdma2000_c::types"); } -std::string meas_result_utra_s::pci_c_::types_opts::to_string() const +const char* meas_result_utra_s::pci_c_::types_opts::to_string() const { static const char* options[] = {"fdd", "tdd"}; return convert_enum_idx(options, 2, value, "meas_result_utra_s::pci_c_::types"); } -std::string s_nssai_r15_c::types_opts::to_string() const +const char* s_nssai_r15_c::types_opts::to_string() const { static const char* options[] = {"sst", "sst-SD"}; return convert_enum_idx(options, 2, value, "s_nssai_r15_c::types"); } -std::string location_info_r10_s::location_coordinates_r10_c_::types_opts::to_string() const +const char* location_info_r10_s::location_coordinates_r10_c_::types_opts::to_string() const { static const char* options[] = {"ellipsoid-Point-r10", "ellipsoidPointWithAltitude-r10", @@ -4464,32 +4712,32 @@ std::string location_info_r10_s::location_coordinates_r10_c_::types_opts::to_str return convert_enum_idx(options, 7, value, "location_info_r10_s::location_coordinates_r10_c_::types"); } -std::string location_info_r10_s::vertical_velocity_info_r15_c_::types_opts::to_string() const +const char* location_info_r10_s::vertical_velocity_info_r15_c_::types_opts::to_string() const { static const char* options[] = {"verticalVelocity-r15", "verticalVelocityAndUncertainty-r15"}; return convert_enum_idx(options, 2, value, "location_info_r10_s::vertical_velocity_info_r15_c_::types"); } -std::string rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::types_opts::to_string() const +const char* rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::types_opts::to_string() const { static const char* options[] = {"ng-5G-S-TMSI-r15", "ng-5G-S-TMSI-Part2-r15"}; return convert_enum_idx( options, 2, value, "rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::types"); } -std::string meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::types_opts::to_string() const +const char* meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::types_opts::to_string() const { static const char* options[] = {"measResultIdleListEUTRA-r15"}; return convert_enum_idx(options, 1, value, "meas_result_idle_r15_s::meas_result_neigh_cells_r15_c_::types"); } -std::string visited_cell_info_r12_s::visited_cell_id_r12_c_::types_opts::to_string() const +const char* visited_cell_info_r12_s::visited_cell_id_r12_c_::types_opts::to_string() const { static const char* options[] = {"cellGlobalId-r12", "pci-arfcn-r12"}; return convert_enum_idx(options, 2, value, "visited_cell_info_r12_s::visited_cell_id_r12_c_::types"); } -std::string idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types_opts::to_string() const +const char* idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types_opts::to_string() const { static const char* options[] = {"subframeConfig0-r11", "subframeConfig1-5-r11", "subframeConfig6-r11"}; return convert_enum_idx(options, 3, value, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types"); @@ -4500,13 +4748,13 @@ uint8_t idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types_opts::to_number() con return map_enum_number(options, 3, value, "idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types"); } -std::string idc_sf_pattern_r11_c::types_opts::to_string() const +const char* idc_sf_pattern_r11_c::types_opts::to_string() const { static const char* options[] = {"subframePatternFDD-r11", "subframePatternTDD-r11"}; return convert_enum_idx(options, 2, value, "idc_sf_pattern_r11_c::types"); } -std::string delay_budget_report_r14_c::types_opts::to_string() const +const char* delay_budget_report_r14_c::types_opts::to_string() const { static const char* options[] = {"type1", "type2"}; return convert_enum_idx(options, 2, value, "delay_budget_report_r14_c::types"); @@ -4517,7 +4765,7 @@ uint8_t delay_budget_report_r14_c::types_opts::to_number() const return map_enum_number(options, 2, value, "delay_budget_report_r14_c::types"); } -std::string rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types_opts::to_string() const +const char* rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types_opts::to_string() const { static const char* options[] = {"rstd0-r15", "rstd1-r15", "rstd2-r15", "rstd3-r15", "rstd4-r15", "rstd5-r15", "rstd6-r15", "rstd7-r15", "rstd8-r15", "rstd9-r15", "rstd10-r15", "rstd11-r15", @@ -4531,7 +4779,7 @@ uint8_t rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types_opts::to_numbe return map_enum_number(options, 21, value, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types"); } -std::string meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const +const char* meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const { static const char* options[] = {"measResultListEUTRA", "measResultListUTRA", @@ -4549,37 +4797,37 @@ uint16_t meas_results_s::meas_result_neigh_cells_c_::types_opts::to_number() con return 0; } -std::string rlf_report_r9_s::failed_pcell_id_r10_c_::types_opts::to_string() const +const char* rlf_report_r9_s::failed_pcell_id_r10_c_::types_opts::to_string() const { static const char* options[] = {"cellGlobalId-r10", "pci-arfcn-r10"}; return convert_enum_idx(options, 2, value, "rlf_report_r9_s::failed_pcell_id_r10_c_::types"); } -std::string rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::types_opts::to_string() const +const char* rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r11", "tdd-r11"}; return convert_enum_idx(options, 2, value, "rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::types"); } -std::string rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::types_opts::to_string() const +const char* rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::types_opts::to_string() const { static const char* options[] = {"fdd-r11", "tdd-r11"}; return convert_enum_idx(options, 2, value, "rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::types"); } -std::string tdm_assist_info_r11_c::types_opts::to_string() const +const char* tdm_assist_info_r11_c::types_opts::to_string() const { static const char* options[] = {"drx-AssistanceInfo-r11", "idc-SubframePatternList-r11"}; return convert_enum_idx(options, 2, value, "tdm_assist_info_r11_c::types"); } -std::string inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::types_opts::to_string() const +const char* inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::types_opts::to_string() const { static const char* options[] = {"start", "stop"}; return convert_enum_idx(options, 2, value, "inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::types"); } -std::string proximity_ind_r9_ies_s::carrier_freq_r9_c_::types_opts::to_string() const +const char* proximity_ind_r9_ies_s::carrier_freq_r9_c_::types_opts::to_string() const { static const char* options[] = {"eutra-r9", "utra-r9", "eutra2-v9e0"}; return convert_enum_idx(options, 3, value, "proximity_ind_r9_ies_s::carrier_freq_r9_c_::types"); @@ -4593,13 +4841,13 @@ uint8_t proximity_ind_r9_ies_s::carrier_freq_r9_c_::types_opts::to_number() cons return 0; } -std::string ul_info_transfer_r8_ies_s::ded_info_type_c_::types_opts::to_string() const +const char* ul_info_transfer_r8_ies_s::ded_info_type_c_::types_opts::to_string() const { static const char* options[] = {"dedicatedInfoNAS", "dedicatedInfoCDMA2000-1XRTT", "dedicatedInfoCDMA2000-HRPD"}; return convert_enum_idx(options, 3, value, "ul_info_transfer_r8_ies_s::ded_info_type_c_::types"); } -std::string csfb_params_request_cdma2000_s::crit_exts_c_::types_opts::to_string() const +const char* csfb_params_request_cdma2000_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"csfbParametersRequestCDMA2000-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "csfb_params_request_cdma2000_s::crit_exts_c_::types"); @@ -4610,159 +4858,159 @@ uint16_t csfb_params_request_cdma2000_s::crit_exts_c_::types_opts::to_number() c return map_enum_number(options, 1, value, "csfb_params_request_cdma2000_s::crit_exts_c_::types"); } -std::string counter_check_resp_s::crit_exts_c_::types_opts::to_string() const +const char* counter_check_resp_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"counterCheckResponse-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "counter_check_resp_s::crit_exts_c_::types"); } -std::string in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"inDeviceCoexIndication-r11", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::types"); } -std::string inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"interFreqRSTDMeasurementIndication-r10", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::types"); } -std::string mbms_count_resp_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* mbms_count_resp_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"countingResponse-r10", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "mbms_count_resp_r10_s::crit_exts_c_::c1_c_::types"); } -std::string mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"interestIndication-r11", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::types"); } -std::string meas_report_app_layer_r15_s::crit_exts_c_::types_opts::to_string() const +const char* meas_report_app_layer_r15_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"measReportAppLayer-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "meas_report_app_layer_r15_s::crit_exts_c_::types"); } -std::string meas_report_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* meas_report_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "measurementReport-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "meas_report_s::crit_exts_c_::c1_c_::types"); } -std::string proximity_ind_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* proximity_ind_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"proximityIndication-r9", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "proximity_ind_r9_s::crit_exts_c_::c1_c_::types"); } -std::string rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rnReconfigurationComplete-r10", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::types"); } -std::string rrc_conn_recfg_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_recfg_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReconfigurationComplete-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_recfg_complete_s::crit_exts_c_::types"); } -std::string rrc_conn_reest_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_reest_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentComplete-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_complete_s::crit_exts_c_::types"); } -std::string rrc_conn_resume_complete_r13_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_resume_complete_r13_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResumeComplete-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_complete_r13_s::crit_exts_c_::types"); } -std::string rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionSetupComplete-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::types"); } -std::string scg_fail_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* scg_fail_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"scgFailureInformation-r12", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "scg_fail_info_r12_s::crit_exts_c_::c1_c_::types"); } -std::string scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"scgFailureInformationNR-r15", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::types"); } -std::string security_mode_complete_s::crit_exts_c_::types_opts::to_string() const +const char* security_mode_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"securityModeComplete-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "security_mode_complete_s::crit_exts_c_::types"); } -std::string security_mode_fail_s::crit_exts_c_::types_opts::to_string() const +const char* security_mode_fail_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"securityModeFailure-r8", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "security_mode_fail_s::crit_exts_c_::types"); } -std::string sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"sidelinkUEInformation-r12", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::types"); } -std::string ueassist_info_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ueassist_info_r11_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueAssistanceInformation-r11", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ueassist_info_r11_s::crit_exts_c_::c1_c_::types"); } -std::string ue_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "ueCapabilityInformation-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ue_cap_info_s::crit_exts_c_::c1_c_::types"); } -std::string ue_info_resp_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_info_resp_r9_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueInformationResponse-r9", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_info_resp_r9_s::crit_exts_c_::c1_c_::types"); } -std::string ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ulHandoverPreparationTransfer-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::types"); } -std::string ul_info_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ul_info_transfer_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ulInformationTransfer-r8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_info_transfer_s::crit_exts_c_::c1_c_::types"); } -std::string ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ulInformationTransferMRDC-r15", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::types"); } -std::string wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"wlanConnectionStatusReport-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::types"); } -std::string ul_dcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* ul_dcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"csfbParametersRequestCDMA2000", "measurementReport", @@ -4788,7 +5036,7 @@ uint16_t ul_dcch_msg_type_c::c1_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_dcch_msg_type_c::c1_c_::types"); } -std::string ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const +const char* ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() const { static const char* options[] = {"ueAssistanceInformation-r11", "inDeviceCoexIndication-r11", @@ -4809,7 +5057,7 @@ std::string ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::types_opts::to_string() return convert_enum_idx(options, 16, value, "ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::types"); } -std::string ul_dcch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const +const char* ul_dcch_msg_type_c::msg_class_ext_c_::types_opts::to_string() const { static const char* options[] = {"c2", "messageClassExtensionFuture-r11"}; return convert_enum_idx(options, 2, value, "ul_dcch_msg_type_c::msg_class_ext_c_::types"); @@ -4820,7 +5068,7 @@ uint8_t ul_dcch_msg_type_c::msg_class_ext_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_dcch_msg_type_c::msg_class_ext_c_::types"); } -std::string ul_dcch_msg_type_c::types_opts::to_string() const +const char* ul_dcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_dcch_msg_type_c::types"); @@ -4831,7 +5079,7 @@ uint8_t ul_dcch_msg_type_c::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_dcch_msg_type_c::types"); } -std::string +const char* band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::types_opts::to_string() const { static const char* options[] = {"threeEntries-r13", "fourEntries-r13", "fiveEntries-r13"}; @@ -4845,7 +5093,7 @@ uint8_t band_combination_params_r13_s::dc_support_r13_s_::supported_cell_groupin options, 3, value, "band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::types"); } -std::string +const char* band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::types_opts::to_string() const { static const char* options[] = {"threeEntries-r12", "fourEntries-r12", "fiveEntries-r12"}; @@ -4941,7 +5189,7 @@ void mimo_weighted_layers_cap_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_"); @@ -4951,13 +5199,13 @@ float mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_number( static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0}; return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_"); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_number_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_"); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_"); @@ -4967,13 +5215,13 @@ float mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_number static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0}; return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_"); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_number_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_"); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_"); @@ -4983,7 +5231,7 @@ float mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_numbe static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0}; return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_"); } -std::string mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_number_string() const +const char* mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"}; return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_"); @@ -5156,7 +5404,7 @@ void scg_fail_info_v12d0b_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbms_params_v1470_s::mbms_max_bw_r14_c_::types_opts::to_string() const +const char* mbms_params_v1470_s::mbms_max_bw_r14_c_::types_opts::to_string() const { static const char* options[] = {"implicitValue", "explicitValue"}; return convert_enum_idx(options, 2, value, "mbms_params_v1470_s::mbms_max_bw_r14_c_::types"); @@ -5192,7 +5440,7 @@ void ue_eutra_cap_v13e0b_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string scg_cfg_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* scg_cfg_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "scg-Config-r12", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -5306,6 +5554,36 @@ cells_triggered_list_item_c_& cells_triggered_list_item_c_::operator=(const cell return *this; } +uint16_t& cells_triggered_list_item_c_::set_pci_eutra() +{ + set(types::pci_eutra); + return c.get(); +} +cells_triggered_list_item_c_::pci_utra_c_& cells_triggered_list_item_c_::set_pci_utra() +{ + set(types::pci_utra); + return c.get(); +} +cells_triggered_list_item_c_::pci_geran_s_& cells_triggered_list_item_c_::set_pci_geran() +{ + set(types::pci_geran); + return c.get(); +} +uint16_t& cells_triggered_list_item_c_::set_pci_cdma2000() +{ + set(types::pci_cdma2000); + return c.get(); +} +wlan_ids_r12_s& cells_triggered_list_item_c_::set_wlan_ids_r13() +{ + set(types::wlan_ids_r13); + return c.get(); +} +cells_triggered_list_item_c_::pci_nr_r15_s_& cells_triggered_list_item_c_::set_pci_nr_r15() +{ + set(types::pci_nr_r15); + return c.get(); +} void cells_triggered_list_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5469,6 +5747,16 @@ cells_triggered_list_item_c_::pci_utra_c_::operator=(const cells_triggered_list_ return *this; } +uint16_t& cells_triggered_list_item_c_::pci_utra_c_::set_fdd() +{ + set(types::fdd); + return c.get(); +} +uint8_t& cells_triggered_list_item_c_::pci_utra_c_::set_tdd() +{ + set(types::tdd); + return c.get(); +} void cells_triggered_list_item_c_::pci_utra_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5519,13 +5807,13 @@ SRSASN_CODE cells_triggered_list_item_c_::pci_utra_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cells_triggered_list_item_c_::pci_utra_c_::types_opts::to_string() const +const char* cells_triggered_list_item_c_::pci_utra_c_::types_opts::to_string() const { static const char* options[] = {"fdd", "tdd"}; return convert_enum_idx(options, 2, value, "cells_triggered_list_item_c_::pci_utra_c_::types"); } -std::string cells_triggered_list_item_c_::types_opts::to_string() const +const char* cells_triggered_list_item_c_::types_opts::to_string() const { static const char* options[] = {"physCellIdEUTRA", "physCellIdUTRA", @@ -5590,20 +5878,20 @@ void drb_info_scg_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string drb_info_scg_r12_s::drb_type_r12_opts::to_string() const +const char* drb_info_scg_r12_s::drb_type_r12_opts::to_string() const { static const char* options[] = {"split", "scg"}; return convert_enum_idx(options, 2, value, "drb_info_scg_r12_s::drb_type_r12_e_"); } -std::string ho_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "handoverCommand-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ho_cmd_s::crit_exts_c_::c1_c_::types"); } -std::string ho_prep_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_prep_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "handoverPreparationInformation-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -5630,7 +5918,7 @@ void tdd_cfg_sl_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string tdd_cfg_sl_r12_s::sf_assign_sl_r12_opts::to_string() const +const char* tdd_cfg_sl_r12_s::sf_assign_sl_r12_opts::to_string() const { static const char* options[] = {"none", "sa0", "sa1", "sa2", "sa3", "sa4", "sa5", "sa6"}; return convert_enum_idx(options, 8, value, "tdd_cfg_sl_r12_s::sf_assign_sl_r12_e_"); @@ -5672,7 +5960,7 @@ void mib_sl_s::to_json(json_writer& j) const j.end_obj(); } -std::string mib_sl_s::sl_bw_r12_opts::to_string() const +const char* mib_sl_s::sl_bw_r12_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "mib_sl_s::sl_bw_r12_e_"); @@ -5719,7 +6007,7 @@ void mib_sl_v2x_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string mib_sl_v2x_r14_s::sl_bw_r14_opts::to_string() const +const char* mib_sl_v2x_r14_s::sl_bw_r14_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "mib_sl_v2x_r14_s::sl_bw_r14_e_"); @@ -6446,6 +6734,15 @@ void scg_cfg_info_r12_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_cfg_info_r12_s::crit_exts_c_::c1_c_& scg_cfg_info_r12_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void scg_cfg_info_r12_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_cfg_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6498,6 +6795,39 @@ void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +scg_cfg_info_r12_ies_s& scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_scg_cfg_info_r12() +{ + set(types::scg_cfg_info_r12); + return c; +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void scg_cfg_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6582,7 +6912,7 @@ SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string scg_cfg_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* scg_cfg_info_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "scg-ConfigInfo-r12", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -6840,7 +7170,7 @@ void sl_precfg_disc_pool_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_precfg_disc_pool_r13_s::disc_period_r13_opts::to_string() const +const char* sl_precfg_disc_pool_r13_s::disc_period_r13_opts::to_string() const { static const char* options[] = {"rf4", "rf6", @@ -6866,7 +7196,7 @@ uint16_t sl_precfg_disc_pool_r13_s::disc_period_r13_opts::to_number() const return map_enum_number(options, 15, value, "sl_precfg_disc_pool_r13_s::disc_period_r13_e_"); } -std::string sl_precfg_disc_pool_r13_s::tx_params_r13_s_::tx_probability_r13_opts::to_string() const +const char* sl_precfg_disc_pool_r13_s::tx_params_r13_s_::tx_probability_r13_opts::to_string() const { static const char* options[] = {"p25", "p50", "p75", "p100"}; return convert_enum_idx(options, 4, value, "sl_precfg_disc_pool_r13_s::tx_params_r13_s_::tx_probability_r13_e_"); @@ -6971,7 +7301,7 @@ void sl_precfg_general_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_precfg_general_r12_s::sl_bw_r12_opts::to_string() const +const char* sl_precfg_general_r12_s::sl_bw_r12_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "sl_precfg_general_r12_s::sl_bw_r12_e_"); @@ -7072,7 +7402,7 @@ void sl_precfg_sync_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_precfg_sync_r12_s::sync_ref_min_hyst_r12_opts::to_string() const +const char* sl_precfg_sync_r12_s::sync_ref_min_hyst_r12_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 5, value, "sl_precfg_sync_r12_s::sync_ref_min_hyst_r12_e_"); @@ -7083,7 +7413,7 @@ uint8_t sl_precfg_sync_r12_s::sync_ref_min_hyst_r12_opts::to_number() const return map_enum_number(options, 5, value, "sl_precfg_sync_r12_s::sync_ref_min_hyst_r12_e_"); } -std::string sl_precfg_sync_r12_s::sync_ref_diff_hyst_r12_opts::to_string() const +const char* sl_precfg_sync_r12_s::sync_ref_diff_hyst_r12_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; return convert_enum_idx(options, 6, value, "sl_precfg_sync_r12_s::sync_ref_diff_hyst_r12_e_"); @@ -7289,7 +7619,7 @@ void sl_v2x_precfg_comm_pool_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_v2x_precfg_comm_pool_r14_s::size_subch_r14_opts::to_string() const +const char* sl_v2x_precfg_comm_pool_r14_s::size_subch_r14_opts::to_string() const { static const char* options[] = {"n4", "n5", "n6", "n8", "n9", "n10", "n12", "n15", "n16", "n18", "n20", "n25", "n30", "n48", "n50", "n72", @@ -7303,7 +7633,7 @@ uint8_t sl_v2x_precfg_comm_pool_r14_s::size_subch_r14_opts::to_number() const return map_enum_number(options, 19, value, "sl_v2x_precfg_comm_pool_r14_s::size_subch_r14_e_"); } -std::string sl_v2x_precfg_comm_pool_r14_s::num_subch_r14_opts::to_string() const +const char* sl_v2x_precfg_comm_pool_r14_s::num_subch_r14_opts::to_string() const { static const char* options[] = {"n1", "n3", "n5", "n8", "n10", "n15", "n20", "spare1"}; return convert_enum_idx(options, 8, value, "sl_v2x_precfg_comm_pool_r14_s::num_subch_r14_e_"); @@ -7414,7 +7744,7 @@ void sl_precfg_v2x_sync_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_precfg_v2x_sync_r14_s::sync_ref_min_hyst_r14_opts::to_string() const +const char* sl_precfg_v2x_sync_r14_s::sync_ref_min_hyst_r14_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 5, value, "sl_precfg_v2x_sync_r14_s::sync_ref_min_hyst_r14_e_"); @@ -7425,7 +7755,7 @@ uint8_t sl_precfg_v2x_sync_r14_s::sync_ref_min_hyst_r14_opts::to_number() const return map_enum_number(options, 5, value, "sl_precfg_v2x_sync_r14_s::sync_ref_min_hyst_r14_e_"); } -std::string sl_precfg_v2x_sync_r14_s::sync_ref_diff_hyst_r14_opts::to_string() const +const char* sl_precfg_v2x_sync_r14_s::sync_ref_diff_hyst_r14_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; return convert_enum_idx(options, 6, value, "sl_precfg_v2x_sync_r14_s::sync_ref_diff_hyst_r14_e_"); @@ -7722,14 +8052,14 @@ void sl_v2x_precfg_freq_info_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_v2x_precfg_freq_info_r14_s::sync_prio_r14_opts::to_string() const +const char* sl_v2x_precfg_freq_info_r14_s::sync_prio_r14_opts::to_string() const { static const char* options[] = {"gnss", "enb"}; return convert_enum_idx(options, 2, value, "sl_v2x_precfg_freq_info_r14_s::sync_prio_r14_e_"); } // SL-V2X-TxProfile-r15 ::= ENUMERATED -std::string sl_v2x_tx_profile_r15_opts::to_string() const +const char* sl_v2x_tx_profile_r15_opts::to_string() const { static const char* options[] = {"rel14", "rel15", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sl_v2x_tx_profile_r15_e"); @@ -7872,21 +8202,21 @@ void sl_v2x_precfg_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_paging_coverage_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_paging_coverage_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "uePagingCoverageInformation-r13", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ue_paging_coverage_info_s::crit_exts_c_::c1_c_::types"); } -std::string ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "ueRadioAccessCapabilityInformation-r8", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types"); } -std::string ue_radio_paging_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_paging_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "ueRadioPagingInformation-r12", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -8284,7 +8614,7 @@ void var_meas_idle_cfg_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string var_meas_idle_cfg_r15_s::meas_idle_dur_r15_opts::to_string() const +const char* var_meas_idle_cfg_r15_s::meas_idle_dur_r15_opts::to_string() const { static const char* options[] = {"sec10", "sec30", "sec60", "sec120", "sec180", "sec240", "sec300"}; return convert_enum_idx(options, 7, value, "var_meas_idle_cfg_r15_s::meas_idle_dur_r15_e_"); diff --git a/lib/src/asn1/rrc/bcch_msg.cc b/lib/src/asn1/rrc/bcch_msg.cc index 86f6cf226..4aa83cf8c 100644 --- a/lib/src/asn1/rrc/bcch_msg.cc +++ b/lib/src/asn1/rrc/bcch_msg.cc @@ -547,6 +547,16 @@ plmn_id_info2_r12_c& plmn_id_info2_r12_c::operator=(const plmn_id_info2_r12_c& o return *this; } +uint8_t& plmn_id_info2_r12_c::set_plmn_idx_r12() +{ + set(types::plmn_idx_r12); + return c.get(); +} +plmn_id_s& plmn_id_info2_r12_c::set_plmn_id_r12() +{ + set(types::plmn_id_r12); + return c.get(); +} void plmn_id_info2_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -690,6 +700,16 @@ sys_time_info_cdma2000_s::cdma_sys_time_c_::operator=(const sys_time_info_cdma20 return *this; } +fixed_bitstring<39>& sys_time_info_cdma2000_s::cdma_sys_time_c_::set_sync_sys_time() +{ + set(types::sync_sys_time); + return c.get >(); +} +fixed_bitstring<49>& sys_time_info_cdma2000_s::cdma_sys_time_c_::set_async_sys_time() +{ + set(types::async_sys_time); + return c.get >(); +} void sys_time_info_cdma2000_s::cdma_sys_time_c_::to_json(json_writer& j) const { j.start_obj(); @@ -967,6 +987,15 @@ void params_cdma2000_r11_s::sys_time_info_r11_c_::set(types::options e) { type_ = e; } +sys_time_info_cdma2000_s& params_cdma2000_r11_s::sys_time_info_r11_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void params_cdma2000_r11_s::sys_time_info_r11_c_::set_default_value() +{ + set(types::default_value); +} void params_cdma2000_r11_s::sys_time_info_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1404,7 +1433,7 @@ void carrier_freq_nr_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const +const char* carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const { static const char* options[] = {"kHz15", "kHz30", "kHz120", "kHz240"}; return convert_enum_idx(options, 4, value, "carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); @@ -1774,7 +1803,7 @@ void eab_cfg_r11_s::to_json(json_writer& j) const j.end_obj(); } -std::string eab_cfg_r11_s::eab_category_r11_opts::to_string() const +const char* eab_cfg_r11_s::eab_category_r11_opts::to_string() const { static const char* options[] = {"a", "b", "c"}; return convert_enum_idx(options, 3, value, "eab_cfg_r11_s::eab_category_r11_e_"); @@ -2484,7 +2513,7 @@ void mbms_carrier_type_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbms_carrier_type_r14_s::carrier_type_r14_opts::to_string() const +const char* mbms_carrier_type_r14_s::carrier_type_r14_opts::to_string() const { static const char* options[] = {"mbms", "fembmsMixed", "fembmsDedicated"}; return convert_enum_idx(options, 3, value, "mbms_carrier_type_r14_s::carrier_type_r14_e_"); @@ -2665,7 +2694,7 @@ void mbsfn_area_info_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_string() const +const char* mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_string() const { static const char* options[] = {"s1", "s2"}; return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); @@ -2676,7 +2705,7 @@ uint8_t mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_number() const return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_string() const +const char* mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_string() const { static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); @@ -2687,7 +2716,7 @@ uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_nu return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_string() const +const char* mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_string() const { static const char* options[] = {"rf512", "rf1024"}; return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); @@ -2698,7 +2727,7 @@ uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_numbe return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_string() const +const char* mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_string() const { static const char* options[] = {"n2", "n7", "n13", "n19"}; return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); @@ -2709,7 +2738,7 @@ uint8_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_number() const return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_string() const +const char* mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_string() const { static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16"}; return convert_enum_idx(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); @@ -2720,7 +2749,7 @@ uint8_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to return map_enum_number(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_string() const +const char* mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_string() const { static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "spare7"}; return convert_enum_idx(options, 10, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); @@ -2731,7 +2760,7 @@ uint16_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_n return map_enum_number(options, 9, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); } -std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_string() const +const char* mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_string() const { static const char* options[] = {"kHz7dot5", "kHz1dot25"}; return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); @@ -2741,7 +2770,7 @@ float mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number() const static const float options[] = {7.5, 1.25}; return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); } -std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number_string() const +const char* mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number_string() const { static const char* options[] = {"7.5", "1.25"}; return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); @@ -2783,7 +2812,7 @@ void resel_info_relay_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string resel_info_relay_r13_s::min_hyst_r13_opts::to_string() const +const char* resel_info_relay_r13_s::min_hyst_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; return convert_enum_idx(options, 6, value, "resel_info_relay_r13_s::min_hyst_r13_e_"); @@ -2822,6 +2851,15 @@ void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set(types::options e) { type_ = e; } +params_cdma2000_r11_s& sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set_default_value() +{ + set(types::default_value); +} void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3030,7 +3068,7 @@ void uac_barr_info_set_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_string() const +const char* uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_string() const { static const char* options[] = { "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; @@ -3041,14 +3079,14 @@ float uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5}; return map_enum_number(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); } -std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number_string() const +const char* uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number_string() const { static const char* options[] = { "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; return convert_enum_idx(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); } -std::string uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_string() const +const char* uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_string() const { static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; return convert_enum_idx(options, 8, value, "uac_barr_info_set_r15_s::uac_barr_time_r15_e_"); @@ -3162,6 +3200,17 @@ uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& uac_barr_per_plmn_r15_s:: return *this; } +uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::uac_implicit_ac_barr_list_r15_l_& +uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::set_uac_implicit_ac_barr_list_r15() +{ + set(types::uac_implicit_ac_barr_list_r15); + return c.get(); +} +uac_barr_per_cat_list_r15_l& uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::set_uac_explicit_ac_barr_list_r15() +{ + set(types::uac_explicit_ac_barr_list_r15); + return c.get(); +} void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3268,7 +3317,7 @@ void cell_resel_info_common_v1460_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_string() const +const char* cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_string() const { static const char* options[] = {"dB6", "dB9", "dB12", "dB15"}; return convert_enum_idx(options, 4, value, "cell_resel_info_common_v1460_s::s_search_delta_p_r14_e_"); @@ -3448,7 +3497,7 @@ void mbms_notif_cfg_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_string() const +const char* mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_e_"); @@ -3540,7 +3589,7 @@ void redist_serving_info_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string redist_serving_info_r13_s::t360_r13_opts::to_string() const +const char* redist_serving_info_r13_s::t360_r13_opts::to_string() const { static const char* options[] = {"min4", "min8", "min16", "min32", "infinity", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "redist_serving_info_r13_s::t360_r13_e_"); @@ -3580,7 +3629,7 @@ void sc_mcch_sched_info_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_string() const +const char* sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"psf10", "psf20", "psf100", "psf300", "psf500", "psf1000", "psf1200", "psf1600"}; return convert_enum_idx(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); @@ -3591,7 +3640,7 @@ uint16_t sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_number() cons return map_enum_number(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const +const char* sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"psf0", "psf1", @@ -3747,6 +3796,86 @@ sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( return *this; } +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf4096() +{ + set(types::sf4096); + return c.get(); +} +uint16_t& sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf8192() +{ + set(types::sf8192); + return c.get(); +} void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3986,7 +4115,7 @@ void sl_disc_cfg_relay_ue_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_string() const +const char* sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; return convert_enum_idx(options, 6, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); @@ -3997,7 +4126,7 @@ uint8_t sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_number() const return map_enum_number(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); } -std::string sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_string() const +const char* sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_e_"); @@ -4053,7 +4182,7 @@ void sl_disc_cfg_remote_ue_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_string() const +const char* sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 5, value, "sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_e_"); @@ -4065,7 +4194,7 @@ uint8_t sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_number() const } // UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED -std::string uac_ac1_select_assist_info_r15_opts::to_string() const +const char* uac_ac1_select_assist_info_r15_opts::to_string() const { static const char* options[] = {"a", "b", "c"}; return convert_enum_idx(options, 3, value, "uac_ac1_select_assist_info_r15_e"); @@ -4269,7 +4398,7 @@ void sib_type11_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type11_s::warning_msg_segment_type_opts::to_string() const +const char* sib_type11_s::warning_msg_segment_type_opts::to_string() const { static const char* options[] = {"notLastSegment", "lastSegment"}; return convert_enum_idx(options, 2, value, "sib_type11_s::warning_msg_segment_type_e_"); @@ -4365,7 +4494,7 @@ void sib_type12_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type12_r9_s::warning_msg_segment_type_r9_opts::to_string() const +const char* sib_type12_r9_s::warning_msg_segment_type_r9_opts::to_string() const { static const char* options[] = {"notLastSegment", "lastSegment"}; return convert_enum_idx(options, 2, value, "sib_type12_r9_s::warning_msg_segment_type_r9_e_"); @@ -4593,6 +4722,17 @@ sib_type14_r11_s::eab_param_r11_c_::operator=(const sib_type14_r11_s::eab_param_ return *this; } +eab_cfg_r11_s& sib_type14_r11_s::eab_param_r11_c_::set_eab_common_r11() +{ + set(types::eab_common_r11); + return c.get(); +} +sib_type14_r11_s::eab_param_r11_c_::eab_per_plmn_list_r11_l_& +sib_type14_r11_s::eab_param_r11_c_::set_eab_per_plmn_list_r11() +{ + set(types::eab_per_plmn_list_r11); + return c.get(); +} void sib_type14_r11_s::eab_param_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4648,7 +4788,7 @@ SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sib_type14_r11_s::eab_per_rsrp_r15_opts::to_string() const +const char* sib_type14_r11_s::eab_per_rsrp_r15_opts::to_string() const { static const char* options[] = {"thresh0", "thresh1", "thresh2", "thresh3"}; return convert_enum_idx(options, 4, value, "sib_type14_r11_s::eab_per_rsrp_r15_e_"); @@ -5506,7 +5646,7 @@ void sib_type20_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_string() const +const char* sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_string() const { static const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); @@ -5517,7 +5657,7 @@ uint16_t sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_number() const return map_enum_number(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); } -std::string sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_string() const +const char* sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_string() const { static const char* options[] = {"rf2", "rf4", @@ -5543,7 +5683,7 @@ uint32_t sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_number() const return map_enum_number(options, 16, value, "sib_type20_r13_s::sc_mcch_mod_period_r13_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; return convert_enum_idx(options, 9, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_e_"); @@ -5600,6 +5740,18 @@ sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::operator=( return *this; } +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_& +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::set_fdd_r14() +{ + set(types::fdd_r14); + return c.get(); +} +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_& +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::set_tdd_r14() +{ + set(types::tdd_r14); + return c.get(); +} void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5650,7 +5802,7 @@ SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_ return SRSASN_SUCCESS; } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_string() const { static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; return convert_enum_idx( @@ -5662,14 +5814,14 @@ float sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_ return map_enum_number( options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number_string() const { static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; return convert_enum_idx( options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_string() const { static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20"}; return convert_enum_idx( @@ -5682,14 +5834,14 @@ uint8_t sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::td options, 7, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts::to_string() const { static const char* options[] = {"off", "ce-ModeA", "ce-ModeB"}; return convert_enum_idx( options, 3, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_string() const { static const char* options[] = {"rf32", "rf128", "rf512", "rf1024", "rf2048", "rf4096", "rf8192", "rf16384"}; return convert_enum_idx(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); @@ -5700,7 +5852,7 @@ uint16_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts return map_enum_number(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); } -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_string() const +const char* sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_string() const { static const char* options[] = {"rf32", "rf128", @@ -5726,7 +5878,7 @@ uint32_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::t return map_enum_number(options, 15, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_e_"); } -std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_string() const +const char* sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"r16", "r32"}; return convert_enum_idx(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); @@ -5737,7 +5889,7 @@ uint8_t sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_num return map_enum_number(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); } -std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_string() const +const char* sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"r192", "r256", "r384", "r512", "r768", "r1024", "r1536", "r2048"}; return convert_enum_idx(options, 8, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_"); @@ -6000,6 +6152,17 @@ sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& sib_type25_r15_s::uac_ac1_s return *this; } +uac_ac1_select_assist_info_r15_e& sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::set_plmn_common_r15() +{ + set(types::plmn_common_r15); + return c.get(); +} +sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::individual_plmn_list_r15_l_& +sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::set_individual_plmn_list_r15() +{ + set(types::individual_plmn_list_r15); + return c.get(); +} void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6627,7 +6790,7 @@ void sib_type3_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const +const char* sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const { static const char* options[] = {"dB0", "dB1", @@ -6653,7 +6816,7 @@ uint8_t sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_number() const return map_enum_number(options, 16, value, "sib_type3_s::cell_resel_info_common_s_::q_hyst_e_"); } -std::string +const char* sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; @@ -6674,7 +6837,7 @@ sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_: "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); } -std::string +const char* sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; @@ -8088,6 +8251,141 @@ pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::operator=( return *this; } +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus1_r15() +{ + set(types::pos_sib1_minus1_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus2_r15() +{ + set(types::pos_sib1_minus2_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus3_r15() +{ + set(types::pos_sib1_minus3_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus4_r15() +{ + set(types::pos_sib1_minus4_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus5_r15() +{ + set(types::pos_sib1_minus5_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus6_r15() +{ + set(types::pos_sib1_minus6_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib1_minus7_r15() +{ + set(types::pos_sib1_minus7_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus1_r15() +{ + set(types::pos_sib2_minus1_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus2_r15() +{ + set(types::pos_sib2_minus2_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus3_r15() +{ + set(types::pos_sib2_minus3_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus4_r15() +{ + set(types::pos_sib2_minus4_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus5_r15() +{ + set(types::pos_sib2_minus5_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus6_r15() +{ + set(types::pos_sib2_minus6_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus7_r15() +{ + set(types::pos_sib2_minus7_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus8_r15() +{ + set(types::pos_sib2_minus8_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus9_r15() +{ + set(types::pos_sib2_minus9_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus10_r15() +{ + set(types::pos_sib2_minus10_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus11_r15() +{ + set(types::pos_sib2_minus11_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus12_r15() +{ + set(types::pos_sib2_minus12_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus13_r15() +{ + set(types::pos_sib2_minus13_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus14_r15() +{ + set(types::pos_sib2_minus14_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus15_r15() +{ + set(types::pos_sib2_minus15_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus16_r15() +{ + set(types::pos_sib2_minus16_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus17_r15() +{ + set(types::pos_sib2_minus17_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus18_r15() +{ + set(types::pos_sib2_minus18_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib2_minus19_r15() +{ + set(types::pos_sib2_minus19_r15); + return c.get(); +} +sib_pos_r15_s& pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set_pos_sib3_minus1_r15() +{ + set(types::pos_sib3_minus1_r15); + return c.get(); +} void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8709,6 +9007,121 @@ sib_info_item_c& sib_info_item_c::operator=(const sib_info_item_c& other) return *this; } +sib_type2_s& sib_info_item_c::set_sib2() +{ + set(types::sib2); + return c.get(); +} +sib_type3_s& sib_info_item_c::set_sib3() +{ + set(types::sib3); + return c.get(); +} +sib_type4_s& sib_info_item_c::set_sib4() +{ + set(types::sib4); + return c.get(); +} +sib_type5_s& sib_info_item_c::set_sib5() +{ + set(types::sib5); + return c.get(); +} +sib_type6_s& sib_info_item_c::set_sib6() +{ + set(types::sib6); + return c.get(); +} +sib_type7_s& sib_info_item_c::set_sib7() +{ + set(types::sib7); + return c.get(); +} +sib_type8_s& sib_info_item_c::set_sib8() +{ + set(types::sib8); + return c.get(); +} +sib_type9_s& sib_info_item_c::set_sib9() +{ + set(types::sib9); + return c.get(); +} +sib_type10_s& sib_info_item_c::set_sib10() +{ + set(types::sib10); + return c.get(); +} +sib_type11_s& sib_info_item_c::set_sib11() +{ + set(types::sib11); + return c.get(); +} +sib_type12_r9_s& sib_info_item_c::set_sib12_v920() +{ + set(types::sib12_v920); + return c.get(); +} +sib_type13_r9_s& sib_info_item_c::set_sib13_v920() +{ + set(types::sib13_v920); + return c.get(); +} +sib_type14_r11_s& sib_info_item_c::set_sib14_v1130() +{ + set(types::sib14_v1130); + return c.get(); +} +sib_type15_r11_s& sib_info_item_c::set_sib15_v1130() +{ + set(types::sib15_v1130); + return c.get(); +} +sib_type16_r11_s& sib_info_item_c::set_sib16_v1130() +{ + set(types::sib16_v1130); + return c.get(); +} +sib_type17_r12_s& sib_info_item_c::set_sib17_v1250() +{ + set(types::sib17_v1250); + return c.get(); +} +sib_type18_r12_s& sib_info_item_c::set_sib18_v1250() +{ + set(types::sib18_v1250); + return c.get(); +} +sib_type19_r12_s& sib_info_item_c::set_sib19_v1250() +{ + set(types::sib19_v1250); + return c.get(); +} +sib_type20_r13_s& sib_info_item_c::set_sib20_v1310() +{ + set(types::sib20_v1310); + return c.get(); +} +sib_type21_r14_s& sib_info_item_c::set_sib21_v1430() +{ + set(types::sib21_v1430); + return c.get(); +} +sib_type24_r15_s& sib_info_item_c::set_sib24_v1530() +{ + set(types::sib24_v1530); + return c.get(); +} +sib_type25_r15_s& sib_info_item_c::set_sib25_v1530() +{ + set(types::sib25_v1530); + return c.get(); +} +sib_type26_r15_s& sib_info_item_c::set_sib26_v1530() +{ + set(types::sib26_v1530); + return c.get(); +} void sib_info_item_c::to_json(json_writer& j) const { j.start_obj(); @@ -9123,6 +9536,16 @@ sys_info_s::crit_exts_c_& sys_info_s::crit_exts_c_::operator=(const sys_info_s:: return *this; } +sys_info_r8_ies_s& sys_info_s::crit_exts_c_::set_sys_info_r8() +{ + set(types::sys_info_r8); + return c.get(); +} +sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& sys_info_s::crit_exts_c_::set_crit_exts_future_r15() +{ + set(types::crit_exts_future_r15); + return c.get(); +} void sys_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9179,6 +9602,15 @@ void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set(types::options e) { type_ = e; } +pos_sys_info_r15_ies_s& sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set_pos_sys_info_r15() +{ + set(types::pos_sys_info_r15); + return c; +} +void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9232,6 +9664,15 @@ void bcch_dl_sch_msg_type_c::set(types::options e) { type_ = e; } +bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void bcch_dl_sch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -9347,6 +9788,16 @@ bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::c1_c_::operator=(const bc return *this; } +sys_info_s& bcch_dl_sch_msg_type_c::c1_c_::set_sys_info() +{ + set(types::sys_info); + return c.get(); +} +sib_type1_s& bcch_dl_sch_msg_type_c::c1_c_::set_sib_type1() +{ + set(types::sib_type1); + return c.get(); +} void bcch_dl_sch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9433,6 +9884,15 @@ void bcch_dl_sch_msg_type_br_r13_c::set(types::options e) { type_ = e; } +bcch_dl_sch_msg_type_br_r13_c::c1_c_& bcch_dl_sch_msg_type_br_r13_c::set_c1() +{ + set(types::c1); + return c; +} +void bcch_dl_sch_msg_type_br_r13_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_dl_sch_msg_type_br_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -9549,6 +10009,16 @@ bcch_dl_sch_msg_type_br_r13_c::c1_c_::operator=(const bcch_dl_sch_msg_type_br_r1 return *this; } +sys_info_br_r13_s& bcch_dl_sch_msg_type_br_r13_c::c1_c_::set_sys_info_br_r13() +{ + set(types::sys_info_br_r13); + return c.get(); +} +sib_type1_br_r13_s& bcch_dl_sch_msg_type_br_r13_c::c1_c_::set_sib_type1_br_r13() +{ + set(types::sib_type1_br_r13); + return c.get(); +} void bcch_dl_sch_msg_type_br_r13_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9631,7 +10101,7 @@ void bcch_dl_sch_msg_br_s::to_json(json_writer& j) const } // SIB-Type-MBMS-r14 ::= ENUMERATED -std::string sib_type_mbms_r14_opts::to_string() const +const char* sib_type_mbms_r14_opts::to_string() const { static const char* options[] = { "sibType10", "sibType11", "sibType12-v920", "sibType13-v920", "sibType15-v1130", "sibType16-v1130"}; @@ -9670,7 +10140,7 @@ void sched_info_mbms_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sched_info_mbms_r14_s::si_periodicity_r14_opts::to_string() const +const char* sched_info_mbms_r14_s::si_periodicity_r14_opts::to_string() const { static const char* options[] = {"rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; return convert_enum_idx(options, 6, value, "sched_info_mbms_r14_s::si_periodicity_r14_e_"); @@ -9707,7 +10177,7 @@ void non_mbsfn_sf_cfg_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_string() const +const char* non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_string() const { static const char* options[] = {"rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf512"}; return convert_enum_idx(options, 7, value, "non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_e_"); @@ -9834,7 +10304,7 @@ void sib_type1_mbms_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_mbms_r14_s::si_win_len_r14_opts::to_string() const +const char* sib_type1_mbms_r14_s::si_win_len_r14_opts::to_string() const { static const char* options[] = {"ms1", "ms2", "ms5", "ms10", "ms15", "ms20", "ms40", "ms80"}; return convert_enum_idx(options, 8, value, "sib_type1_mbms_r14_s::si_win_len_r14_e_"); @@ -10072,7 +10542,7 @@ void inter_freq_carrier_freq_info_v9e0_s::to_json(json_writer& j) const } // SIB-Type-v12j0 ::= ENUMERATED -std::string sib_type_v12j0_opts::to_string() const +const char* sib_type_v12j0_opts::to_string() const { static const char* options[] = {"sibType19-v1250", "sibType20-v1310", diff --git a/lib/src/asn1/rrc/common.cc b/lib/src/asn1/rrc/common.cc index 585993cb0..41621adf2 100644 --- a/lib/src/asn1/rrc/common.cc +++ b/lib/src/asn1/rrc/common.cc @@ -94,14 +94,14 @@ void plmn_id_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string plmn_id_info_s::cell_reserved_for_oper_opts::to_string() const +const char* plmn_id_info_s::cell_reserved_for_oper_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_s::cell_reserved_for_oper_e_"); } // Alpha-r12 ::= ENUMERATED -std::string alpha_r12_opts::to_string() const +const char* alpha_r12_opts::to_string() const { static const char* options[] = {"al0", "al04", "al05", "al06", "al07", "al08", "al09", "al1"}; return convert_enum_idx(options, 8, value, "alpha_r12_e"); @@ -111,14 +111,14 @@ float alpha_r12_opts::to_number() const static const float options[] = {0.0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}; return map_enum_number(options, 8, value, "alpha_r12_e"); } -std::string alpha_r12_opts::to_number_string() const +const char* alpha_r12_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1"}; return convert_enum_idx(options, 8, value, "alpha_r12_e"); } // BandclassCDMA2000 ::= ENUMERATED -std::string bandclass_cdma2000_opts::to_string() const +const char* bandclass_cdma2000_opts::to_string() const { static const char* options[] = {"bc0", "bc1", "bc2", "bc3", "bc4", "bc5", "bc6", "bc7", "bc8", "bc9", "bc10", "bc11", "bc12", "bc13", @@ -134,7 +134,7 @@ uint8_t bandclass_cdma2000_opts::to_number() const } // FilterCoefficient ::= ENUMERATED -std::string filt_coef_opts::to_string() const +const char* filt_coef_opts::to_string() const { static const char* options[] = {"fc0", "fc1", @@ -192,7 +192,7 @@ bool mbsfn_sf_cfg_s::operator==(const mbsfn_sf_cfg_s& other) const radioframe_alloc_offset == other.radioframe_alloc_offset and sf_alloc == other.sf_alloc; } -std::string mbsfn_sf_cfg_s::radioframe_alloc_period_opts::to_string() const +const char* mbsfn_sf_cfg_s::radioframe_alloc_period_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 6, value, "mbsfn_sf_cfg_s::radioframe_alloc_period_e_"); @@ -270,6 +270,16 @@ mbsfn_sf_cfg_s::sf_alloc_c_& mbsfn_sf_cfg_s::sf_alloc_c_::operator=(const mbsfn_ return *this; } +fixed_bitstring<6>& mbsfn_sf_cfg_s::sf_alloc_c_::set_one_frame() +{ + set(types::one_frame); + return c.get >(); +} +fixed_bitstring<24>& mbsfn_sf_cfg_s::sf_alloc_c_::set_four_frames() +{ + set(types::four_frames); + return c.get >(); +} void mbsfn_sf_cfg_s::sf_alloc_c_::to_json(json_writer& j) const { j.start_obj(); @@ -428,6 +438,16 @@ mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::operator=(const mbsfn_sf_cfg_v1430_s::s return *this; } +fixed_bitstring<2>& mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::set_one_frame_v1430() +{ + set(types::one_frame_v1430); + return c.get >(); +} +fixed_bitstring<8>& mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::set_four_frames_v1430() +{ + set(types::four_frames_v1430); + return c.get >(); +} void mbsfn_sf_cfg_v1430_s::sf_alloc_v1430_c_::to_json(json_writer& j) const { j.start_obj(); @@ -561,6 +581,16 @@ meas_sf_pattern_r10_c& meas_sf_pattern_r10_c::operator=(const meas_sf_pattern_r1 return *this; } +fixed_bitstring<40>& meas_sf_pattern_r10_c::set_sf_pattern_fdd_r10() +{ + set(types::sf_pattern_fdd_r10); + return c.get >(); +} +meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_& meas_sf_pattern_r10_c::set_sf_pattern_tdd_r10() +{ + set(types::sf_pattern_tdd_r10); + return c.get(); +} void meas_sf_pattern_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -708,6 +738,21 @@ meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::operator=(const meas_sf_pattern_r1 return *this; } +fixed_bitstring<20>& meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::set_sf_cfg1_minus5_r10() +{ + set(types::sf_cfg1_minus5_r10); + return c.get >(); +} +fixed_bitstring<70>& meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::set_sf_cfg0_r10() +{ + set(types::sf_cfg0_r10); + return c.get >(); +} +fixed_bitstring<60>& meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::set_sf_cfg6_r10() +{ + set(types::sf_cfg6_r10); + return c.get >(); +} void meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -785,7 +830,7 @@ bool meas_sf_pattern_r10_c::sf_pattern_tdd_r10_c_::operator==(const sf_pattern_t } // CipheringAlgorithm-r12 ::= ENUMERATED -std::string ciphering_algorithm_r12_opts::to_string() const +const char* ciphering_algorithm_r12_opts::to_string() const { static const char* options[] = {"eea0", "eea1", "eea2", "eea3-v1130", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ciphering_algorithm_r12_e"); @@ -797,7 +842,7 @@ uint8_t ciphering_algorithm_r12_opts::to_number() const } // WLAN-BandIndicator-r13 ::= ENUMERATED -std::string wlan_band_ind_r13_opts::to_string() const +const char* wlan_band_ind_r13_opts::to_string() const { static const char* options[] = { "band2dot4", "band5", "band60-v1430", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -808,7 +853,7 @@ float wlan_band_ind_r13_opts::to_number() const static const float options[] = {2.4, 5.0, 60.0}; return map_enum_number(options, 3, value, "wlan_band_ind_r13_e"); } -std::string wlan_band_ind_r13_opts::to_number_string() const +const char* wlan_band_ind_r13_opts::to_number_string() const { static const char* options[] = {"2.4", "5", "60"}; return convert_enum_idx(options, 8, value, "wlan_band_ind_r13_e"); diff --git a/lib/src/asn1/rrc/common_ext.cc b/lib/src/asn1/rrc/common_ext.cc index 2592a54d3..836f9ac7f 100644 --- a/lib/src/asn1/rrc/common_ext.cc +++ b/lib/src/asn1/rrc/common_ext.cc @@ -57,6 +57,15 @@ void sl_tx_pwr_r14_c::set(types::options e) { type_ = e; } +void sl_tx_pwr_r14_c::set_minusinfinity_r14() +{ + set(types::minusinfinity_r14); +} +int8_t& sl_tx_pwr_r14_c::set_tx_pwr_r14() +{ + set(types::tx_pwr_r14); + return c; +} void sl_tx_pwr_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -244,7 +253,7 @@ void sl_pssch_tx_params_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_pssch_tx_params_r14_s::allowed_retx_num_pssch_r14_opts::to_string() const +const char* sl_pssch_tx_params_r14_s::allowed_retx_num_pssch_r14_opts::to_string() const { static const char* options[] = {"n0", "n1", "both", "spare1"}; return convert_enum_idx(options, 4, value, "sl_pssch_tx_params_r14_s::allowed_retx_num_pssch_r14_e_"); @@ -279,7 +288,7 @@ void sl_pssch_tx_params_v1530_s::to_json(json_writer& j) const } // SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED -std::string sl_restrict_res_reserv_period_r14_opts::to_string() const +const char* sl_restrict_res_reserv_period_r14_opts::to_string() const { static const char* options[] = {"v0dot2", "v0dot5", @@ -304,21 +313,21 @@ float sl_restrict_res_reserv_period_r14_opts::to_number() const static const float options[] = {0.2, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}; return map_enum_number(options, 12, value, "sl_restrict_res_reserv_period_r14_e"); } -std::string sl_restrict_res_reserv_period_r14_opts::to_number_string() const +const char* sl_restrict_res_reserv_period_r14_opts::to_number_string() const { static const char* options[] = {"0.2", "0.5", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; return convert_enum_idx(options, 16, value, "sl_restrict_res_reserv_period_r14_e"); } // SL-TypeTxSync-r14 ::= ENUMERATED -std::string sl_type_tx_sync_r14_opts::to_string() const +const char* sl_type_tx_sync_r14_opts::to_string() const { static const char* options[] = {"gnss", "enb", "ue"}; return convert_enum_idx(options, 3, value, "sl_type_tx_sync_r14_e"); } // SL-CP-Len-r12 ::= ENUMERATED -std::string sl_cp_len_r12_opts::to_string() const +const char* sl_cp_len_r12_opts::to_string() const { static const char* options[] = {"normal", "extended"}; return convert_enum_idx(options, 2, value, "sl_cp_len_r12_e"); @@ -368,6 +377,16 @@ sl_offset_ind_r12_c& sl_offset_ind_r12_c::operator=(const sl_offset_ind_r12_c& o return *this; } +uint16_t& sl_offset_ind_r12_c::set_small_r12() +{ + set(types::small_r12); + return c.get(); +} +uint16_t& sl_offset_ind_r12_c::set_large_r12() +{ + set(types::large_r12); + return c.get(); +} void sl_offset_ind_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -538,7 +557,7 @@ void sl_pssch_tx_cfg_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_pssch_tx_cfg_r14_s::thres_ue_speed_r14_opts::to_string() const +const char* sl_pssch_tx_cfg_r14_s::thres_ue_speed_r14_opts::to_string() const { static const char* options[] = {"kmph60", "kmph80", "kmph100", "kmph120", "kmph140", "kmph160", "kmph180", "kmph200"}; return convert_enum_idx(options, 8, value, "sl_pssch_tx_cfg_r14_s::thres_ue_speed_r14_e_"); @@ -732,6 +751,41 @@ sf_bitmap_sl_r12_c& sf_bitmap_sl_r12_c::operator=(const sf_bitmap_sl_r12_c& othe return *this; } +fixed_bitstring<4>& sf_bitmap_sl_r12_c::set_bs4_r12() +{ + set(types::bs4_r12); + return c.get >(); +} +fixed_bitstring<8>& sf_bitmap_sl_r12_c::set_bs8_r12() +{ + set(types::bs8_r12); + return c.get >(); +} +fixed_bitstring<12>& sf_bitmap_sl_r12_c::set_bs12_r12() +{ + set(types::bs12_r12); + return c.get >(); +} +fixed_bitstring<16>& sf_bitmap_sl_r12_c::set_bs16_r12() +{ + set(types::bs16_r12); + return c.get >(); +} +fixed_bitstring<30>& sf_bitmap_sl_r12_c::set_bs30_r12() +{ + set(types::bs30_r12); + return c.get >(); +} +fixed_bitstring<40>& sf_bitmap_sl_r12_c::set_bs40_r12() +{ + set(types::bs40_r12); + return c.get >(); +} +fixed_bitstring<42>& sf_bitmap_sl_r12_c::set_bs42_r12() +{ + set(types::bs42_r12); + return c.get >(); +} void sf_bitmap_sl_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -967,6 +1021,46 @@ sf_bitmap_sl_r14_c& sf_bitmap_sl_r14_c::operator=(const sf_bitmap_sl_r14_c& othe return *this; } +fixed_bitstring<10>& sf_bitmap_sl_r14_c::set_bs10_r14() +{ + set(types::bs10_r14); + return c.get >(); +} +fixed_bitstring<16>& sf_bitmap_sl_r14_c::set_bs16_r14() +{ + set(types::bs16_r14); + return c.get >(); +} +fixed_bitstring<20>& sf_bitmap_sl_r14_c::set_bs20_r14() +{ + set(types::bs20_r14); + return c.get >(); +} +fixed_bitstring<30>& sf_bitmap_sl_r14_c::set_bs30_r14() +{ + set(types::bs30_r14); + return c.get >(); +} +fixed_bitstring<40>& sf_bitmap_sl_r14_c::set_bs40_r14() +{ + set(types::bs40_r14); + return c.get >(); +} +fixed_bitstring<50>& sf_bitmap_sl_r14_c::set_bs50_r14() +{ + set(types::bs50_r14); + return c.get >(); +} +fixed_bitstring<60>& sf_bitmap_sl_r14_c::set_bs60_r14() +{ + set(types::bs60_r14); + return c.get >(); +} +fixed_bitstring<100>& sf_bitmap_sl_r14_c::set_bs100_r14() +{ + set(types::bs100_r14); + return c.get >(); +} void sf_bitmap_sl_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -1312,7 +1406,7 @@ void sl_comm_res_pool_v2x_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_comm_res_pool_v2x_r14_s::size_subch_r14_opts::to_string() const +const char* sl_comm_res_pool_v2x_r14_s::size_subch_r14_opts::to_string() const { static const char* options[] = {"n4", "n5", "n6", "n8", "n9", "n10", "n12", "n15", "n16", "n18", "n20", "n25", "n30", "n48", "n50", "n72", @@ -1326,7 +1420,7 @@ uint8_t sl_comm_res_pool_v2x_r14_s::size_subch_r14_opts::to_number() const return map_enum_number(options, 19, value, "sl_comm_res_pool_v2x_r14_s::size_subch_r14_e_"); } -std::string sl_comm_res_pool_v2x_r14_s::num_subch_r14_opts::to_string() const +const char* sl_comm_res_pool_v2x_r14_s::num_subch_r14_opts::to_string() const { static const char* options[] = {"n1", "n3", "n5", "n8", "n10", "n15", "n20", "spare1"}; return convert_enum_idx(options, 8, value, "sl_comm_res_pool_v2x_r14_s::num_subch_r14_e_"); @@ -1533,7 +1627,7 @@ void sl_sync_cfg_nfreq_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_sync_cfg_nfreq_r13_s::rx_params_r13_s_::disc_sync_win_r13_opts::to_string() const +const char* sl_sync_cfg_nfreq_r13_s::rx_params_r13_s_::disc_sync_win_r13_opts::to_string() const { static const char* options[] = {"w1", "w2"}; return convert_enum_idx(options, 2, value, "sl_sync_cfg_nfreq_r13_s::rx_params_r13_s_::disc_sync_win_r13_e_"); @@ -1659,7 +1753,7 @@ void sl_comm_tx_pool_sensing_cfg_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_opts::to_string() const +const char* sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_opts::to_string() const { static const char* options[] = {"v0", "v0dot2", "v0dot4", "v0dot6", "v0dot8", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_e_"); @@ -1669,13 +1763,13 @@ float sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_opts::to_number() con static const float options[] = {0.0, 0.2, 0.4, 0.6, 0.8}; return map_enum_number(options, 5, value, "sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_e_"); } -std::string sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_opts::to_number_string() const +const char* sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_opts::to_number_string() const { static const char* options[] = {"0", "0.2", "0.4", "0.6", "0.8"}; return convert_enum_idx(options, 8, value, "sl_comm_tx_pool_sensing_cfg_r14_s::prob_res_keep_r14_e_"); } -std::string sl_comm_tx_pool_sensing_cfg_r14_s::sl_reselect_after_r14_opts::to_string() const +const char* sl_comm_tx_pool_sensing_cfg_r14_s::sl_reselect_after_r14_opts::to_string() const { static const char* options[] = {"n1", "n2", @@ -1885,7 +1979,7 @@ void sl_disc_res_pool_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_disc_res_pool_r12_s::disc_period_r12_opts::to_string() const +const char* sl_disc_res_pool_r12_s::disc_period_r12_opts::to_string() const { static const char* options[] = {"rf32", "rf64", "rf128", "rf256", "rf512", "rf1024", "rf16-v1310", "spare"}; return convert_enum_idx(options, 8, value, "sl_disc_res_pool_r12_s::disc_period_r12_e_"); @@ -1900,6 +1994,16 @@ void sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r { type_ = e; } +sl_pool_sel_cfg_r12_s& +sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::set_rsrp_based_r12() +{ + set(types::rsrp_based_r12); + return c; +} +void sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::set_random_r12() +{ + set(types::random_r12); +} void sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::pool_sel_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1948,7 +2052,7 @@ SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::poo return SRSASN_SUCCESS; } -std::string sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::tx_probability_r12_opts::to_string() const +const char* sl_disc_res_pool_r12_s::tx_params_r12_s_::ue_sel_res_cfg_r12_s_::tx_probability_r12_opts::to_string() const { static const char* options[] = {"p25", "p50", "p75", "p100"}; return convert_enum_idx( @@ -1965,6 +2069,15 @@ void sl_disc_res_pool_r12_s::disc_period_v1310_c_::set(types::options e) { type_ = e; } +void sl_disc_res_pool_r12_s::disc_period_v1310_c_::set_release() +{ + set(types::release); +} +sl_disc_res_pool_r12_s::disc_period_v1310_c_::setup_e_& sl_disc_res_pool_r12_s::disc_period_v1310_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_res_pool_r12_s::disc_period_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2012,7 +2125,7 @@ SRSASN_CODE sl_disc_res_pool_r12_s::disc_period_v1310_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sl_disc_res_pool_r12_s::disc_period_v1310_c_::setup_opts::to_string() const +const char* sl_disc_res_pool_r12_s::disc_period_v1310_c_::setup_opts::to_string() const { static const char* options[] = {"rf4", "rf6", "rf7", "rf8", "rf12", "rf14", "rf24", "rf28"}; return convert_enum_idx(options, 8, value, "sl_disc_res_pool_r12_s::disc_period_v1310_c_::setup_e_"); @@ -2027,6 +2140,16 @@ void sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::set(types::options { type_ = e; } +void sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::set_release() +{ + set(types::release); +} +sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::setup_s_& +sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_res_pool_r12_s::rx_params_add_neigh_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2085,6 +2208,16 @@ void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::set(types::options { type_ = e; } +void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::set_release() +{ + set(types::release); +} +sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::setup_s_& +sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2216,7 +2349,7 @@ SRSASN_CODE sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::unpack(cbit return SRSASN_SUCCESS; } -std::string +const char* sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_r13_c_::setup_s_::freq_info_s_::ul_bw_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; @@ -2234,6 +2367,16 @@ void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::set(types::optio { type_ = e; } +void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::set_release() +{ + set(types::release); +} +sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::setup_s_& +sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_res_pool_r12_s::tx_params_add_neigh_freq_v1370_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2316,7 +2459,7 @@ void sl_zone_cfg_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_zone_cfg_r14_s::zone_len_r14_opts::to_string() const +const char* sl_zone_cfg_r14_s::zone_len_r14_opts::to_string() const { static const char* options[] = {"m5", "m10", "m20", "m50", "m100", "m200", "m500", "spare1"}; return convert_enum_idx(options, 8, value, "sl_zone_cfg_r14_s::zone_len_r14_e_"); @@ -2327,7 +2470,7 @@ uint16_t sl_zone_cfg_r14_s::zone_len_r14_opts::to_number() const return map_enum_number(options, 7, value, "sl_zone_cfg_r14_s::zone_len_r14_e_"); } -std::string sl_zone_cfg_r14_s::zone_width_r14_opts::to_string() const +const char* sl_zone_cfg_r14_s::zone_width_r14_opts::to_string() const { static const char* options[] = {"m5", "m10", "m20", "m50", "m100", "m200", "m500", "spare1"}; return convert_enum_idx(options, 8, value, "sl_zone_cfg_r14_s::zone_width_r14_e_"); @@ -2375,7 +2518,7 @@ bool pci_range_s::operator==(const pci_range_s& other) const return start == other.start and range_present == other.range_present and (not range_present or range == other.range); } -std::string pci_range_s::range_opts::to_string() const +const char* pci_range_s::range_opts::to_string() const { static const char* options[] = {"n4", "n8", @@ -2626,7 +2769,7 @@ void sl_v2x_inter_freq_ue_cfg_r14_s::to_json(json_writer& j) const } // AllowedMeasBandwidth ::= ENUMERATED -std::string allowed_meas_bw_opts::to_string() const +const char* allowed_meas_bw_opts::to_string() const { static const char* options[] = {"mbw6", "mbw15", "mbw25", "mbw50", "mbw75", "mbw100"}; return convert_enum_idx(options, 6, value, "allowed_meas_bw_e"); @@ -2679,7 +2822,7 @@ void cell_sel_info_nfreq_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_sel_info_nfreq_r13_s::q_hyst_r13_opts::to_string() const +const char* cell_sel_info_nfreq_r13_s::q_hyst_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB1", @@ -2741,6 +2884,23 @@ void sl_disc_tx_res_inter_freq_r13_c::set(types::options e) { type_ = e; } +void sl_disc_tx_res_inter_freq_r13_c::set_acquire_si_from_carrier_r13() +{ + set(types::acquire_si_from_carrier_r13); +} +sl_disc_tx_pool_list_r12_l& sl_disc_tx_res_inter_freq_r13_c::set_disc_tx_pool_common_r13() +{ + set(types::disc_tx_pool_common_r13); + return c; +} +void sl_disc_tx_res_inter_freq_r13_c::set_request_ded_r13() +{ + set(types::request_ded_r13); +} +void sl_disc_tx_res_inter_freq_r13_c::set_no_tx_on_carrier_r13() +{ + set(types::no_tx_on_carrier_r13); +} void sl_disc_tx_res_inter_freq_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -2897,7 +3057,7 @@ void meas_idle_carrier_eutra_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_idle_carrier_eutra_r15_s::report_quantities_opts::to_string() const +const char* meas_idle_carrier_eutra_r15_s::report_quantities_opts::to_string() const { static const char* options[] = {"rsrp", "rsrq", "both"}; return convert_enum_idx(options, 3, value, "meas_idle_carrier_eutra_r15_s::report_quantities_e_"); @@ -2953,7 +3113,7 @@ void sl_hop_cfg_comm_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_hop_cfg_comm_r12_s::num_subbands_r12_opts::to_string() const +const char* sl_hop_cfg_comm_r12_s::num_subbands_r12_opts::to_string() const { static const char* options[] = {"ns1", "ns2", "ns4"}; return convert_enum_idx(options, 3, value, "sl_hop_cfg_comm_r12_s::num_subbands_r12_e_"); @@ -3113,7 +3273,7 @@ void sl_inter_freq_info_v2x_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_inter_freq_info_v2x_r14_s::sl_bw_r14_opts::to_string() const +const char* sl_inter_freq_info_v2x_r14_s::sl_bw_r14_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "sl_inter_freq_info_v2x_r14_s::sl_bw_r14_e_"); @@ -3170,6 +3330,16 @@ sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::operator=( return *this; } +uint8_t& sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::set_add_spec_emission_r14() +{ + set(types::add_spec_emission_r14); + return c.get(); +} +uint16_t& sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::set_add_spec_emission_v1440() +{ + set(types::add_spec_emission_v1440); + return c.get(); +} void sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3267,7 +3437,7 @@ void sl_pppr_dest_carrier_freq_s::to_json(json_writer& j) const } // SL-PeriodComm-r12 ::= ENUMERATED -std::string sl_period_comm_r12_opts::to_string() const +const char* sl_period_comm_r12_opts::to_string() const { static const char* options[] = {"sf40", "sf60", @@ -3513,7 +3683,7 @@ void sl_sync_cfg_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_sync_cfg_r12_s::rx_params_ncell_r12_s_::disc_sync_win_r12_opts::to_string() const +const char* sl_sync_cfg_r12_s::rx_params_ncell_r12_s_::disc_sync_win_r12_opts::to_string() const { static const char* options[] = {"w1", "w2"}; return convert_enum_idx(options, 2, value, "sl_sync_cfg_r12_s::rx_params_ncell_r12_s_::disc_sync_win_r12_e_"); @@ -3586,7 +3756,7 @@ bool wlan_ids_r12_s::operator==(const wlan_ids_r12_s& other) const } // WLAN-backhaulRate-r12 ::= ENUMERATED -std::string wlan_backhaul_rate_r12_opts::to_string() const +const char* wlan_backhaul_rate_r12_opts::to_string() const { static const char* options[] = { "r0", "r4", "r8", "r16", "r32", "r64", "r128", "r256", @@ -4389,7 +4559,7 @@ void sl_gap_pattern_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_gap_pattern_r13_s::gap_period_r13_opts::to_string() const +const char* sl_gap_pattern_r13_s::gap_period_r13_opts::to_string() const { static const char* options[] = {"sf40", "sf60", diff --git a/lib/src/asn1/rrc/dl_ccch_msg.cc b/lib/src/asn1/rrc/dl_ccch_msg.cc index ea5a42bd5..ff0c6c2f8 100644 --- a/lib/src/asn1/rrc/dl_ccch_msg.cc +++ b/lib/src/asn1/rrc/dl_ccch_msg.cc @@ -334,14 +334,14 @@ void rrc_conn_reject_v1130_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_reject_v1130_ies_s::depriorit_req_r11_s_::depriorit_type_r11_opts::to_string() const +const char* rrc_conn_reject_v1130_ies_s::depriorit_req_r11_s_::depriorit_type_r11_opts::to_string() const { static const char* options[] = {"frequency", "e-utra"}; return convert_enum_idx( options, 2, value, "rrc_conn_reject_v1130_ies_s::depriorit_req_r11_s_::depriorit_type_r11_e_"); } -std::string rrc_conn_reject_v1130_ies_s::depriorit_req_r11_s_::depriorit_timer_r11_opts::to_string() const +const char* rrc_conn_reject_v1130_ies_s::depriorit_req_r11_s_::depriorit_timer_r11_opts::to_string() const { static const char* options[] = {"min5", "min10", "min15", "min30"}; return convert_enum_idx( @@ -656,7 +656,7 @@ void idle_mode_mob_ctrl_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string idle_mode_mob_ctrl_info_s::t320_opts::to_string() const +const char* idle_mode_mob_ctrl_info_s::t320_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min180", "spare1"}; return convert_enum_idx(options, 8, value, "idle_mode_mob_ctrl_info_s::t320_e_"); @@ -990,6 +990,36 @@ redirected_carrier_info_r15_ies_c::operator=(const redirected_carrier_info_r15_i return *this; } +uint32_t& redirected_carrier_info_r15_ies_c::set_eutra_r15() +{ + set(types::eutra_r15); + return c.get(); +} +carrier_freqs_geran_s& redirected_carrier_info_r15_ies_c::set_geran_r15() +{ + set(types::geran_r15); + return c.get(); +} +uint16_t& redirected_carrier_info_r15_ies_c::set_utra_fdd_r15() +{ + set(types::utra_fdd_r15); + return c.get(); +} +carrier_freq_cdma2000_s& redirected_carrier_info_r15_ies_c::set_cdma2000_hrpd_r15() +{ + set(types::cdma2000_hrpd_r15); + return c.get(); +} +carrier_freq_cdma2000_s& redirected_carrier_info_r15_ies_c::set_cdma2000_minus1x_rtt_r15() +{ + set(types::cdma2000_minus1x_rtt_r15); + return c.get(); +} +carrier_freq_list_utra_tdd_r10_l& redirected_carrier_info_r15_ies_c::set_utra_tdd_r15() +{ + set(types::utra_tdd_r15); + return c.get(); +} void redirected_carrier_info_r15_ies_c::to_json(json_writer& j) const { j.start_obj(); @@ -1340,6 +1370,15 @@ void rrc_conn_reest_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_s::crit_exts_c_::c1_c_& rrc_conn_reest_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_reest_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1392,6 +1431,39 @@ void rrc_conn_reest_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_r8_ies_s& rrc_conn_reest_s::crit_exts_c_::c1_c_::set_rrc_conn_reest_r8() +{ + set(types::rrc_conn_reest_r8); + return c; +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_reest_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_reest_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1501,6 +1573,15 @@ void rrc_conn_reest_reject_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_s::crit_exts_c_::set_rrc_conn_reest_reject_r8() +{ + set(types::rrc_conn_reest_reject_r8); + return c; +} +void rrc_conn_reest_reject_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_reject_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1574,6 +1655,15 @@ void rrc_conn_reject_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reject_s::crit_exts_c_::c1_c_& rrc_conn_reject_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_reject_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reject_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1626,6 +1716,23 @@ void rrc_conn_reject_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_reject_r8_ies_s& rrc_conn_reject_s::crit_exts_c_::c1_c_::set_rrc_conn_reject_r8() +{ + set(types::rrc_conn_reject_r8); + return c; +} +void rrc_conn_reject_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_reject_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_reject_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_reject_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1714,6 +1821,15 @@ void rrc_conn_setup_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_s::crit_exts_c_::c1_c_& rrc_conn_setup_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_setup_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_setup_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1766,6 +1882,39 @@ void rrc_conn_setup_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_r8_ies_s& rrc_conn_setup_s::crit_exts_c_::c1_c_::set_rrc_conn_setup_r8() +{ + set(types::rrc_conn_setup_r8); + return c; +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_setup_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_setup_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1875,6 +2024,15 @@ void rrc_early_data_complete_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15_s::crit_exts_c_::set_rrc_early_data_complete_r15() +{ + set(types::rrc_early_data_complete_r15); + return c; +} +void rrc_early_data_complete_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_early_data_complete_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1991,6 +2149,16 @@ dl_ccch_msg_type_c& dl_ccch_msg_type_c::operator=(const dl_ccch_msg_type_c& othe return *this; } +dl_ccch_msg_type_c::c1_c_& dl_ccch_msg_type_c::set_c1() +{ + set(types::c1); + return c.get(); +} +dl_ccch_msg_type_c::msg_class_ext_c_& dl_ccch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); + return c.get(); +} void dl_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -2134,6 +2302,26 @@ dl_ccch_msg_type_c::c1_c_& dl_ccch_msg_type_c::c1_c_::operator=(const dl_ccch_ms return *this; } +rrc_conn_reest_s& dl_ccch_msg_type_c::c1_c_::set_rrc_conn_reest() +{ + set(types::rrc_conn_reest); + return c.get(); +} +rrc_conn_reest_reject_s& dl_ccch_msg_type_c::c1_c_::set_rrc_conn_reest_reject() +{ + set(types::rrc_conn_reest_reject); + return c.get(); +} +rrc_conn_reject_s& dl_ccch_msg_type_c::c1_c_::set_rrc_conn_reject() +{ + set(types::rrc_conn_reject); + return c.get(); +} +rrc_conn_setup_s& dl_ccch_msg_type_c::c1_c_::set_rrc_conn_setup() +{ + set(types::rrc_conn_setup); + return c.get(); +} void dl_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2210,6 +2398,15 @@ void dl_ccch_msg_type_c::msg_class_ext_c_::set(types::options e) { type_ = e; } +dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_& dl_ccch_msg_type_c::msg_class_ext_c_::set_c2() +{ + set(types::c2); + return c; +} +void dl_ccch_msg_type_c::msg_class_ext_c_::set_msg_class_ext_future_r15() +{ + set(types::msg_class_ext_future_r15); +} void dl_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2262,6 +2459,23 @@ void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set(types::options e) { type_ = e; } +rrc_early_data_complete_r15_s& dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set_rrc_early_data_complete_r15() +{ + set(types::rrc_early_data_complete_r15); + return c; +} +void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare3() +{ + set(types::spare3); +} +void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare2() +{ + set(types::spare2); +} +void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare1() +{ + set(types::spare1); +} void dl_ccch_msg_type_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/dl_dcch_msg.cc b/lib/src/asn1/rrc/dl_dcch_msg.cc index 2e376cfa9..136e88df1 100644 --- a/lib/src/asn1/rrc/dl_dcch_msg.cc +++ b/lib/src/asn1/rrc/dl_dcch_msg.cc @@ -239,7 +239,7 @@ void sl_hop_cfg_disc_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_hop_cfg_disc_r12_s::c_r12_opts::to_string() const +const char* sl_hop_cfg_disc_r12_s::c_r12_opts::to_string() const { static const char* options[] = {"n1", "n5"}; return convert_enum_idx(options, 2, value, "sl_hop_cfg_disc_r12_s::c_r12_e_"); @@ -338,6 +338,16 @@ ip_address_r13_c& ip_address_r13_c::operator=(const ip_address_r13_c& other) return *this; } +fixed_bitstring<32>& ip_address_r13_c::set_ipv4_r13() +{ + set(types::ipv4_r13); + return c.get >(); +} +fixed_bitstring<128>& ip_address_r13_c::set_ipv6_r13() +{ + set(types::ipv6_r13); + return c.get >(); +} void ip_address_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -618,7 +628,7 @@ void sl_tx_pool_to_add_mod_r14_s::to_json(json_writer& j) const } // SubframeAssignment-r15 ::= ENUMERATED -std::string sf_assign_r15_opts::to_string() const +const char* sf_assign_r15_opts::to_string() const { static const char* options[] = {"sa0", "sa1", "sa2", "sa3", "sa4", "sa5", "sa6"}; return convert_enum_idx(options, 7, value, "sf_assign_r15_e"); @@ -659,7 +669,7 @@ void ul_pwr_ctrl_common_ps_cell_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format3_r12_opts::to_string() const +const char* ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format3_r12_opts::to_string() const { static const char* options[] = { "deltaF-1", "deltaF0", "deltaF1", "deltaF2", "deltaF3", "deltaF4", "deltaF5", "deltaF6"}; @@ -671,7 +681,7 @@ int8_t ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format3_r12_opts::to_numb return map_enum_number(options, 8, value, "ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format3_r12_e_"); } -std::string ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format1b_cs_r12_opts::to_string() const +const char* ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format1b_cs_r12_opts::to_string() const { static const char* options[] = {"deltaF1", "deltaF2", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_pwr_ctrl_common_ps_cell_r12_s::delta_f_pucch_format1b_cs_r12_e_"); @@ -1297,6 +1307,15 @@ void sl_disc_tx_ref_carrier_ded_r13_c::set(types::options e) { type_ = e; } +void sl_disc_tx_ref_carrier_ded_r13_c::set_pcell() +{ + set(types::pcell); +} +uint8_t& sl_disc_tx_ref_carrier_ded_r13_c::set_scell() +{ + set(types::scell); + return c; +} void sl_disc_tx_ref_carrier_ded_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -1349,6 +1368,15 @@ void sl_disc_tx_res_r13_c::set(types::options e) { type_ = e; } +void sl_disc_tx_res_r13_c::set_release() +{ + set(types::release); +} +sl_disc_tx_res_r13_c::setup_c_& sl_disc_tx_res_r13_c::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_tx_res_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -1464,6 +1492,16 @@ sl_disc_tx_res_r13_c::setup_c_& sl_disc_tx_res_r13_c::setup_c_::operator=(const return *this; } +sl_disc_tx_cfg_sched_r13_s& sl_disc_tx_res_r13_c::setup_c_::set_sched_r13() +{ + set(types::sched_r13); + return c.get(); +} +sl_disc_tx_pool_ded_r13_s& sl_disc_tx_res_r13_c::setup_c_::set_ue_sel_r13() +{ + set(types::ue_sel_r13); + return c.get(); +} void sl_disc_tx_res_r13_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1521,6 +1559,15 @@ void tdm_pattern_cfg_r15_c::set(types::options e) { type_ = e; } +void tdm_pattern_cfg_r15_c::set_release() +{ + set(types::release); +} +tdm_pattern_cfg_r15_c::setup_s_& tdm_pattern_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void tdm_pattern_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -1735,7 +1782,7 @@ void wlan_mob_cfg_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string wlan_mob_cfg_r13_s::assoc_timer_r13_opts::to_string() const +const char* wlan_mob_cfg_r13_s::assoc_timer_r13_opts::to_string() const { static const char* options[] = {"s10", "s30", "s60", "s120", "s240"}; return convert_enum_idx(options, 5, value, "wlan_mob_cfg_r13_s::assoc_timer_r13_e_"); @@ -1966,7 +2013,7 @@ void mob_ctrl_info_scg_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string mob_ctrl_info_scg_r12_s::t307_r12_opts::to_string() const +const char* mob_ctrl_info_scg_r12_s::t307_r12_opts::to_string() const { static const char* options[] = {"ms50", "ms100", "ms150", "ms200", "ms500", "ms1000", "ms2000", "spare1"}; return convert_enum_idx(options, 8, value, "mob_ctrl_info_scg_r12_s::t307_r12_e_"); @@ -2201,6 +2248,15 @@ void rclwi_cfg_r13_s::cmd_c_::set(types::options e) { type_ = e; } +rclwi_cfg_r13_s::cmd_c_::steer_to_wlan_r13_s_& rclwi_cfg_r13_s::cmd_c_::set_steer_to_wlan_r13() +{ + set(types::steer_to_wlan_r13); + return c; +} +void rclwi_cfg_r13_s::cmd_c_::set_steer_to_lte_r13() +{ + set(types::steer_to_lte_r13); +} void rclwi_cfg_r13_s::cmd_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2347,6 +2403,15 @@ void rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::set(types::options e) { type_ = e; } +void rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::set_release() +{ + set(types::release); +} +rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::setup_s_& rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2754,6 +2819,15 @@ void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::set(types::options e) { type_ = e; } +void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::set_release() +{ + set(types::release); +} +sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2871,6 +2945,18 @@ sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm_t return *this; } +sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::sched_r14_s_& +sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::set_sched_r14() +{ + set(types::sched_r14); + return c.get(); +} +sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::ue_sel_r14_s_& +sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::set_ue_sel_r14() +{ + set(types::ue_sel_r14); + return c.get(); +} void sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3036,6 +3122,15 @@ void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::set(types::options e) { type_ = e; } +void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::set_release() +{ + set(types::release); +} +sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3153,6 +3248,18 @@ sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_& sl_v2x_cfg_ded_r14_s::comm return *this; } +sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::sched_v1530_s_& +sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::set_sched_v1530() +{ + set(types::sched_v1530); + return c.get(); +} +sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::ue_sel_v1530_s_& +sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::set_ue_sel_v1530() +{ + set(types::ue_sel_v1530); + return c.get(); +} void sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3261,6 +3368,15 @@ void lwa_cfg_r13_c::set(types::options e) { type_ = e; } +void lwa_cfg_r13_c::set_release() +{ + set(types::release); +} +lwa_cfg_r13_c::setup_s_& lwa_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void lwa_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -3317,6 +3433,15 @@ void lwip_cfg_r13_c::set(types::options e) { type_ = e; } +void lwip_cfg_r13_c::set_release() +{ + set(types::release); +} +lwip_cfg_r13_c::setup_s_& lwip_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void lwip_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -3462,6 +3587,16 @@ ran_notif_area_info_r15_c& ran_notif_area_info_r15_c::operator=(const ran_notif_ return *this; } +plmn_ran_area_cell_list_r15_l& ran_notif_area_info_r15_c::set_cell_list_r15() +{ + set(types::cell_list_r15); + return c.get(); +} +plmn_ran_area_cfg_list_r15_l& ran_notif_area_info_r15_c::set_ran_area_cfg_list_r15() +{ + set(types::ran_area_cfg_list_r15); + return c.get(); +} void ran_notif_area_info_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -3525,6 +3660,15 @@ void rclwi_cfg_r13_c::set(types::options e) { type_ = e; } +void rclwi_cfg_r13_c::set_release() +{ + set(types::release); +} +rclwi_cfg_r13_c::setup_s_& rclwi_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void rclwi_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -4114,7 +4258,7 @@ void meas_idle_cfg_ded_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_idle_cfg_ded_r15_s::meas_idle_dur_r15_opts::to_string() const +const char* meas_idle_cfg_ded_r15_s::meas_idle_dur_r15_opts::to_string() const { static const char* options[] = {"sec10", "sec30", "sec60", "sec120", "sec180", "sec240", "sec300", "spare"}; return convert_enum_idx(options, 8, value, "meas_idle_cfg_ded_r15_s::meas_idle_dur_r15_e_"); @@ -4202,7 +4346,7 @@ void rrc_inactive_cfg_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_inactive_cfg_r15_s::ran_paging_cycle_r15_opts::to_string() const +const char* rrc_inactive_cfg_r15_s::ran_paging_cycle_r15_opts::to_string() const { static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 4, value, "rrc_inactive_cfg_r15_s::ran_paging_cycle_r15_e_"); @@ -4213,7 +4357,7 @@ uint16_t rrc_inactive_cfg_r15_s::ran_paging_cycle_r15_opts::to_number() const return map_enum_number(options, 4, value, "rrc_inactive_cfg_r15_s::ran_paging_cycle_r15_e_"); } -std::string rrc_inactive_cfg_r15_s::periodic_rnau_timer_r15_opts::to_string() const +const char* rrc_inactive_cfg_r15_s::periodic_rnau_timer_r15_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min360", "min720"}; return convert_enum_idx(options, 8, value, "rrc_inactive_cfg_r15_s::periodic_rnau_timer_r15_e_"); @@ -4368,6 +4512,15 @@ void scg_cfg_r12_c::set(types::options e) { type_ = e; } +void scg_cfg_r12_c::set_release() +{ + set(types::release); +} +scg_cfg_r12_c::setup_s_& scg_cfg_r12_c::set_setup() +{ + set(types::setup); + return c; +} void scg_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -4547,6 +4700,15 @@ void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::set(types::options e) { type_ = e; } +void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::set_release() +{ + set(types::release); +} +sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_& sl_comm_cfg_r12_s::comm_tx_res_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4663,6 +4825,18 @@ sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::operator=(const sl_comm_cfg_r12 return *this; } +sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::sched_r12_s_& +sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::set_sched_r12() +{ + set(types::sched_r12); + return c.get(); +} +sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::ue_sel_r12_s_& +sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::set_ue_sel_r12() +{ + set(types::ue_sel_r12); + return c.get(); +} void sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4782,6 +4956,15 @@ void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::set(types::options e) { type_ = e; } +void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::set_release() +{ + set(types::release); +} +sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_& sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4899,6 +5082,18 @@ sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_& sl_comm_cfg_r12_s::comm_tx_re return *this; } +sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::sched_v1310_s_& +sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::set_sched_v1310() +{ + set(types::sched_v1310); + return c.get(); +} +sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::ue_sel_v1310_s_& +sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::set_ue_sel_v1310() +{ + set(types::ue_sel_v1310); + return c.get(); +} void sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5187,6 +5382,15 @@ void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::set_release() +{ + set(types::release); +} +sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_& sl_disc_cfg_r12_s::disc_tx_res_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5303,6 +5507,18 @@ sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::operator=(const sl_disc_cfg_r12 return *this; } +sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::sched_r12_s_& +sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::set_sched_r12() +{ + set(types::sched_r12); + return c.get(); +} +sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::ue_sel_r12_s_& +sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::set_ue_sel_r12() +{ + set(types::ue_sel_r12); + return c.get(); +} void sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5447,6 +5663,15 @@ void sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::set_release() +{ + set(types::release); +} +sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::setup_s_& sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_tf_idx_list_v1260_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5505,6 +5730,15 @@ void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::set_release() +{ + set(types::release); +} +sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_& sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5622,6 +5856,17 @@ sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_& sl_disc_cfg_r12_s::disc_tx_r return *this; } +sl_disc_tx_cfg_sched_r13_s& sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::set_sched_r13() +{ + set(types::sched_r13); + return c.get(); +} +sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::ue_sel_r13_s_& +sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::set_ue_sel_r13() +{ + set(types::ue_sel_r13); + return c.get(); +} void sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5681,6 +5926,16 @@ void sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::set_release() +{ + set(types::release); +} +sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::setup_s_& +sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_tx_inter_freq_info_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5767,6 +6022,15 @@ void sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::set_release() +{ + set(types::release); +} +sl_gap_cfg_r13_s& sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_rx_gap_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5819,6 +6083,15 @@ void sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::set(types::options e) { type_ = e; } +void sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::set_release() +{ + set(types::release); +} +sl_gap_cfg_r13_s& sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_tx_gap_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5871,6 +6144,15 @@ void sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::set(types::options e { type_ = e; } +void sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::set_release() +{ + set(types::release); +} +sl_disc_sys_info_to_report_freq_list_r13_l& sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void sl_disc_cfg_r12_s::disc_sys_info_to_report_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5952,7 +6234,7 @@ void sl_sync_tx_ctrl_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_sync_tx_ctrl_r12_s::network_ctrl_sync_tx_r12_opts::to_string() const +const char* sl_sync_tx_ctrl_r12_s::network_ctrl_sync_tx_r12_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx(options, 2, value, "sl_sync_tx_ctrl_r12_s::network_ctrl_sync_tx_r12_e_"); @@ -6053,6 +6335,16 @@ void rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::set(types::options e) { type_ = e; } +void rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::set_release() +{ + set(types::release); +} +rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::setup_s_& +rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6115,7 +6407,7 @@ SRSASN_CODE rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::unpack(cbit_re return SRSASN_SUCCESS; } -std::string rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::setup_s_::t350_r12_opts::to_string() const +const char* rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::setup_s_::t350_r12_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min180", "spare1"}; return convert_enum_idx( @@ -6210,7 +6502,7 @@ void rrc_conn_release_v1530_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_release_v1530_ies_s::cn_type_r15_opts::to_string() const +const char* rrc_conn_release_v1530_ies_s::cn_type_r15_opts::to_string() const { static const char* options[] = {"epc", "fivegc"}; return convert_enum_idx(options, 2, value, "rrc_conn_release_v1530_ies_s::cn_type_r15_e_"); @@ -6539,7 +6831,7 @@ void idc_cfg_r11_s::to_json(json_writer& j) const j.end_obj(); } -std::string idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_sfs_r11_opts::to_string() const +const char* idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_sfs_r11_opts::to_string() const { static const char* options[] = {"n2", "n5", "n10", "n15", "n20", "n30", "spare2", "spare1"}; return convert_enum_idx( @@ -6552,7 +6844,7 @@ uint8_t idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_sfs_r1 options, 6, value, "idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_sfs_r11_e_"); } -std::string idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_validity_r11_opts::to_string() const +const char* idc_cfg_r11_s::autonomous_denial_params_r11_s_::autonomous_denial_validity_r11_opts::to_string() const { static const char* options[] = {"sf200", "sf500", "sf1000", "sf2000", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx( @@ -6569,6 +6861,15 @@ void idc_cfg_r11_s::idc_ind_mrdc_r15_c_::set(types::options e) { type_ = e; } +void idc_cfg_r11_s::idc_ind_mrdc_r15_c_::set_release() +{ + set(types::release); +} +candidate_serving_freq_list_nr_r15_l& idc_cfg_r11_s::idc_ind_mrdc_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void idc_cfg_r11_s::idc_ind_mrdc_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6647,6 +6948,15 @@ void pwr_pref_ind_cfg_r11_c::set(types::options e) { type_ = e; } +void pwr_pref_ind_cfg_r11_c::set_release() +{ + set(types::release); +} +pwr_pref_ind_cfg_r11_c::setup_s_& pwr_pref_ind_cfg_r11_c::set_setup() +{ + set(types::setup); + return c; +} void pwr_pref_ind_cfg_r11_c::to_json(json_writer& j) const { j.start_obj(); @@ -6697,7 +7007,7 @@ SRSASN_CODE pwr_pref_ind_cfg_r11_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_string() const +const char* pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_string() const { static const char* options[] = {"s0", "s0dot5", @@ -6722,7 +7032,7 @@ float pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_number() static const float options[] = {0.0, 0.5, 1.0, 2.0, 5.0, 10.0, 20.0, 30.0, 60.0, 90.0, 120.0, 300.0, 600.0}; return map_enum_number(options, 13, value, "pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_e_"); } -std::string pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_number_string() const +const char* pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_number_string() const { static const char* options[] = {"0", "0.5", "1", "2", "5", "10", "20", "30", "60", "90", "120", "300", "600"}; return convert_enum_idx(options, 16, value, "pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_e_"); @@ -7295,7 +7605,7 @@ void other_cfg_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string other_cfg_r9_s::bw_pref_ind_timer_r14_opts::to_string() const +const char* other_cfg_r9_s::bw_pref_ind_timer_r14_opts::to_string() const { static const char* options[] = {"s0", "s0dot5", @@ -7320,7 +7630,7 @@ float other_cfg_r9_s::bw_pref_ind_timer_r14_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 2.0, 5.0, 10.0, 20.0, 30.0, 60.0, 90.0, 120.0, 300.0, 600.0}; return map_enum_number(options, 13, value, "other_cfg_r9_s::bw_pref_ind_timer_r14_e_"); } -std::string other_cfg_r9_s::bw_pref_ind_timer_r14_opts::to_number_string() const +const char* other_cfg_r9_s::bw_pref_ind_timer_r14_opts::to_number_string() const { static const char* options[] = {"0", "0.5", "1", "2", "5", "10", "20", "30", "60", "90", "120", "300", "600"}; return convert_enum_idx(options, 16, value, "other_cfg_r9_s::bw_pref_ind_timer_r14_e_"); @@ -7330,6 +7640,15 @@ void other_cfg_r9_s::delay_budget_report_cfg_r14_c_::set(types::options e) { type_ = e; } +void other_cfg_r9_s::delay_budget_report_cfg_r14_c_::set_release() +{ + set(types::release); +} +other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_& other_cfg_r9_s::delay_budget_report_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void other_cfg_r9_s::delay_budget_report_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7380,7 +7699,7 @@ SRSASN_CODE other_cfg_r9_s::delay_budget_report_cfg_r14_c_::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string +const char* other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_::delay_budget_report_prohibit_timer_r14_opts::to_string() const { static const char* options[] = {"s0", "s0dot4", "s0dot8", "s1dot6", "s3", "s6", "s12", "s30"}; @@ -7400,7 +7719,7 @@ float other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_::delay_budget_rep value, "other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_::delay_budget_report_prohibit_timer_r14_e_"); } -std::string other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_::delay_budget_report_prohibit_timer_r14_opts:: +const char* other_cfg_r9_s::delay_budget_report_cfg_r14_c_::setup_s_::delay_budget_report_prohibit_timer_r14_opts:: to_number_string() const { static const char* options[] = {"0", "0.4", "0.8", "1.6", "3", "6", "12", "30"}; @@ -7415,6 +7734,15 @@ void other_cfg_r9_s::rlm_report_cfg_r14_c_::set(types::options e) { type_ = e; } +void other_cfg_r9_s::rlm_report_cfg_r14_c_::set_release() +{ + set(types::release); +} +other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_& other_cfg_r9_s::rlm_report_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void other_cfg_r9_s::rlm_report_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7470,7 +7798,7 @@ SRSASN_CODE other_cfg_r9_s::rlm_report_cfg_r14_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_opts::to_string() const +const char* other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_opts::to_string() const { static const char* options[] = {"s0", "s0dot5", @@ -7497,7 +7825,7 @@ float other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_opts return map_enum_number( options, 13, value, "other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_e_"); } -std::string other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_opts::to_number_string() const +const char* other_cfg_r9_s::rlm_report_cfg_r14_c_::setup_s_::rlm_report_timer_r14_opts::to_number_string() const { static const char* options[] = {"0", "0.5", "1", "2", "5", "10", "20", "30", "60", "90", "120", "300", "600"}; return convert_enum_idx( @@ -7508,6 +7836,15 @@ void other_cfg_r9_s::overheat_assist_cfg_r14_c_::set(types::options e) { type_ = e; } +void other_cfg_r9_s::overheat_assist_cfg_r14_c_::set_release() +{ + set(types::release); +} +other_cfg_r9_s::overheat_assist_cfg_r14_c_::setup_s_& other_cfg_r9_s::overheat_assist_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void other_cfg_r9_s::overheat_assist_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7558,7 +7895,7 @@ SRSASN_CODE other_cfg_r9_s::overheat_assist_cfg_r14_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string +const char* other_cfg_r9_s::overheat_assist_cfg_r14_c_::setup_s_::overheat_ind_prohibit_timer_r14_opts::to_string() const { static const char* options[] = {"s0", @@ -7586,7 +7923,7 @@ float other_cfg_r9_s::overheat_assist_cfg_r14_c_::setup_s_::overheat_ind_prohibi return map_enum_number( options, 13, value, "other_cfg_r9_s::overheat_assist_cfg_r14_c_::setup_s_::overheat_ind_prohibit_timer_r14_e_"); } -std::string +const char* other_cfg_r9_s::overheat_assist_cfg_r14_c_::setup_s_::overheat_ind_prohibit_timer_r14_opts::to_number_string() const { static const char* options[] = {"0", "0.5", "1", "2", "5", "10", "20", "30", "60", "90", "120", "300", "600"}; @@ -7598,6 +7935,15 @@ void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::set(types::options e) { type_ = e; } +void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::set_release() +{ + set(types::release); +} +other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_& other_cfg_r9_s::meas_cfg_app_layer_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7651,7 +7997,7 @@ SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_r15_opts::to_string() const +const char* other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_r15_opts::to_string() const { static const char* options[] = {"qoe", "qoemtsi", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx( @@ -7863,7 +8209,7 @@ void carrier_info_nr_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string carrier_info_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const +const char* carrier_info_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const { static const char* options[] = {"kHz15", "kHz30", "kHz120", "kHz240"}; return convert_enum_idx(options, 4, value, "carrier_info_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); @@ -8278,6 +8624,26 @@ rrc_conn_release_v920_ies_s::cell_info_list_r9_c_& rrc_conn_release_v920_ies_s:: return *this; } +cell_info_list_geran_r9_l& rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::set_geran_r9() +{ + set(types::geran_r9); + return c.get(); +} +cell_info_list_utra_fdd_r9_l& rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::set_utra_fdd_r9() +{ + set(types::utra_fdd_r9); + return c.get(); +} +cell_info_list_utra_tdd_r9_l& rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::set_utra_tdd_r9() +{ + set(types::utra_tdd_r9); + return c.get(); +} +cell_info_list_utra_tdd_r10_l& rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::set_utra_tdd_r10() +{ + set(types::utra_tdd_r10); + return c.get(); +} void rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8496,6 +8862,16 @@ si_or_psi_geran_c& si_or_psi_geran_c::operator=(const si_or_psi_geran_c& other) return *this; } +sys_info_list_geran_l& si_or_psi_geran_c::set_si() +{ + set(types::si); + return c.get(); +} +sys_info_list_geran_l& si_or_psi_geran_c::set_psi() +{ + set(types::psi); + return c.get(); +} void si_or_psi_geran_c::to_json(json_writer& j) const { j.start_obj(); @@ -8658,6 +9034,16 @@ area_cfg_r10_c& area_cfg_r10_c::operator=(const area_cfg_r10_c& other) return *this; } +cell_global_id_list_r10_l& area_cfg_r10_c::set_cell_global_id_list_r10() +{ + set(types::cell_global_id_list_r10); + return c.get(); +} +tac_list_r10_l& area_cfg_r10_c::set_tac_list_r10() +{ + set(types::tac_list_r10); + return c.get(); +} void area_cfg_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -8777,7 +9163,7 @@ void cell_change_order_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_change_order_s::t304_opts::to_string() const +const char* cell_change_order_s::t304_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms500", "ms1000", "ms2000", "ms4000", "ms8000", "ms10000-v1310"}; return convert_enum_idx(options, 8, value, "cell_change_order_s::t304_e_"); @@ -8986,7 +9372,7 @@ void e_csfb_r9_s::to_json(json_writer& j) const j.end_obj(); } -std::string e_csfb_r9_s::mob_cdma2000_hrpd_r9_opts::to_string() const +const char* e_csfb_r9_s::mob_cdma2000_hrpd_r9_opts::to_string() const { static const char* options[] = {"handover", "redirection"}; return convert_enum_idx(options, 2, value, "e_csfb_r9_s::mob_cdma2000_hrpd_r9_e_"); @@ -9040,7 +9426,7 @@ void ho_s::to_json(json_writer& j) const j.end_obj(); } -std::string ho_s::target_rat_type_opts::to_string() const +const char* ho_s::target_rat_type_opts::to_string() const { static const char* options[] = { "utra", "geran", "cdma2000-1XRTT", "cdma2000-HRPD", "nr", "eutra", "spare2", "spare1"}; @@ -9132,7 +9518,7 @@ void logged_meas_cfg_v1080_ies_s::to_json(json_writer& j) const } // LoggingDuration-r10 ::= ENUMERATED -std::string logging_dur_r10_opts::to_string() const +const char* logging_dur_r10_opts::to_string() const { static const char* options[] = {"min10", "min20", "min40", "min60", "min90", "min120", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "logging_dur_r10_e"); @@ -9144,7 +9530,7 @@ uint8_t logging_dur_r10_opts::to_number() const } // LoggingInterval-r10 ::= ENUMERATED -std::string logging_interv_r10_opts::to_string() const +const char* logging_interv_r10_opts::to_string() const { static const char* options[] = {"ms1280", "ms2560", "ms5120", "ms10240", "ms20480", "ms30720", "ms40960", "ms61440"}; return convert_enum_idx(options, 8, value, "logging_interv_r10_e"); @@ -9367,6 +9753,16 @@ rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::operator=(const rn_sf_cfg_r10_s::sf_cfg_ return *this; } +fixed_bitstring<8>& rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::set_sf_cfg_pattern_fdd_r10() +{ + set(types::sf_cfg_pattern_fdd_r10); + return c.get >(); +} +uint8_t& rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::set_sf_cfg_pattern_tdd_r10() +{ + set(types::sf_cfg_pattern_tdd_r10); + return c.get(); +} void rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9417,7 +9813,7 @@ SRSASN_CODE rn_sf_cfg_r10_s::sf_cfg_pattern_r10_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_alloc_type_r10_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_alloc_type_r10_opts::to_string() const { static const char* options[] = { "type0", "type1", "type2Localized", "type2Distributed", "spare4", "spare3", "spare2", "spare1"}; @@ -9494,6 +9890,18 @@ rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::operator=( return *this; } +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::set_type01_r10() +{ + set(types::type01_r10); + return c.get(); +} +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::set_type2_r10() +{ + set(types::type2_r10); + return c.get(); +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9664,6 +10072,36 @@ rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::oper return *this; } +fixed_bitstring<6>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb6_r10() +{ + set(types::nrb6_r10); + return c.get >(); +} +fixed_bitstring<8>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb15_r10() +{ + set(types::nrb15_r10); + return c.get >(); +} +fixed_bitstring<13>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb25_r10() +{ + set(types::nrb25_r10); + return c.get >(); +} +fixed_bitstring<17>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb50_r10() +{ + set(types::nrb50_r10); + return c.get >(); +} +fixed_bitstring<19>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb75_r10() +{ + set(types::nrb75_r10); + return c.get >(); +} +fixed_bitstring<25>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::set_nrb100_r10() +{ + set(types::nrb100_r10); + return c.get >(); +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type01_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9868,6 +10306,36 @@ rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::opera return *this; } +fixed_bitstring<5>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb6_r10() +{ + set(types::nrb6_r10); + return c.get >(); +} +fixed_bitstring<7>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb15_r10() +{ + set(types::nrb15_r10); + return c.get >(); +} +fixed_bitstring<9>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb25_r10() +{ + set(types::nrb25_r10); + return c.get >(); +} +fixed_bitstring<11>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb50_r10() +{ + set(types::nrb50_r10); + return c.get >(); +} +fixed_bitstring<12>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb75_r10() +{ + set(types::nrb75_r10); + return c.get >(); +} +fixed_bitstring<13>& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::set_nrb100_r10() +{ + set(types::nrb100_r10); + return c.get >(); +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9958,6 +10426,16 @@ void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::set(types::options e) { type_ = e; } +void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::set_interleaving_r10() +{ + set(types::interleaving_r10); +} +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::no_interleaving_r10_e_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::set_no_interleaving_r10() +{ + set(types::no_interleaving_r10); + return c; +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10005,7 +10483,7 @@ SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::unpack(cbit_ref return SRSASN_SUCCESS; } -std::string rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::no_interleaving_r10_opts::to_string() const +const char* rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::no_interleaving_r10_opts::to_string() const { static const char* options[] = {"crs", "dmrs"}; return convert_enum_idx( @@ -10081,6 +10559,18 @@ rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_& rn_sf_cfg_r10_s::rpdcch_cf return *this; } +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::set_tdd() +{ + set(types::tdd); + return c.get(); +} +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::fdd_s_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::set_fdd() +{ + set(types::fdd); + return c.get(); +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10216,6 +10706,18 @@ rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::operator=( return *this; } +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::ch_sel_mux_bundling_s_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::set_ch_sel_mux_bundling() +{ + set(types::ch_sel_mux_bundling); + return c.get(); +} +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::fallback_for_format3_s_& +rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::set_fallback_for_format3() +{ + set(types::fallback_for_format3); + return c.get(); +} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::pucch_cfg_r10_c_::tdd_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10592,6 +11094,46 @@ redirected_carrier_info_c& redirected_carrier_info_c::operator=(const redirected return *this; } +uint32_t& redirected_carrier_info_c::set_eutra() +{ + set(types::eutra); + return c.get(); +} +carrier_freqs_geran_s& redirected_carrier_info_c::set_geran() +{ + set(types::geran); + return c.get(); +} +uint16_t& redirected_carrier_info_c::set_utra_fdd() +{ + set(types::utra_fdd); + return c.get(); +} +uint16_t& redirected_carrier_info_c::set_utra_tdd() +{ + set(types::utra_tdd); + return c.get(); +} +carrier_freq_cdma2000_s& redirected_carrier_info_c::set_cdma2000_hrpd() +{ + set(types::cdma2000_hrpd); + return c.get(); +} +carrier_freq_cdma2000_s& redirected_carrier_info_c::set_cdma2000_minus1x_rtt() +{ + set(types::cdma2000_minus1x_rtt); + return c.get(); +} +carrier_freq_list_utra_tdd_r10_l& redirected_carrier_info_c::set_utra_tdd_r10() +{ + set(types::utra_tdd_r10); + return c.get(); +} +carrier_info_nr_r15_s& redirected_carrier_info_c::set_nr_r15() +{ + set(types::nr_r15); + return c.get(); +} void redirected_carrier_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -10711,7 +11253,7 @@ SRSASN_CODE redirected_carrier_info_c::unpack(cbit_ref& bref) } // ReleaseCause ::= ENUMERATED -std::string release_cause_opts::to_string() const +const char* release_cause_opts::to_string() const { static const char* options[] = { "loadBalancingTAUrequired", "other", "cs-FallbackHighPriority-v1020", "rrc-Suspend-v1320"}; @@ -10971,6 +11513,21 @@ dl_info_transfer_r15_ies_s::ded_info_type_r15_c_& dl_info_transfer_r15_ies_s::de return *this; } +dyn_octstring& dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::set_ded_info_nas_r15() +{ + set(types::ded_info_nas_r15); + return c.get(); +} +dyn_octstring& dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::set_ded_info_cdma2000_minus1_xrtt_r15() +{ + set(types::ded_info_cdma2000_minus1_xrtt_r15); + return c.get(); +} +dyn_octstring& dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::set_ded_info_cdma2000_hrpd_r15() +{ + set(types::ded_info_cdma2000_hrpd_r15); + return c.get(); +} void dl_info_transfer_r15_ies_s::ded_info_type_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11145,6 +11702,21 @@ dl_info_transfer_r8_ies_s::ded_info_type_c_::operator=(const dl_info_transfer_r8 return *this; } +dyn_octstring& dl_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_nas() +{ + set(types::ded_info_nas); + return c.get(); +} +dyn_octstring& dl_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_cdma2000_minus1_xrtt() +{ + set(types::ded_info_cdma2000_minus1_xrtt); + return c.get(); +} +dyn_octstring& dl_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_cdma2000_hrpd() +{ + set(types::ded_info_cdma2000_hrpd); + return c.get(); +} void dl_info_transfer_r8_ies_s::ded_info_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11428,6 +12000,16 @@ mob_from_eutra_cmd_r8_ies_s::purpose_c_::operator=(const mob_from_eutra_cmd_r8_i return *this; } +ho_s& mob_from_eutra_cmd_r8_ies_s::purpose_c_::set_ho() +{ + set(types::ho); + return c.get(); +} +cell_change_order_s& mob_from_eutra_cmd_r8_ies_s::purpose_c_::set_cell_change_order() +{ + set(types::cell_change_order); + return c.get(); +} void mob_from_eutra_cmd_r8_ies_s::purpose_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11598,6 +12180,21 @@ mob_from_eutra_cmd_r9_ies_s::purpose_c_::operator=(const mob_from_eutra_cmd_r9_i return *this; } +ho_s& mob_from_eutra_cmd_r9_ies_s::purpose_c_::set_ho() +{ + set(types::ho); + return c.get(); +} +cell_change_order_s& mob_from_eutra_cmd_r9_ies_s::purpose_c_::set_cell_change_order() +{ + set(types::cell_change_order); + return c.get(); +} +e_csfb_r9_s& mob_from_eutra_cmd_r9_ies_s::purpose_c_::set_e_csfb_r9() +{ + set(types::e_csfb_r9); + return c.get(); +} void mob_from_eutra_cmd_r9_ies_s::purpose_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12024,6 +12621,15 @@ void csfb_params_resp_cdma2000_s::crit_exts_c_::set(types::options e) { type_ = e; } +csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_s::crit_exts_c_::set_csfb_params_resp_cdma2000_r8() +{ + set(types::csfb_params_resp_cdma2000_r8); + return c; +} +void csfb_params_resp_cdma2000_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void csfb_params_resp_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12100,6 +12706,15 @@ void counter_check_s::crit_exts_c_::set(types::options e) { type_ = e; } +counter_check_s::crit_exts_c_::c1_c_& counter_check_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void counter_check_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void counter_check_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12152,6 +12767,23 @@ void counter_check_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +counter_check_r8_ies_s& counter_check_s::crit_exts_c_::c1_c_::set_counter_check_r8() +{ + set(types::counter_check_r8); + return c; +} +void counter_check_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void counter_check_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void counter_check_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void counter_check_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12240,6 +12872,15 @@ void dl_info_transfer_s::crit_exts_c_::set(types::options e) { type_ = e; } +dl_info_transfer_s::crit_exts_c_::c1_c_& dl_info_transfer_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void dl_info_transfer_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12368,6 +13009,24 @@ dl_info_transfer_s::crit_exts_c_::c1_c_::operator=(const dl_info_transfer_s::cri return *this; } +dl_info_transfer_r8_ies_s& dl_info_transfer_s::crit_exts_c_::c1_c_::set_dl_info_transfer_r8() +{ + set(types::dl_info_transfer_r8); + return c.get(); +} +dl_info_transfer_r15_ies_s& dl_info_transfer_s::crit_exts_c_::c1_c_::set_dl_info_transfer_r15() +{ + set(types::dl_info_transfer_r15); + return c.get(); +} +void dl_info_transfer_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_info_transfer_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_info_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12460,6 +13119,15 @@ void ho_from_eutra_prep_request_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_& ho_from_eutra_prep_request_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_from_eutra_prep_request_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_from_eutra_prep_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12512,6 +13180,24 @@ void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_from_eutra_prep_request_r8_ies_s& +ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set_ho_from_eutra_prep_request_r8() +{ + set(types::ho_from_eutra_prep_request_r8); + return c; +} +void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_from_eutra_prep_request_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12597,6 +13283,15 @@ void logged_meas_cfg_r10_s::crit_exts_c_::set(types::options e) { type_ = e; } +logged_meas_cfg_r10_s::crit_exts_c_::c1_c_& logged_meas_cfg_r10_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void logged_meas_cfg_r10_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void logged_meas_cfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12649,6 +13344,23 @@ void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +logged_meas_cfg_r10_ies_s& logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set_logged_meas_cfg_r10() +{ + set(types::logged_meas_cfg_r10); + return c; +} +void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void logged_meas_cfg_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12737,6 +13449,15 @@ void mob_from_eutra_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +mob_from_eutra_cmd_s::crit_exts_c_::c1_c_& mob_from_eutra_cmd_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void mob_from_eutra_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void mob_from_eutra_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12865,6 +13586,24 @@ mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::operator=(const mob_from_eutra_cmd_s: return *this; } +mob_from_eutra_cmd_r8_ies_s& mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::set_mob_from_eutra_cmd_r8() +{ + set(types::mob_from_eutra_cmd_r8); + return c.get(); +} +mob_from_eutra_cmd_r9_ies_s& mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::set_mob_from_eutra_cmd_r9() +{ + set(types::mob_from_eutra_cmd_r9); + return c.get(); +} +void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void mob_from_eutra_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12957,6 +13696,15 @@ void rn_recfg_r10_s::crit_exts_c_::set(types::options e) { type_ = e; } +rn_recfg_r10_s::crit_exts_c_::c1_c_& rn_recfg_r10_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rn_recfg_r10_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rn_recfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13009,6 +13757,23 @@ void rn_recfg_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rn_recfg_r10_ies_s& rn_recfg_r10_s::crit_exts_c_::c1_c_::set_rn_recfg_r10() +{ + set(types::rn_recfg_r10); + return c; +} +void rn_recfg_r10_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rn_recfg_r10_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rn_recfg_r10_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rn_recfg_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13097,6 +13862,15 @@ void rrc_conn_recfg_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_s::crit_exts_c_::c1_c_& rrc_conn_recfg_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_recfg_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_recfg_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13149,6 +13923,39 @@ void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_r8_ies_s& rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_rrc_conn_recfg_r8() +{ + set(types::rrc_conn_recfg_r8); + return c; +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_recfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13261,6 +14068,15 @@ void rrc_conn_release_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_release_s::crit_exts_c_::c1_c_& rrc_conn_release_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_release_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_release_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13313,6 +14129,23 @@ void rrc_conn_release_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_release_r8_ies_s& rrc_conn_release_s::crit_exts_c_::c1_c_::set_rrc_conn_release_r8() +{ + set(types::rrc_conn_release_r8); + return c; +} +void rrc_conn_release_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_release_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_release_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_release_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13401,6 +14234,15 @@ void rrc_conn_resume_r13_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_r13_s::crit_exts_c_::c1_c_& rrc_conn_resume_r13_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_resume_r13_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_resume_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13453,6 +14295,23 @@ void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_r13_ies_s& rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set_rrc_conn_resume_r13() +{ + set(types::rrc_conn_resume_r13); + return c; +} +void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_resume_r13_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13541,6 +14400,15 @@ void ue_info_request_r9_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_info_request_r9_s::crit_exts_c_::c1_c_& ue_info_request_r9_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_info_request_r9_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_info_request_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13593,6 +14461,23 @@ void ue_info_request_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_info_request_r9_ies_s& ue_info_request_r9_s::crit_exts_c_::c1_c_::set_ue_info_request_r9() +{ + set(types::ue_info_request_r9); + return c; +} +void ue_info_request_r9_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_info_request_r9_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_info_request_r9_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_info_request_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13658,6 +14543,15 @@ void dl_dcch_msg_type_c::set(types::options e) { type_ = e; } +dl_dcch_msg_type_c::c1_c_& dl_dcch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void dl_dcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void dl_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -13923,6 +14817,83 @@ dl_dcch_msg_type_c::c1_c_& dl_dcch_msg_type_c::c1_c_::operator=(const dl_dcch_ms return *this; } +csfb_params_resp_cdma2000_s& dl_dcch_msg_type_c::c1_c_::set_csfb_params_resp_cdma2000() +{ + set(types::csfb_params_resp_cdma2000); + return c.get(); +} +dl_info_transfer_s& dl_dcch_msg_type_c::c1_c_::set_dl_info_transfer() +{ + set(types::dl_info_transfer); + return c.get(); +} +ho_from_eutra_prep_request_s& dl_dcch_msg_type_c::c1_c_::set_ho_from_eutra_prep_request() +{ + set(types::ho_from_eutra_prep_request); + return c.get(); +} +mob_from_eutra_cmd_s& dl_dcch_msg_type_c::c1_c_::set_mob_from_eutra_cmd() +{ + set(types::mob_from_eutra_cmd); + return c.get(); +} +rrc_conn_recfg_s& dl_dcch_msg_type_c::c1_c_::set_rrc_conn_recfg() +{ + set(types::rrc_conn_recfg); + return c.get(); +} +rrc_conn_release_s& dl_dcch_msg_type_c::c1_c_::set_rrc_conn_release() +{ + set(types::rrc_conn_release); + return c.get(); +} +security_mode_cmd_s& dl_dcch_msg_type_c::c1_c_::set_security_mode_cmd() +{ + set(types::security_mode_cmd); + return c.get(); +} +ue_cap_enquiry_s& dl_dcch_msg_type_c::c1_c_::set_ue_cap_enquiry() +{ + set(types::ue_cap_enquiry); + return c.get(); +} +counter_check_s& dl_dcch_msg_type_c::c1_c_::set_counter_check() +{ + set(types::counter_check); + return c.get(); +} +ue_info_request_r9_s& dl_dcch_msg_type_c::c1_c_::set_ue_info_request_r9() +{ + set(types::ue_info_request_r9); + return c.get(); +} +logged_meas_cfg_r10_s& dl_dcch_msg_type_c::c1_c_::set_logged_meas_cfg_r10() +{ + set(types::logged_meas_cfg_r10); + return c.get(); +} +rn_recfg_r10_s& dl_dcch_msg_type_c::c1_c_::set_rn_recfg_r10() +{ + set(types::rn_recfg_r10); + return c.get(); +} +rrc_conn_resume_r13_s& dl_dcch_msg_type_c::c1_c_::set_rrc_conn_resume_r13() +{ + set(types::rrc_conn_resume_r13); + return c.get(); +} +void dl_dcch_msg_type_c::c1_c_::set_spare3() +{ + set(types::spare3); +} +void dl_dcch_msg_type_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_dcch_msg_type_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14238,6 +15209,15 @@ void scg_cfg_v13c0_c::set(types::options e) { type_ = e; } +void scg_cfg_v13c0_c::set_release() +{ + set(types::release); +} +scg_cfg_v13c0_c::setup_s_& scg_cfg_v13c0_c::set_setup() +{ + set(types::setup); + return c; +} void scg_cfg_v13c0_c::to_json(json_writer& j) const { j.start_obj(); @@ -14517,6 +15497,15 @@ void scg_cfg_v12f0_c::set(types::options e) { type_ = e; } +void scg_cfg_v12f0_c::set_release() +{ + set(types::release); +} +scg_cfg_v12f0_c::setup_s_& scg_cfg_v12f0_c::set_setup() +{ + set(types::setup); + return c; +} void scg_cfg_v12f0_c::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/ho_cmd.cc b/lib/src/asn1/rrc/ho_cmd.cc index 9ad1defd4..7dd1a05cf 100644 --- a/lib/src/asn1/rrc/ho_cmd.cc +++ b/lib/src/asn1/rrc/ho_cmd.cc @@ -292,6 +292,15 @@ void scg_cfg_r12_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_cfg_r12_s::crit_exts_c_::c1_c_& scg_cfg_r12_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void scg_cfg_r12_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_cfg_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -344,6 +353,39 @@ void scg_cfg_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +scg_cfg_r12_ies_s& scg_cfg_r12_s::crit_exts_c_::c1_c_::set_scg_cfg_r12() +{ + set(types::scg_cfg_r12); + return c; +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void scg_cfg_r12_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void scg_cfg_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1349,6 +1391,15 @@ void ho_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_cmd_s::crit_exts_c_::c1_c_& ho_cmd_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1401,6 +1452,39 @@ void ho_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_cmd_r8_ies_s& ho_cmd_s::crit_exts_c_::c1_c_::set_ho_cmd_r8() +{ + set(types::ho_cmd_r8); + return c; +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1892,7 +1976,7 @@ void ho_prep_info_v920_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string ho_prep_info_v920_ies_s::ue_cfg_release_r9_opts::to_string() const +const char* ho_prep_info_v920_ies_s::ue_cfg_release_r9_opts::to_string() const { static const char* options[] = { "rel9", "rel10", "rel11", "rel12", "v10j0", "v11e0", "v1280", "rel13", "rel14", "rel15"}; @@ -1995,7 +2079,7 @@ void rrm_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrm_cfg_s::ue_inactive_time_opts::to_string() const +const char* rrm_cfg_s::ue_inactive_time_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s25", "s30", @@ -2107,6 +2191,15 @@ void ho_prep_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_prep_info_s::crit_exts_c_::c1_c_& ho_prep_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_prep_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2159,6 +2252,39 @@ void ho_prep_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_prep_info_r8_ies_s& ho_prep_info_s::crit_exts_c_::c1_c_::set_ho_prep_info_r8() +{ + set(types::ho_prep_info_r8); + return c; +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_prep_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2608,6 +2734,15 @@ void var_meas_cfg_s::speed_state_pars_c_::set(types::options e) { type_ = e; } +void var_meas_cfg_s::speed_state_pars_c_::set_release() +{ + set(types::release); +} +var_meas_cfg_s::speed_state_pars_c_::setup_s_& var_meas_cfg_s::speed_state_pars_c_::set_setup() +{ + set(types::setup); + return c; +} void var_meas_cfg_s::speed_state_pars_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/meascfg.cc b/lib/src/asn1/rrc/meascfg.cc index 19a111c0e..3a888c12b 100644 --- a/lib/src/asn1/rrc/meascfg.cc +++ b/lib/src/asn1/rrc/meascfg.cc @@ -30,7 +30,7 @@ using namespace asn1::rrc; ******************************************************************************/ // Q-OffsetRange ::= ENUMERATED -std::string q_offset_range_opts::to_string() const +const char* q_offset_range_opts::to_string() const { static const char* options[] = {"dB-24", "dB-22", "dB-20", "dB-18", "dB-16", "dB-14", "dB-12", "dB-10", "dB-8", "dB-6", "dB-5", "dB-4", "dB-3", "dB-2", "dB-1", "dB0", @@ -68,7 +68,7 @@ void speed_state_scale_factors_s::to_json(json_writer& j) const j.end_obj(); } -std::string speed_state_scale_factors_s::sf_medium_opts::to_string() const +const char* speed_state_scale_factors_s::sf_medium_opts::to_string() const { static const char* options[] = {"oDot25", "oDot5", "oDot75", "lDot0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); @@ -78,13 +78,13 @@ float speed_state_scale_factors_s::sf_medium_opts::to_number() const static const float options[] = {0.25, 0.5, 0.75, 1.0}; return map_enum_number(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); } -std::string speed_state_scale_factors_s::sf_medium_opts::to_number_string() const +const char* speed_state_scale_factors_s::sf_medium_opts::to_number_string() const { static const char* options[] = {"0.25", "0.5", "0.75", "1.0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); } -std::string speed_state_scale_factors_s::sf_high_opts::to_string() const +const char* speed_state_scale_factors_s::sf_high_opts::to_string() const { static const char* options[] = {"oDot25", "oDot5", "oDot75", "lDot0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); @@ -94,14 +94,14 @@ float speed_state_scale_factors_s::sf_high_opts::to_number() const static const float options[] = {0.25, 0.5, 0.75, 1.0}; return map_enum_number(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); } -std::string speed_state_scale_factors_s::sf_high_opts::to_number_string() const +const char* speed_state_scale_factors_s::sf_high_opts::to_number_string() const { static const char* options[] = {"0.25", "0.5", "0.75", "1.0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); } // BandIndicatorGERAN ::= ENUMERATED -std::string band_ind_geran_opts::to_string() const +const char* band_ind_geran_opts::to_string() const { static const char* options[] = {"dcs1800", "pcs1900"}; return convert_enum_idx(options, 2, value, "band_ind_geran_e"); @@ -271,6 +271,22 @@ carrier_freqs_geran_s::following_arfcns_c_::operator=(const carrier_freqs_geran_ return *this; } +explicit_list_of_arfcns_l& carrier_freqs_geran_s::following_arfcns_c_::set_explicit_list_of_arfcns() +{ + set(types::explicit_list_of_arfcns); + return c.get(); +} +carrier_freqs_geran_s::following_arfcns_c_::equally_spaced_arfcns_s_& +carrier_freqs_geran_s::following_arfcns_c_::set_equally_spaced_arfcns() +{ + set(types::equally_spaced_arfcns); + return c.get(); +} +bounded_octstring<1, 16>& carrier_freqs_geran_s::following_arfcns_c_::set_variable_bit_map_of_arfcns() +{ + set(types::variable_bit_map_of_arfcns); + return c.get >(); +} void carrier_freqs_geran_s::following_arfcns_c_::to_json(json_writer& j) const { j.start_obj(); @@ -364,7 +380,7 @@ bool carrier_freqs_geran_s::following_arfcns_c_::operator==(const following_arfc } // CellReselectionSubPriority-r13 ::= ENUMERATED -std::string cell_resel_sub_prio_r13_opts::to_string() const +const char* cell_resel_sub_prio_r13_opts::to_string() const { static const char* options[] = {"oDot2", "oDot4", "oDot6", "oDot8"}; return convert_enum_idx(options, 4, value, "cell_resel_sub_prio_r13_e"); @@ -374,7 +390,7 @@ float cell_resel_sub_prio_r13_opts::to_number() const static const float options[] = {0.2, 0.4, 0.6, 0.8}; return map_enum_number(options, 4, value, "cell_resel_sub_prio_r13_e"); } -std::string cell_resel_sub_prio_r13_opts::to_number_string() const +const char* cell_resel_sub_prio_r13_opts::to_number_string() const { static const char* options[] = {"0.2", "0.4", "0.6", "0.8"}; return convert_enum_idx(options, 4, value, "cell_resel_sub_prio_r13_e"); @@ -477,6 +493,36 @@ mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::operator=(const mtc_ssb_nr_r15_ return *this; } +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf5_r15() +{ + set(types::sf5_r15); + return c.get(); +} +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf10_r15() +{ + set(types::sf10_r15); + return c.get(); +} +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf20_r15() +{ + set(types::sf20_r15); + return c.get(); +} +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf40_r15() +{ + set(types::sf40_r15); + return c.get(); +} +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf80_r15() +{ + set(types::sf80_r15); + return c.get(); +} +uint8_t& mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::set_sf160_r15() +{ + set(types::sf160_r15); + return c.get(); +} void mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -586,7 +632,7 @@ bool mtc_ssb_nr_r15_s::periodicity_and_offset_r15_c_::operator==(const periodici return true; } -std::string mtc_ssb_nr_r15_s::ssb_dur_r15_opts::to_string() const +const char* mtc_ssb_nr_r15_s::ssb_dur_r15_opts::to_string() const { static const char* options[] = {"sf1", "sf2", "sf3", "sf4", "sf5"}; return convert_enum_idx(options, 5, value, "mtc_ssb_nr_r15_s::ssb_dur_r15_e_"); @@ -704,6 +750,21 @@ ssb_to_measure_r15_c& ssb_to_measure_r15_c::operator=(const ssb_to_measure_r15_c return *this; } +fixed_bitstring<4>& ssb_to_measure_r15_c::set_short_bitmap_r15() +{ + set(types::short_bitmap_r15); + return c.get >(); +} +fixed_bitstring<8>& ssb_to_measure_r15_c::set_medium_bitmap_r15() +{ + set(types::medium_bitmap_r15); + return c.get >(); +} +fixed_bitstring<64>& ssb_to_measure_r15_c::set_long_bitmap_r15() +{ + set(types::long_bitmap_r15); + return c.get >(); +} void ssb_to_measure_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -870,7 +931,7 @@ void mob_state_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string mob_state_params_s::t_eval_opts::to_string() const +const char* mob_state_params_s::t_eval_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s180", "s240", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "mob_state_params_s::t_eval_e_"); @@ -881,7 +942,7 @@ uint8_t mob_state_params_s::t_eval_opts::to_number() const return map_enum_number(options, 5, value, "mob_state_params_s::t_eval_e_"); } -std::string mob_state_params_s::t_hyst_normal_opts::to_string() const +const char* mob_state_params_s::t_hyst_normal_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s180", "s240", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "mob_state_params_s::t_hyst_normal_e_"); @@ -1227,6 +1288,15 @@ void bt_name_list_cfg_r15_c::set(types::options e) { type_ = e; } +void bt_name_list_cfg_r15_c::set_release() +{ + set(types::release); +} +bt_name_list_r15_l& bt_name_list_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void bt_name_list_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -1283,7 +1353,7 @@ bool bt_name_list_cfg_r15_c::operator==(const bt_name_list_cfg_r15_c& other) con } // CDMA2000-Type ::= ENUMERATED -std::string cdma2000_type_opts::to_string() const +const char* cdma2000_type_opts::to_string() const { static const char* options[] = {"type1XRTT", "typeHRPD"}; return convert_enum_idx(options, 2, value, "cdma2000_type_e"); @@ -1334,7 +1404,7 @@ bool csg_allowed_report_cells_r9_s::operator==(const csg_allowed_report_cells_r9 } // MeasCycleSCell-r10 ::= ENUMERATED -std::string meas_cycle_scell_r10_opts::to_string() const +const char* meas_cycle_scell_r10_opts::to_string() const { static const char* options[] = {"sf160", "sf256", "sf320", "sf512", "sf640", "sf1024", "sf1280", "spare1"}; return convert_enum_idx(options, 8, value, "meas_cycle_scell_r10_e"); @@ -1350,6 +1420,15 @@ void meas_ds_cfg_r12_c::set(types::options e) { type_ = e; } +void meas_ds_cfg_r12_c::set_release() +{ + set(types::release); +} +meas_ds_cfg_r12_c::setup_s_& meas_ds_cfg_r12_c::set_setup() +{ + set(types::setup); + return c; +} void meas_ds_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -1501,6 +1580,21 @@ meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::operator=( return *this; } +uint8_t& meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::set_ms40_r12() +{ + set(types::ms40_r12); + return c.get(); +} +uint8_t& meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::set_ms80_r12() +{ + set(types::ms80_r12); + return c.get(); +} +uint8_t& meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::set_ms160_r12() +{ + set(types::ms160_r12); + return c.get(); +} void meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1622,6 +1716,16 @@ meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_& meas_ds_cfg_r12_c::setup_s_ return *this; } +uint8_t& meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::set_dur_fdd_r12() +{ + set(types::dur_fdd_r12); + return c.get(); +} +uint8_t& meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::set_dur_tdd_r12() +{ + set(types::dur_tdd_r12); + return c.get(); +} void meas_ds_cfg_r12_c::setup_s_::ds_occasion_dur_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1692,6 +1796,15 @@ void meas_gap_cfg_c::set(types::options e) { type_ = e; } +void meas_gap_cfg_c::set_release() +{ + set(types::release); +} +meas_gap_cfg_c::setup_s_& meas_gap_cfg_c::set_setup() +{ + set(types::setup); + return c; +} void meas_gap_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -1895,6 +2008,106 @@ meas_gap_cfg_c::setup_s_::gap_offset_c_::operator=(const meas_gap_cfg_c::setup_s return *this; } +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp0() +{ + set(types::gp0); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp1() +{ + set(types::gp1); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp2_r14() +{ + set(types::gp2_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp3_r14() +{ + set(types::gp3_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_ncsg0_r14() +{ + set(types::gp_ncsg0_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_ncsg1_r14() +{ + set(types::gp_ncsg1_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_ncsg2_r14() +{ + set(types::gp_ncsg2_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_ncsg3_r14() +{ + set(types::gp_ncsg3_r14); + return c.get(); +} +uint16_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_non_uniform1_r14() +{ + set(types::gp_non_uniform1_r14); + return c.get(); +} +uint16_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_non_uniform2_r14() +{ + set(types::gp_non_uniform2_r14); + return c.get(); +} +uint16_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_non_uniform3_r14() +{ + set(types::gp_non_uniform3_r14); + return c.get(); +} +uint16_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp_non_uniform4_r14() +{ + set(types::gp_non_uniform4_r14); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp4_r15() +{ + set(types::gp4_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp5_r15() +{ + set(types::gp5_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp6_r15() +{ + set(types::gp6_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp7_r15() +{ + set(types::gp7_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp8_r15() +{ + set(types::gp8_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp9_r15() +{ + set(types::gp9_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp10_r15() +{ + set(types::gp10_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_c::setup_s_::gap_offset_c_::set_gp11_r15() +{ + set(types::gp11_r15); + return c.get(); +} void meas_gap_cfg_c::setup_s_::gap_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2213,7 +2426,7 @@ bool meas_sensing_cfg_r15_s::operator==(const meas_sensing_cfg_r15_s& other) con sensing_resel_counter_r15 == other.sensing_resel_counter_r15 and sensing_prio_r15 == other.sensing_prio_r15; } -std::string meas_sensing_cfg_r15_s::sensing_periodicity_r15_opts::to_string() const +const char* meas_sensing_cfg_r15_s::sensing_periodicity_r15_opts::to_string() const { static const char* options[] = { "ms20", "ms50", "ms100", "ms200", "ms300", "ms400", "ms500", "ms600", "ms700", "ms800", "ms900", "ms1000"}; @@ -2230,6 +2443,15 @@ void meas_sf_pattern_cfg_neigh_r10_c::set(types::options e) { type_ = e; } +void meas_sf_pattern_cfg_neigh_r10_c::set_release() +{ + set(types::release); +} +meas_sf_pattern_cfg_neigh_r10_c::setup_s_& meas_sf_pattern_cfg_neigh_r10_c::set_setup() +{ + set(types::setup); + return c; +} void meas_sf_pattern_cfg_neigh_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -2396,6 +2618,15 @@ void rmtc_cfg_r13_c::set(types::options e) { type_ = e; } +void rmtc_cfg_r13_c::set_release() +{ + set(types::release); +} +rmtc_cfg_r13_c::setup_s_& rmtc_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void rmtc_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -2469,7 +2700,7 @@ bool rmtc_cfg_r13_c::operator==(const rmtc_cfg_r13_c& other) const c.meas_dur_r13 == other.c.meas_dur_r13; } -std::string rmtc_cfg_r13_c::setup_s_::rmtc_period_r13_opts::to_string() const +const char* rmtc_cfg_r13_c::setup_s_::rmtc_period_r13_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms320", "ms640"}; return convert_enum_idx(options, 5, value, "rmtc_cfg_r13_c::setup_s_::rmtc_period_r13_e_"); @@ -2480,7 +2711,7 @@ uint16_t rmtc_cfg_r13_c::setup_s_::rmtc_period_r13_opts::to_number() const return map_enum_number(options, 5, value, "rmtc_cfg_r13_c::setup_s_::rmtc_period_r13_e_"); } -std::string rmtc_cfg_r13_c::setup_s_::meas_dur_r13_opts::to_string() const +const char* rmtc_cfg_r13_c::setup_s_::meas_dur_r13_opts::to_string() const { static const char* options[] = {"sym1", "sym14", "sym28", "sym42", "sym70"}; return convert_enum_idx(options, 5, value, "rmtc_cfg_r13_c::setup_s_::meas_dur_r13_e_"); @@ -2559,7 +2790,7 @@ bool rs_cfg_ssb_nr_r15_s::operator==(const rs_cfg_ssb_nr_r15_s& other) const (not ssb_to_measure_r15.is_present() or *ssb_to_measure_r15 == *other.ssb_to_measure_r15))); } -std::string rs_cfg_ssb_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const +const char* rs_cfg_ssb_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const { static const char* options[] = {"kHz15", "kHz30", "kHz120", "kHz240"}; return convert_enum_idx(options, 4, value, "rs_cfg_ssb_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); @@ -2574,6 +2805,15 @@ void rs_cfg_ssb_nr_r15_s::ssb_to_measure_r15_c_::set(types::options e) { type_ = e; } +void rs_cfg_ssb_nr_r15_s::ssb_to_measure_r15_c_::set_release() +{ + set(types::release); +} +ssb_to_measure_r15_c& rs_cfg_ssb_nr_r15_s::ssb_to_measure_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void rs_cfg_ssb_nr_r15_s::ssb_to_measure_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2631,6 +2871,15 @@ void rsrq_range_cfg_r12_c::set(types::options e) { type_ = e; } +void rsrq_range_cfg_r12_c::set_release() +{ + set(types::release); +} +int8_t& rsrq_range_cfg_r12_c::set_setup() +{ + set(types::setup); + return c; +} void rsrq_range_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -2683,7 +2932,7 @@ bool rsrq_range_cfg_r12_c::operator==(const rsrq_range_cfg_r12_c& other) const } // ReportInterval ::= ENUMERATED -std::string report_interv_opts::to_string() const +const char* report_interv_opts::to_string() const { static const char* options[] = {"ms120", "ms240", @@ -2848,6 +3097,16 @@ thres_eutra_c& thres_eutra_c::operator=(const thres_eutra_c& other) return *this; } +uint8_t& thres_eutra_c::set_thres_rsrp() +{ + set(types::thres_rsrp); + return c.get(); +} +uint8_t& thres_eutra_c::set_thres_rsrq() +{ + set(types::thres_rsrq); + return c.get(); +} void thres_eutra_c::to_json(json_writer& j) const { j.start_obj(); @@ -2963,6 +3222,21 @@ thres_nr_r15_c& thres_nr_r15_c::operator=(const thres_nr_r15_c& other) return *this; } +uint8_t& thres_nr_r15_c::set_nr_rsrp_r15() +{ + set(types::nr_rsrp_r15); + return c.get(); +} +uint8_t& thres_nr_r15_c::set_nr_rsrq_r15() +{ + set(types::nr_rsrq_r15); + return c.get(); +} +uint8_t& thres_nr_r15_c::set_nr_sinr_r15() +{ + set(types::nr_sinr_r15); + return c.get(); +} void thres_nr_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -3083,6 +3357,16 @@ thres_utra_c& thres_utra_c::operator=(const thres_utra_c& other) return *this; } +int8_t& thres_utra_c::set_utra_rscp() +{ + set(types::utra_rscp); + return c.get(); +} +uint8_t& thres_utra_c::set_utra_ec_n0() +{ + set(types::utra_ec_n0); + return c.get(); +} void thres_utra_c::to_json(json_writer& j) const { j.start_obj(); @@ -3149,7 +3433,7 @@ bool thres_utra_c::operator==(const thres_utra_c& other) const } // TimeToTrigger ::= ENUMERATED -std::string time_to_trigger_opts::to_string() const +const char* time_to_trigger_opts::to_string() const { static const char* options[] = {"ms0", "ms40", @@ -3180,6 +3464,15 @@ void ul_delay_cfg_r13_c::set(types::options e) { type_ = e; } +void ul_delay_cfg_r13_c::set_release() +{ + set(types::release); +} +ul_delay_cfg_r13_c::setup_s_& ul_delay_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void ul_delay_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -3234,7 +3527,7 @@ bool ul_delay_cfg_r13_c::operator==(const ul_delay_cfg_r13_c& other) const return type() == other.type() and c.delay_thres_r13 == other.c.delay_thres_r13; } -std::string ul_delay_cfg_r13_c::setup_s_::delay_thres_r13_opts::to_string() const +const char* ul_delay_cfg_r13_c::setup_s_::delay_thres_r13_opts::to_string() const { static const char* options[] = {"ms30", "ms40", @@ -3327,7 +3620,7 @@ bool wlan_carrier_info_r13_s::operator==(const wlan_carrier_info_r13_s& other) c (not ch_nums_r13_present or ch_nums_r13 == other.ch_nums_r13); } -std::string wlan_carrier_info_r13_s::country_code_r13_opts::to_string() const +const char* wlan_carrier_info_r13_s::country_code_r13_opts::to_string() const { static const char* options[] = {"unitedStates", "europe", "japan", "global"}; return convert_enum_idx(options, 4, value, "wlan_carrier_info_r13_s::country_code_r13_e_"); @@ -3338,6 +3631,15 @@ void wlan_name_list_cfg_r15_c::set(types::options e) { type_ = e; } +void wlan_name_list_cfg_r15_c::set_release() +{ + set(types::release); +} +wlan_name_list_r15_l& wlan_name_list_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void wlan_name_list_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -4005,6 +4307,15 @@ void meas_obj_eutra_s::t312_r12_c_::set(types::options e) { type_ = e; } +void meas_obj_eutra_s::t312_r12_c_::set_release() +{ + set(types::release); +} +meas_obj_eutra_s::t312_r12_c_::setup_e_& meas_obj_eutra_s::t312_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void meas_obj_eutra_s::t312_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4056,7 +4367,7 @@ bool meas_obj_eutra_s::t312_r12_c_::operator==(const t312_r12_c_& other) const return type() == other.type() and c == other.c; } -std::string meas_obj_eutra_s::t312_r12_c_::setup_opts::to_string() const +const char* meas_obj_eutra_s::t312_r12_c_::setup_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms300", "ms400", "ms500", "ms1000"}; return convert_enum_idx(options, 8, value, "meas_obj_eutra_s::t312_r12_c_::setup_e_"); @@ -4375,6 +4686,15 @@ void meas_obj_nr_r15_s::band_nr_r15_c_::set(types::options e) { type_ = e; } +void meas_obj_nr_r15_s::band_nr_r15_c_::set_release() +{ + set(types::release); +} +uint16_t& meas_obj_nr_r15_s::band_nr_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void meas_obj_nr_r15_s::band_nr_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4643,6 +4963,16 @@ meas_obj_utra_s::cells_to_add_mod_list_c_::operator=(const meas_obj_utra_s::cell return *this; } +cells_to_add_mod_list_utra_fdd_l& meas_obj_utra_s::cells_to_add_mod_list_c_::set_cells_to_add_mod_list_utra_fdd() +{ + set(types::cells_to_add_mod_list_utra_fdd); + return c.get(); +} +cells_to_add_mod_list_utra_tdd_l& meas_obj_utra_s::cells_to_add_mod_list_c_::set_cells_to_add_mod_list_utra_tdd() +{ + set(types::cells_to_add_mod_list_utra_tdd); + return c.get(); +} void meas_obj_utra_s::cells_to_add_mod_list_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4761,6 +5091,16 @@ meas_obj_utra_s::cell_for_which_to_report_cgi_c_& meas_obj_utra_s::cell_for_whic return *this; } +uint16_t& meas_obj_utra_s::cell_for_which_to_report_cgi_c_::set_utra_fdd() +{ + set(types::utra_fdd); + return c.get(); +} +uint8_t& meas_obj_utra_s::cell_for_which_to_report_cgi_c_::set_utra_tdd() +{ + set(types::utra_tdd); + return c.get(); +} void meas_obj_utra_s::cell_for_which_to_report_cgi_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4966,6 +5306,18 @@ meas_obj_wlan_r13_s::carrier_freq_r13_c_::operator=(const meas_obj_wlan_r13_s::c return *this; } +meas_obj_wlan_r13_s::carrier_freq_r13_c_::band_ind_list_wlan_r13_l_& +meas_obj_wlan_r13_s::carrier_freq_r13_c_::set_band_ind_list_wlan_r13() +{ + set(types::band_ind_list_wlan_r13); + return c.get(); +} +meas_obj_wlan_r13_s::carrier_freq_r13_c_::carrier_info_list_wlan_r13_l_& +meas_obj_wlan_r13_s::carrier_freq_r13_c_::set_carrier_info_list_wlan_r13() +{ + set(types::carrier_info_list_wlan_r13); + return c.get(); +} void meas_obj_wlan_r13_s::carrier_freq_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5297,6 +5649,66 @@ eutra_event_s::event_id_c_& eutra_event_s::event_id_c_::operator=(const eutra_ev return *this; } +eutra_event_s::event_id_c_::event_a1_s_& eutra_event_s::event_id_c_::set_event_a1() +{ + set(types::event_a1); + return c.get(); +} +eutra_event_s::event_id_c_::event_a2_s_& eutra_event_s::event_id_c_::set_event_a2() +{ + set(types::event_a2); + return c.get(); +} +eutra_event_s::event_id_c_::event_a3_s_& eutra_event_s::event_id_c_::set_event_a3() +{ + set(types::event_a3); + return c.get(); +} +eutra_event_s::event_id_c_::event_a4_s_& eutra_event_s::event_id_c_::set_event_a4() +{ + set(types::event_a4); + return c.get(); +} +eutra_event_s::event_id_c_::event_a5_s_& eutra_event_s::event_id_c_::set_event_a5() +{ + set(types::event_a5); + return c.get(); +} +eutra_event_s::event_id_c_::event_a6_r10_s_& eutra_event_s::event_id_c_::set_event_a6_r10() +{ + set(types::event_a6_r10); + return c.get(); +} +eutra_event_s::event_id_c_::event_c1_r12_s_& eutra_event_s::event_id_c_::set_event_c1_r12() +{ + set(types::event_c1_r12); + return c.get(); +} +eutra_event_s::event_id_c_::event_c2_r12_s_& eutra_event_s::event_id_c_::set_event_c2_r12() +{ + set(types::event_c2_r12); + return c.get(); +} +eutra_event_s::event_id_c_::event_v1_r14_s_& eutra_event_s::event_id_c_::set_event_v1_r14() +{ + set(types::event_v1_r14); + return c.get(); +} +eutra_event_s::event_id_c_::event_v2_r14_s_& eutra_event_s::event_id_c_::set_event_v2_r14() +{ + set(types::event_v2_r14); + return c.get(); +} +eutra_event_s::event_id_c_::event_h1_r15_s_& eutra_event_s::event_id_c_::set_event_h1_r15() +{ + set(types::event_h1_r15); + return c.get(); +} +eutra_event_s::event_id_c_::event_h2_r15_s_& eutra_event_s::event_id_c_::set_event_h2_r15() +{ + set(types::event_h2_r15); + return c.get(); +} void eutra_event_s::event_id_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6097,6 +6509,16 @@ report_cfg_eutra_s::trigger_type_c_::operator=(const report_cfg_eutra_s::trigger return *this; } +report_cfg_eutra_s::trigger_type_c_::event_s_& report_cfg_eutra_s::trigger_type_c_::set_event() +{ + set(types::event); + return c.get(); +} +report_cfg_eutra_s::trigger_type_c_::periodical_s_& report_cfg_eutra_s::trigger_type_c_::set_periodical() +{ + set(types::periodical); + return c.get(); +} void report_cfg_eutra_s::trigger_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6166,25 +6588,25 @@ bool report_cfg_eutra_s::trigger_type_c_::operator==(const trigger_type_c_& othe return true; } -std::string report_cfg_eutra_s::trigger_type_c_::periodical_s_::purpose_opts::to_string() const +const char* report_cfg_eutra_s::trigger_type_c_::periodical_s_::purpose_opts::to_string() const { static const char* options[] = {"reportStrongestCells", "reportCGI"}; return convert_enum_idx(options, 2, value, "report_cfg_eutra_s::trigger_type_c_::periodical_s_::purpose_e_"); } -std::string report_cfg_eutra_s::trigger_quant_opts::to_string() const +const char* report_cfg_eutra_s::trigger_quant_opts::to_string() const { static const char* options[] = {"rsrp", "rsrq"}; return convert_enum_idx(options, 2, value, "report_cfg_eutra_s::trigger_quant_e_"); } -std::string report_cfg_eutra_s::report_quant_opts::to_string() const +const char* report_cfg_eutra_s::report_quant_opts::to_string() const { static const char* options[] = {"sameAsTriggerQuantity", "both"}; return convert_enum_idx(options, 2, value, "report_cfg_eutra_s::report_quant_e_"); } -std::string report_cfg_eutra_s::report_amount_opts::to_string() const +const char* report_cfg_eutra_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "report_cfg_eutra_s::report_amount_e_"); @@ -6199,6 +6621,15 @@ void report_cfg_eutra_s::alt_time_to_trigger_r12_c_::set(types::options e) { type_ = e; } +void report_cfg_eutra_s::alt_time_to_trigger_r12_c_::set_release() +{ + set(types::release); +} +time_to_trigger_e& report_cfg_eutra_s::alt_time_to_trigger_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void report_cfg_eutra_s::alt_time_to_trigger_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6254,6 +6685,15 @@ void report_cfg_eutra_s::rs_sinr_cfg_r13_c_::set(types::options e) { type_ = e; } +void report_cfg_eutra_s::rs_sinr_cfg_r13_c_::set_release() +{ + set(types::release); +} +report_cfg_eutra_s::rs_sinr_cfg_r13_c_::setup_s_& report_cfg_eutra_s::rs_sinr_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void report_cfg_eutra_s::rs_sinr_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6340,13 +6780,13 @@ bool report_cfg_eutra_s::rs_sinr_cfg_r13_c_::operator==(const rs_sinr_cfg_r13_c_ c.report_quant_v1310 == other.c.report_quant_v1310; } -std::string report_cfg_eutra_s::rs_sinr_cfg_r13_c_::setup_s_::report_quant_v1310_opts::to_string() const +const char* report_cfg_eutra_s::rs_sinr_cfg_r13_c_::setup_s_::report_quant_v1310_opts::to_string() const { static const char* options[] = {"rsrpANDsinr", "rsrqANDsinr", "all"}; return convert_enum_idx(options, 3, value, "report_cfg_eutra_s::rs_sinr_cfg_r13_c_::setup_s_::report_quant_v1310_e_"); } -std::string report_cfg_eutra_s::purpose_v1430_opts::to_string() const +const char* report_cfg_eutra_s::purpose_v1430_opts::to_string() const { static const char* options[] = {"reportLocation", "sidelink", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "report_cfg_eutra_s::purpose_v1430_e_"); @@ -6680,6 +7120,16 @@ report_cfg_inter_rat_s::trigger_type_c_::operator=(const report_cfg_inter_rat_s: return *this; } +report_cfg_inter_rat_s::trigger_type_c_::event_s_& report_cfg_inter_rat_s::trigger_type_c_::set_event() +{ + set(types::event); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::periodical_s_& report_cfg_inter_rat_s::trigger_type_c_::set_periodical() +{ + set(types::periodical); + return c.get(); +} void report_cfg_inter_rat_s::trigger_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6890,6 +7340,48 @@ report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::operator=( return *this; } +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_b1() +{ + set(types::event_b1); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_b2() +{ + set(types::event_b2); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_w1_r13_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_w1_r13() +{ + set(types::event_w1_r13); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_w2_r13_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_w2_r13() +{ + set(types::event_w2_r13); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_w3_r13_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_w3_r13() +{ + set(types::event_w3_r13); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_nr_r15_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_b1_nr_r15() +{ + set(types::event_b1_nr_r15); + return c.get(); +} +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_nr_r15_s_& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::set_event_b2_nr_r15() +{ + set(types::event_b2_nr_r15); + return c.get(); +} void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7144,6 +7636,23 @@ report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_ return *this; } +thres_utra_c& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::set_b1_thres_utra() +{ + set(types::b1_thres_utra); + return c.get(); +} +uint8_t& report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::set_b1_thres_geran() +{ + set(types::b1_thres_geran); + return c.get(); +} +uint8_t& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::set_b1_thres_cdma2000() +{ + set(types::b1_thres_cdma2000); + return c.get(); +} void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b1_s_::b1_thres_c_::to_json( json_writer& j) const { @@ -7305,6 +7814,24 @@ report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_ return *this; } +thres_utra_c& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::set_b2_thres2_utra() +{ + set(types::b2_thres2_utra); + return c.get(); +} +uint8_t& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::set_b2_thres2_geran() +{ + set(types::b2_thres2_geran); + return c.get(); +} +uint8_t& +report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::set_b2_thres2_cdma2000() +{ + set(types::b2_thres2_cdma2000); + return c.get(); +} void report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_::b2_thres2_c_::to_json( json_writer& j) const { @@ -7389,13 +7916,13 @@ bool report_cfg_inter_rat_s::trigger_type_c_::event_s_::event_id_c_::event_b2_s_ return true; } -std::string report_cfg_inter_rat_s::trigger_type_c_::periodical_s_::purpose_opts::to_string() const +const char* report_cfg_inter_rat_s::trigger_type_c_::periodical_s_::purpose_opts::to_string() const { static const char* options[] = {"reportStrongestCells", "reportStrongestCellsForSON", "reportCGI"}; return convert_enum_idx(options, 3, value, "report_cfg_inter_rat_s::trigger_type_c_::periodical_s_::purpose_e_"); } -std::string report_cfg_inter_rat_s::report_amount_opts::to_string() const +const char* report_cfg_inter_rat_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "report_cfg_inter_rat_s::report_amount_e_"); @@ -7410,6 +7937,15 @@ void report_cfg_inter_rat_s::b2_thres1_v1250_c_::set(types::options e) { type_ = e; } +void report_cfg_inter_rat_s::b2_thres1_v1250_c_::set_release() +{ + set(types::release); +} +int8_t& report_cfg_inter_rat_s::b2_thres1_v1250_c_::set_setup() +{ + set(types::setup); + return c; +} void report_cfg_inter_rat_s::b2_thres1_v1250_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7461,7 +7997,7 @@ bool report_cfg_inter_rat_s::b2_thres1_v1250_c_::operator==(const b2_thres1_v125 return type() == other.type() and c == other.c; } -std::string report_cfg_inter_rat_s::report_sftd_meas_r15_opts::to_string() const +const char* report_cfg_inter_rat_s::report_sftd_meas_r15_opts::to_string() const { static const char* options[] = {"pSCell", "neighborCells"}; return convert_enum_idx(options, 2, value, "report_cfg_inter_rat_s::report_sftd_meas_r15_e_"); @@ -7697,6 +8233,36 @@ meas_obj_to_add_mod_s::meas_obj_c_::operator=(const meas_obj_to_add_mod_s::meas_ return *this; } +meas_obj_eutra_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_eutra() +{ + set(types::meas_obj_eutra); + return c.get(); +} +meas_obj_utra_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_utra() +{ + set(types::meas_obj_utra); + return c.get(); +} +meas_obj_geran_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_geran() +{ + set(types::meas_obj_geran); + return c.get(); +} +meas_obj_cdma2000_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_cdma2000() +{ + set(types::meas_obj_cdma2000); + return c.get(); +} +meas_obj_wlan_r13_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_wlan_r13() +{ + set(types::meas_obj_wlan_r13); + return c.get(); +} +meas_obj_nr_r15_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_nr_r15() +{ + set(types::meas_obj_nr_r15); + return c.get(); +} void meas_obj_to_add_mod_s::meas_obj_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7988,6 +8554,36 @@ meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::operator=(const meas_obj_to_add_ return *this; } +meas_obj_eutra_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_eutra_r13() +{ + set(types::meas_obj_eutra_r13); + return c.get(); +} +meas_obj_utra_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_utra_r13() +{ + set(types::meas_obj_utra_r13); + return c.get(); +} +meas_obj_geran_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_geran_r13() +{ + set(types::meas_obj_geran_r13); + return c.get(); +} +meas_obj_cdma2000_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_cdma2000_r13() +{ + set(types::meas_obj_cdma2000_r13); + return c.get(); +} +meas_obj_wlan_r13_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_wlan_v1320() +{ + set(types::meas_obj_wlan_v1320); + return c.get(); +} +meas_obj_nr_r15_s& meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::set_meas_obj_nr_r15() +{ + set(types::meas_obj_nr_r15); + return c.get(); +} void meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8108,7 +8704,7 @@ bool quant_cfg_cdma2000_s::operator==(const quant_cfg_cdma2000_s& other) const return meas_quant_cdma2000 == other.meas_quant_cdma2000; } -std::string quant_cfg_cdma2000_s::meas_quant_cdma2000_opts::to_string() const +const char* quant_cfg_cdma2000_s::meas_quant_cdma2000_opts::to_string() const { static const char* options[] = {"pilotStrength", "pilotPnPhaseAndPilotStrength"}; return convert_enum_idx(options, 2, value, "quant_cfg_cdma2000_s::meas_quant_cdma2000_e_"); @@ -8306,7 +8902,7 @@ bool quant_cfg_utra_s::operator==(const quant_cfg_utra_s& other) const (not filt_coef_present or filt_coef == other.filt_coef); } -std::string quant_cfg_utra_s::meas_quant_utra_fdd_opts::to_string() const +const char* quant_cfg_utra_s::meas_quant_utra_fdd_opts::to_string() const { static const char* options[] = {"cpich-RSCP", "cpich-EcN0"}; return convert_enum_idx(options, 2, value, "quant_cfg_utra_s::meas_quant_utra_fdd_e_"); @@ -8487,6 +9083,16 @@ report_cfg_to_add_mod_s::report_cfg_c_::operator=(const report_cfg_to_add_mod_s: return *this; } +report_cfg_eutra_s& report_cfg_to_add_mod_s::report_cfg_c_::set_report_cfg_eutra() +{ + set(types::report_cfg_eutra); + return c.get(); +} +report_cfg_inter_rat_s& report_cfg_to_add_mod_s::report_cfg_c_::set_report_cfg_inter_rat() +{ + set(types::report_cfg_inter_rat); + return c.get(); +} void report_cfg_to_add_mod_s::report_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8559,6 +9165,15 @@ void meas_gap_cfg_dense_prs_r15_c::set(types::options e) { type_ = e; } +void meas_gap_cfg_dense_prs_r15_c::set_release() +{ + set(types::release); +} +meas_gap_cfg_dense_prs_r15_c::setup_s_& meas_gap_cfg_dense_prs_r15_c::set_setup() +{ + set(types::setup); + return c; +} void meas_gap_cfg_dense_prs_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8770,6 +9385,111 @@ meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::operator=( return *this; } +uint8_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd0_r15() +{ + set(types::rstd0_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd1_r15() +{ + set(types::rstd1_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd2_r15() +{ + set(types::rstd2_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd3_r15() +{ + set(types::rstd3_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd4_r15() +{ + set(types::rstd4_r15); + return c.get(); +} +uint8_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd5_r15() +{ + set(types::rstd5_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd6_r15() +{ + set(types::rstd6_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd7_r15() +{ + set(types::rstd7_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd8_r15() +{ + set(types::rstd8_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd9_r15() +{ + set(types::rstd9_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd10_r15() +{ + set(types::rstd10_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd11_r15() +{ + set(types::rstd11_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd12_r15() +{ + set(types::rstd12_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd13_r15() +{ + set(types::rstd13_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd14_r15() +{ + set(types::rstd14_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd15_r15() +{ + set(types::rstd15_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd16_r15() +{ + set(types::rstd16_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd17_r15() +{ + set(types::rstd17_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd18_r15() +{ + set(types::rstd18_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd19_r15() +{ + set(types::rstd19_r15); + return c.get(); +} +uint16_t& meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::set_rstd20_r15() +{ + set(types::rstd20_r15); + return c.get(); +} void meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8996,6 +9716,15 @@ void meas_gap_cfg_per_cc_list_r14_c::set(types::options e) { type_ = e; } +void meas_gap_cfg_per_cc_list_r14_c::set_release() +{ + set(types::release); +} +meas_gap_cfg_per_cc_list_r14_c::setup_s_& meas_gap_cfg_per_cc_list_r14_c::set_setup() +{ + set(types::setup); + return c; +} void meas_gap_cfg_per_cc_list_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -9078,6 +9807,15 @@ void meas_gap_sharing_cfg_r14_c::set(types::options e) { type_ = e; } +void meas_gap_sharing_cfg_r14_c::set_release() +{ + set(types::release); +} +meas_gap_sharing_cfg_r14_c::setup_s_& meas_gap_sharing_cfg_r14_c::set_setup() +{ + set(types::setup); + return c; +} void meas_gap_sharing_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -9128,7 +9866,7 @@ SRSASN_CODE meas_gap_sharing_cfg_r14_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_opts::to_string() const +const char* meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_opts::to_string() const { static const char* options[] = {"scheme00", "scheme01", "scheme10", "scheme11"}; return convert_enum_idx(options, 4, value, "meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_e_"); @@ -9138,14 +9876,14 @@ float meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_opts::to static const float options[] = {0.0, 0.1, 1.0, 1.1}; return map_enum_number(options, 4, value, "meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_e_"); } -std::string meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_opts::to_number_string() const +const char* meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_opts::to_number_string() const { static const char* options[] = {"0.0", "0.1", "1.0", "1.1"}; return convert_enum_idx(options, 4, value, "meas_gap_sharing_cfg_r14_c::setup_s_::meas_gap_sharing_scheme_r14_e_"); } // MeasScaleFactor-r12 ::= ENUMERATED -std::string meas_scale_factor_r12_opts::to_string() const +const char* meas_scale_factor_r12_opts::to_string() const { static const char* options[] = {"sf-EUTRA-cf1", "sf-EUTRA-cf2"}; return convert_enum_idx(options, 2, value, "meas_scale_factor_r12_e"); @@ -9494,6 +10232,28 @@ rach_skip_r14_s::target_ta_r14_c_::operator=(const rach_skip_r14_s::target_ta_r1 return *this; } +void rach_skip_r14_s::target_ta_r14_c_::set_ta0_r14() +{ + set(types::ta0_r14); +} +void rach_skip_r14_s::target_ta_r14_c_::set_mcg_ptag_r14() +{ + set(types::mcg_ptag_r14); +} +void rach_skip_r14_s::target_ta_r14_c_::set_scg_ptag_r14() +{ + set(types::scg_ptag_r14); +} +uint8_t& rach_skip_r14_s::target_ta_r14_c_::set_mcg_stag_r14() +{ + set(types::mcg_stag_r14); + return c.get(); +} +uint8_t& rach_skip_r14_s::target_ta_r14_c_::set_scg_stag_r14() +{ + set(types::scg_stag_r14); + return c.get(); +} void rach_skip_r14_s::target_ta_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9562,7 +10322,7 @@ SRSASN_CODE rach_skip_r14_s::target_ta_r14_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rach_skip_r14_s::ul_cfg_info_r14_s_::ul_sched_interv_r14_opts::to_string() const +const char* rach_skip_r14_s::ul_cfg_info_r14_s_::ul_sched_interv_r14_opts::to_string() const { static const char* options[] = {"sf2", "sf5", "sf10"}; return convert_enum_idx(options, 3, value, "rach_skip_r14_s::ul_cfg_info_r14_s_::ul_sched_interv_r14_e_"); @@ -10064,6 +10824,15 @@ void meas_cfg_s::speed_state_pars_c_::set(types::options e) { type_ = e; } +void meas_cfg_s::speed_state_pars_c_::set_release() +{ + set(types::release); +} +meas_cfg_s::speed_state_pars_c_::setup_s_& meas_cfg_s::speed_state_pars_c_::set_setup() +{ + set(types::setup); + return c; +} void meas_cfg_s::speed_state_pars_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10123,6 +10892,15 @@ void meas_cfg_s::meas_scale_factor_r12_c_::set(types::options e) { type_ = e; } +void meas_cfg_s::meas_scale_factor_r12_c_::set_release() +{ + set(types::release); +} +meas_scale_factor_r12_e& meas_cfg_s::meas_scale_factor_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void meas_cfg_s::meas_scale_factor_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10174,6 +10952,15 @@ void meas_cfg_s::height_thresh_ref_r15_c_::set(types::options e) { type_ = e; } +void meas_cfg_s::height_thresh_ref_r15_c_::set_release() +{ + set(types::release); +} +uint8_t& meas_cfg_s::height_thresh_ref_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void meas_cfg_s::height_thresh_ref_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10357,7 +11144,7 @@ void carrier_bw_eutra_s::to_json(json_writer& j) const j.end_obj(); } -std::string carrier_bw_eutra_s::dl_bw_opts::to_string() const +const char* carrier_bw_eutra_s::dl_bw_opts::to_string() const { static const char* options[] = {"n6", "n15", @@ -10383,7 +11170,7 @@ uint8_t carrier_bw_eutra_s::dl_bw_opts::to_number() const return map_enum_number(options, 6, value, "carrier_bw_eutra_s::dl_bw_e_"); } -std::string carrier_bw_eutra_s::ul_bw_opts::to_string() const +const char* carrier_bw_eutra_s::ul_bw_opts::to_string() const { static const char* options[] = {"n6", "n15", @@ -10772,7 +11559,7 @@ void mob_ctrl_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string mob_ctrl_info_s::t304_opts::to_string() const +const char* mob_ctrl_info_s::t304_opts::to_string() const { static const char* options[] = {"ms50", "ms100", "ms150", "ms200", "ms500", "ms1000", "ms2000", "ms10000-v1310"}; return convert_enum_idx(options, 8, value, "mob_ctrl_info_s::t304_e_"); @@ -10783,7 +11570,7 @@ uint16_t mob_ctrl_info_s::t304_opts::to_number() const return map_enum_number(options, 8, value, "mob_ctrl_info_s::t304_e_"); } -std::string mob_ctrl_info_s::ho_without_wt_change_r14_opts::to_string() const +const char* mob_ctrl_info_s::ho_without_wt_change_r14_opts::to_string() const { static const char* options[] = {"keepLWA-Config", "sendEndMarker"}; return convert_enum_idx(options, 2, value, "mob_ctrl_info_s::ho_without_wt_change_r14_e_"); @@ -10881,6 +11668,16 @@ cell_global_id_cdma2000_c& cell_global_id_cdma2000_c::operator=(const cell_globa return *this; } +fixed_bitstring<47>& cell_global_id_cdma2000_c::set_cell_global_id1_xrtt() +{ + set(types::cell_global_id1_xrtt); + return c.get >(); +} +fixed_bitstring<128>& cell_global_id_cdma2000_c::set_cell_global_id_hrpd() +{ + set(types::cell_global_id_hrpd); + return c.get >(); +} void cell_global_id_cdma2000_c::to_json(json_writer& j) const { j.start_obj(); @@ -11520,6 +12317,16 @@ meas_result_utra_s::pci_c_& meas_result_utra_s::pci_c_::operator=(const meas_res return *this; } +uint16_t& meas_result_utra_s::pci_c_::set_fdd() +{ + set(types::fdd); + return c.get(); +} +uint8_t& meas_result_utra_s::pci_c_::set_tdd() +{ + set(types::tdd); + return c.get(); +} void meas_result_utra_s::pci_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11872,6 +12679,42 @@ location_info_r10_s::location_coordinates_r10_c_& location_info_r10_s::location_ return *this; } +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_point_r10() +{ + set(types::ellipsoid_point_r10); + return c.get(); +} +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_point_with_altitude_r10() +{ + set(types::ellipsoid_point_with_altitude_r10); + return c.get(); +} +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_point_with_uncertainty_circle_r11() +{ + set(types::ellipsoid_point_with_uncertainty_circle_r11); + return c.get(); +} +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_point_with_uncertainty_ellipse_r11() +{ + set(types::ellipsoid_point_with_uncertainty_ellipse_r11); + return c.get(); +} +dyn_octstring& +location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11() +{ + set(types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11); + return c.get(); +} +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_ellipsoid_arc_r11() +{ + set(types::ellipsoid_arc_r11); + return c.get(); +} +dyn_octstring& location_info_r10_s::location_coordinates_r10_c_::set_polygon_r11() +{ + set(types::polygon_r11); + return c.get(); +} void location_info_r10_s::location_coordinates_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12046,6 +12889,16 @@ location_info_r10_s::vertical_velocity_info_r15_c_& location_info_r10_s::vertica return *this; } +dyn_octstring& location_info_r10_s::vertical_velocity_info_r15_c_::set_vertical_velocity_r15() +{ + set(types::vertical_velocity_r15); + return c.get(); +} +dyn_octstring& location_info_r10_s::vertical_velocity_info_r15_c_::set_vertical_velocity_and_uncertainty_r15() +{ + set(types::vertical_velocity_and_uncertainty_r15); + return c.get(); +} void location_info_r10_s::vertical_velocity_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12350,7 +13203,7 @@ void wlan_rtt_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string wlan_rtt_r15_s::rtt_units_r15_opts::to_string() const +const char* wlan_rtt_r15_s::rtt_units_r15_opts::to_string() const { static const char* options[] = { "microseconds", "hundredsofnanoseconds", "tensofnanoseconds", "nanoseconds", "tenthsofnanoseconds"}; @@ -13805,7 +14658,7 @@ void ul_pdcp_delay_result_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pdcp_delay_result_r13_s::qci_id_r13_opts::to_string() const +const char* ul_pdcp_delay_result_r13_s::qci_id_r13_opts::to_string() const { static const char* options[] = {"qci1", "qci2", "qci3", "qci4", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ul_pdcp_delay_result_r13_s::qci_id_r13_e_"); @@ -14481,6 +15334,31 @@ meas_results_s::meas_result_neigh_cells_c_::operator=(const meas_results_s::meas return *this; } +meas_result_list_eutra_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_list_eutra() +{ + set(types::meas_result_list_eutra); + return c.get(); +} +meas_result_list_utra_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_list_utra() +{ + set(types::meas_result_list_utra); + return c.get(); +} +meas_result_list_geran_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_list_geran() +{ + set(types::meas_result_list_geran); + return c.get(); +} +meas_results_cdma2000_s& meas_results_s::meas_result_neigh_cells_c_::set_meas_results_cdma2000() +{ + set(types::meas_results_cdma2000); + return c.get(); +} +meas_result_cell_list_nr_r15_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_neigh_cell_list_nr_r15() +{ + set(types::meas_result_neigh_cell_list_nr_r15); + return c.get(); +} void meas_results_s::meas_result_neigh_cells_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14674,6 +15552,15 @@ void meas_report_s::crit_exts_c_::set(types::options e) { type_ = e; } +meas_report_s::crit_exts_c_::c1_c_& meas_report_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void meas_report_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void meas_report_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14726,6 +15613,39 @@ void meas_report_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +meas_report_r8_ies_s& meas_report_s::crit_exts_c_::c1_c_::set_meas_report_r8() +{ + set(types::meas_report_r8); + return c; +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void meas_report_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void meas_report_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/paging.cc b/lib/src/asn1/rrc/paging.cc index 47f54b88b..4c63956de 100644 --- a/lib/src/asn1/rrc/paging.cc +++ b/lib/src/asn1/rrc/paging.cc @@ -250,6 +250,26 @@ paging_ue_id_c& paging_ue_id_c::operator=(const paging_ue_id_c& other) return *this; } +s_tmsi_s& paging_ue_id_c::set_s_tmsi() +{ + set(types::s_tmsi); + return c.get(); +} +imsi_l& paging_ue_id_c::set_imsi() +{ + set(types::imsi); + return c.get(); +} +fixed_bitstring<48>& paging_ue_id_c::set_ng_minus5_g_s_tmsi_r15() +{ + set(types::ng_minus5_g_s_tmsi_r15); + return c.get >(); +} +fixed_bitstring<40>& paging_ue_id_c::set_full_i_rnti_r15() +{ + set(types::full_i_rnti_r15); + return c.get >(); +} void paging_ue_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -389,7 +409,7 @@ void paging_record_s::to_json(json_writer& j) const j.end_obj(); } -std::string paging_record_s::cn_domain_opts::to_string() const +const char* paging_record_s::cn_domain_opts::to_string() const { static const char* options[] = {"ps", "cs"}; return convert_enum_idx(options, 2, value, "paging_record_s::cn_domain_e_"); @@ -498,6 +518,15 @@ void pcch_msg_type_c::set(types::options e) { type_ = e; } +pcch_msg_type_c::c1_c_& pcch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void pcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void pcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -655,6 +684,15 @@ void ue_paging_coverage_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_paging_coverage_info_s::crit_exts_c_::c1_c_& ue_paging_coverage_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_paging_coverage_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_paging_coverage_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -707,6 +745,39 @@ void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_paging_coverage_info_r13_ies_s& ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_ue_paging_coverage_info_r13() +{ + set(types::ue_paging_coverage_info_r13); + return c; +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_paging_coverage_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -893,6 +964,15 @@ void ue_radio_paging_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_s::crit_exts_c_::c1_c_& ue_radio_paging_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_paging_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -945,6 +1025,39 @@ void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_r12_ies_s& ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_ue_radio_paging_info_r12() +{ + set(types::ue_radio_paging_info_r12); + return c; +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_paging_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/phy_ded.cc b/lib/src/asn1/rrc/phy_ded.cc index 4e6518ba0..156c05f0d 100644 --- a/lib/src/asn1/rrc/phy_ded.cc +++ b/lib/src/asn1/rrc/phy_ded.cc @@ -30,7 +30,7 @@ using namespace asn1::rrc; ******************************************************************************/ // NZP-FrequencyDensity-r14 ::= ENUMERATED -std::string nzp_freq_density_r14_opts::to_string() const +const char* nzp_freq_density_r14_opts::to_string() const { static const char* options[] = {"d1", "d2", "d3"}; return convert_enum_idx(options, 3, value, "nzp_freq_density_r14_e"); @@ -151,6 +151,21 @@ p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::operator=(const p_c_and_cbsr_r13_s::cbsr_se return *this; } +p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::non_precoded_r13_s_& p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::set_non_precoded_r13() +{ + set(types::non_precoded_r13); + return c.get(); +} +p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::bf_k1a_r13_s_& p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::set_bf_k1a_r13() +{ + set(types::bf_k1a_r13); + return c.get(); +} +p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::bf_kn_r13_s_& p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::set_bf_kn_r13() +{ + set(types::bf_kn_r13); + return c.get(); +} void p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -321,7 +336,7 @@ bool csi_rs_cfg_nzp_activation_r14_s::operator==(const csi_rs_cfg_nzp_activation return csi_rs_nzp_mode_r14 == other.csi_rs_nzp_mode_r14 and activ_res_r14 == other.activ_res_r14; } -std::string csi_rs_cfg_nzp_activation_r14_s::csi_rs_nzp_mode_r14_opts::to_string() const +const char* csi_rs_cfg_nzp_activation_r14_s::csi_rs_nzp_mode_r14_opts::to_string() const { static const char* options[] = {"semiPersistent", "aperiodic"}; return convert_enum_idx(options, 2, value, "csi_rs_cfg_nzp_activation_r14_s::csi_rs_nzp_mode_r14_e_"); @@ -499,7 +514,7 @@ bool csi_rs_cfg_nzp_r11_s::operator==(const csi_rs_cfg_nzp_r11_s& other) const (not mbsfn_sf_cfg_list_v1430.is_present() or *mbsfn_sf_cfg_list_v1430 == *other.mbsfn_sf_cfg_list_v1430))); } -std::string csi_rs_cfg_nzp_r11_s::ant_ports_count_r11_opts::to_string() const +const char* csi_rs_cfg_nzp_r11_s::ant_ports_count_r11_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "an8"}; return convert_enum_idx(options, 4, value, "csi_rs_cfg_nzp_r11_s::ant_ports_count_r11_e_"); @@ -510,7 +525,7 @@ uint8_t csi_rs_cfg_nzp_r11_s::ant_ports_count_r11_opts::to_number() const return map_enum_number(options, 4, value, "csi_rs_cfg_nzp_r11_s::ant_ports_count_r11_e_"); } -std::string csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::crs_ports_count_r11_opts::to_string() const +const char* csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::crs_ports_count_r11_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "spare1"}; return convert_enum_idx(options, 4, value, "csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::crs_ports_count_r11_e_"); @@ -525,6 +540,16 @@ void csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::set(ty { type_ = e; } +void csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::set_release() +{ + set(types::release); +} +csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::setup_s_& +csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_nzp_r11_s::qcl_crs_info_r11_s_::mbsfn_sf_cfg_list_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -588,6 +613,16 @@ void csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::set(types::options e) { type_ = e; } +void csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::set_release() +{ + set(types::release); +} +csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::setup_s_& +csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_nzp_r11_s::mbsfn_sf_cfg_list_v1430_c_::to_json(json_writer& j) const { j.start_obj(); @@ -906,6 +941,15 @@ void csi_rs_cfg_nzp_emimo_r13_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_nzp_emimo_r13_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_nzp_emimo_r13_c::setup_s_& csi_rs_cfg_nzp_emimo_r13_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_nzp_emimo_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -977,7 +1021,7 @@ bool csi_rs_cfg_nzp_emimo_r13_c::operator==(const csi_rs_cfg_nzp_emimo_r13_c& ot (not c.cdm_type_r13_present or c.cdm_type_r13 == other.c.cdm_type_r13); } -std::string csi_rs_cfg_nzp_emimo_r13_c::setup_s_::cdm_type_r13_opts::to_string() const +const char* csi_rs_cfg_nzp_emimo_r13_c::setup_s_::cdm_type_r13_opts::to_string() const { static const char* options[] = {"cdm2", "cdm4"}; return convert_enum_idx(options, 2, value, "csi_rs_cfg_nzp_emimo_r13_c::setup_s_::cdm_type_r13_e_"); @@ -1025,7 +1069,7 @@ bool csi_rs_cfg_nzp_emimo_v1430_s::operator==(const csi_rs_cfg_nzp_emimo_v1430_s } // CQI-ReportModeAperiodic ::= ENUMERATED -std::string cqi_report_mode_aperiodic_opts::to_string() const +const char* cqi_report_mode_aperiodic_opts::to_string() const { static const char* options[] = {"rm12", "rm20", "rm22", "rm30", "rm31", "rm32-v1250", "rm10-v1310", "rm11-v1310"}; return convert_enum_idx(options, 8, value, "cqi_report_mode_aperiodic_e"); @@ -1217,6 +1261,15 @@ void csi_rs_cfg_emimo2_r14_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo2_r14_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_bf_r14_s& csi_rs_cfg_emimo2_r14_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo2_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -1378,7 +1431,7 @@ bool csi_rs_cfg_non_precoded_r13_s::operator==(const csi_rs_cfg_non_precoded_r13 (not csi_rs_cfg_nzp_emimo_r13_present or csi_rs_cfg_nzp_emimo_r13 == other.csi_rs_cfg_nzp_emimo_r13); } -std::string csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n1_r13_opts::to_string() const +const char* csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n1_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n8"}; return convert_enum_idx(options, 5, value, "csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n1_r13_e_"); @@ -1389,7 +1442,7 @@ uint8_t csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n1_r13_opts::to_number() con return map_enum_number(options, 5, value, "csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n1_r13_e_"); } -std::string csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n2_r13_opts::to_string() const +const char* csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n2_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n8"}; return convert_enum_idx(options, 5, value, "csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n2_r13_e_"); @@ -1400,7 +1453,7 @@ uint8_t csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n2_r13_opts::to_number() con return map_enum_number(options, 5, value, "csi_rs_cfg_non_precoded_r13_s::codebook_cfg_n2_r13_e_"); } -std::string csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o1_r13_opts::to_string() const +const char* csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o1_r13_opts::to_string() const { static const char* options[] = {"n4", "n8"}; return convert_enum_idx( @@ -1412,7 +1465,7 @@ uint8_t csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o1_r13_op return map_enum_number(options, 2, value, "csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o1_r13_e_"); } -std::string csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o2_r13_opts::to_string() const +const char* csi_rs_cfg_non_precoded_r13_s::codebook_over_sampling_rate_cfg_o2_r13_opts::to_string() const { static const char* options[] = {"n4", "n8"}; return convert_enum_idx( @@ -1473,7 +1526,7 @@ bool csi_rs_cfg_non_precoded_v1430_s::operator==(const csi_rs_cfg_non_precoded_v nzp_res_cfg_tm9_original_v1430 == other.nzp_res_cfg_tm9_original_v1430; } -std::string csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n1_v1430_opts::to_string() const +const char* csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n1_v1430_opts::to_string() const { static const char* options[] = {"n5", "n6", "n7", "n10", "n12", "n14", "n16"}; return convert_enum_idx(options, 7, value, "csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n1_v1430_e_"); @@ -1484,7 +1537,7 @@ uint8_t csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n1_v1430_opts::to_number() return map_enum_number(options, 7, value, "csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n1_v1430_e_"); } -std::string csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n2_v1430_opts::to_string() const +const char* csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n2_v1430_opts::to_string() const { static const char* options[] = {"n5", "n6", "n7"}; return convert_enum_idx(options, 3, value, "csi_rs_cfg_non_precoded_v1430_s::codebook_cfg_n2_v1430_e_"); @@ -1562,7 +1615,7 @@ bool csi_rs_cfg_non_precoded_v1480_s::operator==(const csi_rs_cfg_non_precoded_v nzp_res_cfg_tm9_original_v1480 == other.nzp_res_cfg_tm9_original_v1480; } -std::string csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n1_v1480_opts::to_string() const +const char* csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n1_v1480_opts::to_string() const { static const char* options[] = {"n5", "n6", "n7", "n10", "n12", "n14", "n16"}; return convert_enum_idx(options, 7, value, "csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n1_v1480_e_"); @@ -1573,7 +1626,7 @@ uint8_t csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n1_v1480_opts::to_number() return map_enum_number(options, 7, value, "csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n1_v1480_e_"); } -std::string csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n2_r1480_opts::to_string() const +const char* csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n2_r1480_opts::to_string() const { static const char* options[] = {"n5", "n6", "n7"}; return convert_enum_idx(options, 3, value, "csi_rs_cfg_non_precoded_v1480_s::codebook_cfg_n2_r1480_e_"); @@ -1776,6 +1829,15 @@ void cri_report_cfg_r13_c::set(types::options e) { type_ = e; } +void cri_report_cfg_r13_c::set_release() +{ + set(types::release); +} +cri_report_cfg_r13_c::setup_s_& cri_report_cfg_r13_c::set_setup() +{ + set(types::setup); + return c; +} void cri_report_cfg_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -1848,6 +1910,15 @@ void csi_rs_cfg_emimo_hybrid_r14_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo_hybrid_r14_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_emimo_hybrid_r14_c::setup_s_& csi_rs_cfg_emimo_hybrid_r14_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo_hybrid_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -1932,6 +2003,15 @@ void csi_rs_cfg_emimo_r13_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo_r13_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_emimo_r13_c::setup_c_& csi_rs_cfg_emimo_r13_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -2052,6 +2132,16 @@ csi_rs_cfg_emimo_r13_c::setup_c_::operator=(const csi_rs_cfg_emimo_r13_c::setup_ return *this; } +csi_rs_cfg_non_precoded_r13_s& csi_rs_cfg_emimo_r13_c::setup_c_::set_non_precoded_r13() +{ + set(types::non_precoded_r13); + return c.get(); +} +csi_rs_cfg_bf_r13_s& csi_rs_cfg_emimo_r13_c::setup_c_::set_bf_r13() +{ + set(types::bf_r13); + return c.get(); +} void csi_rs_cfg_emimo_r13_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2124,6 +2214,15 @@ void csi_rs_cfg_emimo_v1430_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo_v1430_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_emimo_v1430_c::setup_c_& csi_rs_cfg_emimo_v1430_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo_v1430_c::to_json(json_writer& j) const { j.start_obj(); @@ -2244,6 +2343,16 @@ csi_rs_cfg_emimo_v1430_c::setup_c_::operator=(const csi_rs_cfg_emimo_v1430_c::se return *this; } +csi_rs_cfg_non_precoded_v1430_s& csi_rs_cfg_emimo_v1430_c::setup_c_::set_non_precoded_v1430() +{ + set(types::non_precoded_v1430); + return c.get(); +} +csi_rs_cfg_bf_v1430_s& csi_rs_cfg_emimo_v1430_c::setup_c_::set_bf_v1430() +{ + set(types::bf_v1430); + return c.get(); +} void csi_rs_cfg_emimo_v1430_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2316,6 +2425,15 @@ void csi_rs_cfg_emimo_v1480_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo_v1480_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_emimo_v1480_c::setup_c_& csi_rs_cfg_emimo_v1480_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo_v1480_c::to_json(json_writer& j) const { j.start_obj(); @@ -2436,6 +2554,16 @@ csi_rs_cfg_emimo_v1480_c::setup_c_::operator=(const csi_rs_cfg_emimo_v1480_c::se return *this; } +csi_rs_cfg_non_precoded_v1480_s& csi_rs_cfg_emimo_v1480_c::setup_c_::set_non_precoded_v1480() +{ + set(types::non_precoded_v1480); + return c.get(); +} +csi_rs_cfg_bf_v1430_s& csi_rs_cfg_emimo_v1480_c::setup_c_::set_bf_v1480() +{ + set(types::bf_v1480); + return c.get(); +} void csi_rs_cfg_emimo_v1480_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2508,6 +2636,15 @@ void csi_rs_cfg_emimo_v1530_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_emimo_v1530_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_emimo_v1530_c::setup_c_& csi_rs_cfg_emimo_v1530_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_emimo_v1530_c::to_json(json_writer& j) const { j.start_obj(); @@ -2776,6 +2913,18 @@ cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::operator=( return *this; } +cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::wideband_cqi_r11_s_& +cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::set_wideband_cqi_r11() +{ + set(types::wideband_cqi_r11); + return c.get(); +} +cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::subband_cqi_r11_s_& +cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::set_subband_cqi_r11() +{ + set(types::subband_cqi_r11); + return c.get(); +} void cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2865,7 +3014,7 @@ bool cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::operato return true; } -std::string cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::wideband_cqi_r11_s_:: +const char* cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::wideband_cqi_r11_s_:: csi_report_mode_r11_opts::to_string() const { static const char* options[] = {"submode1", "submode2"}; @@ -2886,7 +3035,7 @@ uint8_t cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::wide "report_mode_r11_e_"); } -std::string cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::subband_cqi_r11_s_:: +const char* cqi_report_periodic_proc_ext_r11_s::cqi_format_ind_periodic_r11_c_::subband_cqi_r11_s_:: periodicity_factor_r11_opts::to_string() const { static const char* options[] = {"n2", "n4"}; @@ -2911,6 +3060,16 @@ void cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::set(types::options { type_ = e; } +void cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::set_release() +{ + set(types::release); +} +cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::setup_s_& +cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2978,7 +3137,7 @@ bool cqi_report_periodic_proc_ext_r11_s::csi_cfg_idx_r11_c_::operator==(const cs (not c.ri_cfg_idx2_r11_present or c.ri_cfg_idx2_r11 == other.c.ri_cfg_idx2_r11); } -std::string cqi_report_periodic_proc_ext_r11_s::periodicity_factor_wb_r13_opts::to_string() const +const char* cqi_report_periodic_proc_ext_r11_s::periodicity_factor_wb_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "cqi_report_periodic_proc_ext_r11_s::periodicity_factor_wb_r13_e_"); @@ -3473,6 +3632,15 @@ void csi_process_r11_s::csi_im_cfg_id_list_r12_c_::set(types::options e) { type_ = e; } +void csi_process_r11_s::csi_im_cfg_id_list_r12_c_::set_release() +{ + set(types::release); +} +csi_process_r11_s::csi_im_cfg_id_list_r12_c_::setup_l_& csi_process_r11_s::csi_im_cfg_id_list_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_process_r11_s::csi_im_cfg_id_list_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3532,6 +3700,15 @@ void csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::set(types::options e) { type_ = e; } +void csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_proc_r11_s& csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_process_r11_s::cqi_report_aperiodic_proc2_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3589,6 +3766,15 @@ void csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::set(types::options e { type_ = e; } +void csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_proc_v1310_s& csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_process_r11_s::cqi_report_aperiodic_proc_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3646,6 +3832,15 @@ void csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::set(types::options { type_ = e; } +void csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_proc_v1310_s& csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_process_r11_s::cqi_report_aperiodic_proc2_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3759,6 +3954,15 @@ void cqi_report_aperiodic_r10_c::set(types::options e) { type_ = e; } +void cqi_report_aperiodic_r10_c::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_r10_c::setup_s_& cqi_report_aperiodic_r10_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_aperiodic_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -3837,6 +4041,15 @@ void cqi_report_aperiodic_v1250_c::set(types::options e) { type_ = e; } +void cqi_report_aperiodic_v1250_c::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_v1250_c::setup_s_& cqi_report_aperiodic_v1250_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_aperiodic_v1250_c::to_json(json_writer& j) const { j.start_obj(); @@ -3908,7 +4121,7 @@ bool cqi_report_aperiodic_v1250_c::operator==(const cqi_report_aperiodic_v1250_c other.c.aperiodic_csi_trigger_v1250.trigger2_sf_set_ind_r12; } -std::string +const char* cqi_report_aperiodic_v1250_c::setup_s_::aperiodic_csi_trigger_v1250_s_::trigger_sf_set_ind_r12_opts::to_string() const { static const char* options[] = {"s1", "s2"}; @@ -3934,6 +4147,15 @@ void cqi_report_aperiodic_v1310_c::set(types::options e) { type_ = e; } +void cqi_report_aperiodic_v1310_c::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_v1310_c::setup_s_& cqi_report_aperiodic_v1310_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_aperiodic_v1310_c::to_json(json_writer& j) const { j.start_obj(); @@ -4039,6 +4261,16 @@ void cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::set( { type_ = e; } +void cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::set_release() +{ + set(types::release); +} +cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::setup_s_& +cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_aperiodic_v1310_c::setup_s_::aperiodic_csi_trigger2_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4231,6 +4463,24 @@ cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_& cqi_report_aperiodic_hybrid_ return *this; } +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::one_bit_r14_s_& +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::set_one_bit_r14() +{ + set(types::one_bit_r14); + return c.get(); +} +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::two_bit_r14_s_& +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::set_two_bit_r14() +{ + set(types::two_bit_r14); + return c.get(); +} +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::three_bit_r14_s_& +cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::set_three_bit_r14() +{ + set(types::three_bit_r14); + return c.get(); +} void cqi_report_aperiodic_hybrid_r14_s::triggers_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4556,6 +4806,15 @@ void cqi_report_periodic_r10_c::set(types::options e) { type_ = e; } +void cqi_report_periodic_r10_c::set_release() +{ + set(types::release); +} +cqi_report_periodic_r10_c::setup_s_& cqi_report_periodic_r10_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -4739,6 +4998,18 @@ cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::operator=( return *this; } +cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::wideband_cqi_r10_s_& +cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::set_wideband_cqi_r10() +{ + set(types::wideband_cqi_r10); + return c.get(); +} +cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::subband_cqi_r10_s_& +cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::set_subband_cqi_r10() +{ + set(types::subband_cqi_r10); + return c.get(); +} void cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4828,7 +5099,7 @@ bool cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::operat return true; } -std::string cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::wideband_cqi_r10_s_:: +const char* cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::wideband_cqi_r10_s_:: csi_report_mode_r10_opts::to_string() const { static const char* options[] = {"submode1", "submode2"}; @@ -4849,7 +5120,7 @@ uint8_t cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::wid "csi_report_mode_r10_e_"); } -std::string cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::subband_cqi_r10_s_:: +const char* cqi_report_periodic_r10_c::setup_s_::cqi_format_ind_periodic_r10_c_::subband_cqi_r10_s_:: periodicity_factor_r10_opts::to_string() const { static const char* options[] = {"n2", "n4"}; @@ -4874,6 +5145,16 @@ void cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::set(types::options { type_ = e; } +void cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::set_release() +{ + set(types::release); +} +cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::setup_s_& +cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_r10_c::setup_s_::csi_cfg_idx_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5087,7 +5368,7 @@ bool cqi_report_periodic_v1320_s::operator==(const cqi_report_periodic_v1320_s& (not periodicity_factor_wb_r13_present or periodicity_factor_wb_r13 == other.periodicity_factor_wb_r13); } -std::string cqi_report_periodic_v1320_s::periodicity_factor_wb_r13_opts::to_string() const +const char* cqi_report_periodic_v1320_s::periodicity_factor_wb_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "cqi_report_periodic_v1320_s::periodicity_factor_wb_r13_e_"); @@ -5103,6 +5384,15 @@ void spdcch_elems_r15_c::set(types::options e) { type_ = e; } +void spdcch_elems_r15_c::set_release() +{ + set(types::release); +} +spdcch_elems_r15_c::setup_s_& spdcch_elems_r15_c::set_setup() +{ + set(types::setup); + return c; +} void spdcch_elems_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -5347,25 +5637,25 @@ bool spdcch_elems_r15_c::operator==(const spdcch_elems_r15_c& other) const (not c.rate_matching_mode_r15_present or c.rate_matching_mode_r15 == other.c.rate_matching_mode_r15); } -std::string spdcch_elems_r15_c::setup_s_::spdcch_set_ref_sig_r15_opts::to_string() const +const char* spdcch_elems_r15_c::setup_s_::spdcch_set_ref_sig_r15_opts::to_string() const { static const char* options[] = {"crs", "dmrs"}; return convert_enum_idx(options, 2, value, "spdcch_elems_r15_c::setup_s_::spdcch_set_ref_sig_r15_e_"); } -std::string spdcch_elems_r15_c::setup_s_::tx_type_r15_opts::to_string() const +const char* spdcch_elems_r15_c::setup_s_::tx_type_r15_opts::to_string() const { static const char* options[] = {"localised", "distributed"}; return convert_enum_idx(options, 2, value, "spdcch_elems_r15_c::setup_s_::tx_type_r15_e_"); } -std::string spdcch_elems_r15_c::setup_s_::sf_type_r15_opts::to_string() const +const char* spdcch_elems_r15_c::setup_s_::sf_type_r15_opts::to_string() const { static const char* options[] = {"mbsfn", "nonmbsfn", "all"}; return convert_enum_idx(options, 3, value, "spdcch_elems_r15_c::setup_s_::sf_type_r15_e_"); } -std::string spdcch_elems_r15_c::setup_s_::rate_matching_mode_r15_opts::to_string() const +const char* spdcch_elems_r15_c::setup_s_::rate_matching_mode_r15_opts::to_string() const { static const char* options[] = {"m1", "m2", "m3", "m4"}; return convert_enum_idx(options, 4, value, "spdcch_elems_r15_c::setup_s_::rate_matching_mode_r15_e_"); @@ -5381,6 +5671,15 @@ void spucch_elems_r15_c::set(types::options e) { type_ = e; } +void spucch_elems_r15_c::set_release() +{ + set(types::release); +} +spucch_elems_r15_c::setup_s_& spucch_elems_r15_c::set_setup() +{ + set(types::setup); + return c; +} void spucch_elems_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -5628,6 +5927,16 @@ tpc_idx_c& tpc_idx_c::operator=(const tpc_idx_c& other) return *this; } +uint8_t& tpc_idx_c::set_idx_of_format3() +{ + set(types::idx_of_format3); + return c.get(); +} +uint8_t& tpc_idx_c::set_idx_of_format3_a() +{ + set(types::idx_of_format3_a); + return c.get(); +} void tpc_idx_c::to_json(json_writer& j) const { j.start_obj(); @@ -5698,6 +6007,15 @@ void zero_tx_pwr_csi_rs_conf_r12_c::set(types::options e) { type_ = e; } +void zero_tx_pwr_csi_rs_conf_r12_c::set_release() +{ + set(types::release); +} +zero_tx_pwr_csi_rs_r12_s& zero_tx_pwr_csi_rs_conf_r12_c::set_setup() +{ + set(types::setup); + return c; +} void zero_tx_pwr_csi_rs_conf_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -5828,6 +6146,15 @@ void cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::set(types::options e) { type_ = e; } +void cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::set_release() +{ + set(types::release); +} +cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::setup_s_& cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_cfg_r10_s::csi_sf_pattern_cfg_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5999,6 +6326,16 @@ void cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::set(types::options e) { type_ = e; } +void cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::set_release() +{ + set(types::release); +} +cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::setup_s_& +cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6053,7 +6390,7 @@ bool cqi_report_cfg_v1250_s::csi_sf_pattern_cfg_r12_c_::operator==(const csi_sf_ return type() == other.type() and c.csi_meas_sf_sets_r12 == other.c.csi_meas_sf_sets_r12; } -std::string cqi_report_cfg_v1250_s::alt_cqi_table_r12_opts::to_string() const +const char* cqi_report_cfg_v1250_s::alt_cqi_table_r12_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx(options, 4, value, "cqi_report_cfg_v1250_s::alt_cqi_table_r12_e_"); @@ -6262,6 +6599,15 @@ void csi_rs_cfg_r10_s::csi_rs_r10_c_::set(types::options e) { type_ = e; } +void csi_rs_cfg_r10_s::csi_rs_r10_c_::set_release() +{ + set(types::release); +} +csi_rs_cfg_r10_s::csi_rs_r10_c_::setup_s_& csi_rs_cfg_r10_s::csi_rs_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_r10_s::csi_rs_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6326,7 +6672,7 @@ bool csi_rs_cfg_r10_s::csi_rs_r10_c_::operator==(const csi_rs_r10_c_& other) con c.res_cfg_r10 == other.c.res_cfg_r10 and c.sf_cfg_r10 == other.c.sf_cfg_r10 and c.p_c_r10 == other.c.p_c_r10; } -std::string csi_rs_cfg_r10_s::csi_rs_r10_c_::setup_s_::ant_ports_count_r10_opts::to_string() const +const char* csi_rs_cfg_r10_s::csi_rs_r10_c_::setup_s_::ant_ports_count_r10_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "an8"}; return convert_enum_idx(options, 4, value, "csi_rs_cfg_r10_s::csi_rs_r10_c_::setup_s_::ant_ports_count_r10_e_"); @@ -6391,6 +6737,16 @@ void csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::set(types::options e) { type_ = e; } +void csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::set_release() +{ + set(types::release); +} +csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::setup_s_& +csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_v1250_s::ds_zero_tx_pwr_csi_rs_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6619,7 +6975,7 @@ bool delta_tx_d_offset_list_spucch_r15_s::operator==(const delta_tx_d_offset_lis delta_tx_d_offset_spucch_format3_r15 == other.delta_tx_d_offset_spucch_format3_r15; } -std::string delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1_r15_opts::to_string() const +const char* delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -6632,7 +6988,7 @@ int8_t delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1_r15 options, 2, value, "delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1_r15_e_"); } -std::string delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1a_r15_opts::to_string() const +const char* delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1a_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -6645,7 +7001,7 @@ int8_t delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1a_r1 options, 2, value, "delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1a_r15_e_"); } -std::string delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1b_r15_opts::to_string() const +const char* delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1b_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -6658,7 +7014,7 @@ int8_t delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1b_r1 options, 2, value, "delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format1b_r15_e_"); } -std::string delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format3_r15_opts::to_string() const +const char* delta_tx_d_offset_list_spucch_r15_s::delta_tx_d_offset_spucch_format3_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -6814,13 +7170,13 @@ bool epdcch_set_cfg_r11_s::operator==(const epdcch_set_cfg_r11_s& other) const (not mpdcch_cfg_r13.is_present() or *mpdcch_cfg_r13 == *other.mpdcch_cfg_r13))); } -std::string epdcch_set_cfg_r11_s::tx_type_r11_opts::to_string() const +const char* epdcch_set_cfg_r11_s::tx_type_r11_opts::to_string() const { static const char* options[] = {"localised", "distributed"}; return convert_enum_idx(options, 2, value, "epdcch_set_cfg_r11_s::tx_type_r11_e_"); } -std::string epdcch_set_cfg_r11_s::res_block_assign_r11_s_::num_prb_pairs_r11_opts::to_string() const +const char* epdcch_set_cfg_r11_s::res_block_assign_r11_s_::num_prb_pairs_r11_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8"}; return convert_enum_idx(options, 3, value, "epdcch_set_cfg_r11_s::res_block_assign_r11_s_::num_prb_pairs_r11_e_"); @@ -6835,6 +7191,15 @@ void epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::set(types::options e) { type_ = e; } +void epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::set_release() +{ + set(types::release); +} +uint8_t& epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void epdcch_set_cfg_r11_s::csi_rs_cfg_zp_id2_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6890,6 +7255,14 @@ void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::set(types::options e) { type_ = e; } +void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::set_release() +{ + set(types::release); +} +void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::set_setup() +{ + set(types::setup); +} void epdcch_set_cfg_r11_s::num_prb_pairs_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6916,6 +7289,15 @@ void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::set(types::options e) { type_ = e; } +void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::set_release() +{ + set(types::release); +} +epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_& epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6986,7 +7368,7 @@ bool epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::operator==(const mpdcch_cfg_r13_c_ c.mpdcch_num_repeat_r13 == other.c.mpdcch_num_repeat_r13 and c.mpdcch_nb_r13 == other.c.mpdcch_nb_r13; } -std::string epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::csi_num_repeat_ce_r13_opts::to_string() const +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::csi_num_repeat_ce_r13_opts::to_string() const { static const char* options[] = {"sf1", "sf2", "sf4", "sf8", "sf16", "sf32"}; return convert_enum_idx( @@ -6999,7 +7381,7 @@ uint8_t epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::csi_num_repeat_ce_r13 options, 6, value, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::csi_num_repeat_ce_r13_e_"); } -std::string epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_pdsch_hop_cfg_r13_opts::to_string() const +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_pdsch_hop_cfg_r13_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx( @@ -7052,6 +7434,18 @@ epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_:: return *this; } +epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::fdd_r13_e_& +epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::set_fdd_r13() +{ + set(types::fdd_r13); + return c.get(); +} +epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::tdd_r13_e_& +epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::set_tdd_r13() +{ + set(types::tdd_r13); + return c.get(); +} void epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7118,7 +7512,7 @@ bool epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13 return true; } -std::string +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::fdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; @@ -7131,7 +7525,7 @@ float epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r1 return map_enum_number( options, 8, value, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::fdd_r13_e_"); } -std::string +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::fdd_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; @@ -7139,7 +7533,7 @@ epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_:: options, 8, value, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::fdd_r13_e_"); } -std::string +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::tdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20", "spare1"}; @@ -7153,7 +7547,7 @@ uint8_t epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_ options, 7, value, "epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_start_sf_uess_r13_c_::tdd_r13_e_"); } -std::string epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_num_repeat_r13_opts::to_string() const +const char* epdcch_set_cfg_r11_s::mpdcch_cfg_r13_c_::setup_s_::mpdcch_num_repeat_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; return convert_enum_idx( @@ -7171,6 +7565,15 @@ void enable256_qam_r14_c::set(types::options e) { type_ = e; } +void enable256_qam_r14_c::set_release() +{ + set(types::release); +} +enable256_qam_r14_c::setup_c_& enable256_qam_r14_c::set_setup() +{ + set(types::setup); + return c; +} void enable256_qam_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -7290,6 +7693,17 @@ enable256_qam_r14_c::setup_c_& enable256_qam_r14_c::setup_c_::operator=(const en return *this; } +enable256_qam_r14_c::setup_c_::tpc_sf_set_cfgured_r14_s_& enable256_qam_r14_c::setup_c_::set_tpc_sf_set_cfgured_r14() +{ + set(types::tpc_sf_set_cfgured_r14); + return c.get(); +} +enable256_qam_r14_c::setup_c_::tpc_sf_set_not_cfgured_r14_s_& +enable256_qam_r14_c::setup_c_::set_tpc_sf_set_not_cfgured_r14() +{ + set(types::tpc_sf_set_not_cfgured_r14); + return c.get(); +} void enable256_qam_r14_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7531,7 +7945,7 @@ bool pdsch_re_map_qcl_cfg_r11_s::operator==(const pdsch_re_map_qcl_cfg_r11_s& ot (not codeword_one_cfg_v1530.is_present() or *codeword_one_cfg_v1530 == *other.codeword_one_cfg_v1530))); } -std::string pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::crs_ports_count_r11_opts::to_string() const +const char* pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::crs_ports_count_r11_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "spare1"}; return convert_enum_idx( @@ -7548,6 +7962,16 @@ void pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_lis { type_ = e; } +void pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::set_release() +{ + set(types::release); +} +pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::setup_s_& +pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_list_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7611,7 +8035,7 @@ bool pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::mbsfn_sf_cfg_lis return type() == other.type() and c.sf_cfg_list == other.c.sf_cfg_list; } -std::string pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::pdsch_start_r11_opts::to_string() const +const char* pdsch_re_map_qcl_cfg_r11_s::optional_set_of_fields_r11_s_::pdsch_start_r11_opts::to_string() const { static const char* options[] = {"reserved", "n1", "n2", "n3", "n4", "assigned"}; return convert_enum_idx( @@ -7638,6 +8062,16 @@ void pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::set(types::options { type_ = e; } +void pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::set_release() +{ + set(types::release); +} +pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::setup_s_& +pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::set_setup() +{ + set(types::setup); + return c; +} void pdsch_re_map_qcl_cfg_r11_s::mbsfn_sf_cfg_list_v1430_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7700,6 +8134,16 @@ void pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::set(types::options e { type_ = e; } +void pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::set_release() +{ + set(types::release); +} +pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_& +pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::set_setup() +{ + set(types::setup); + return c; +} void pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7815,7 +8259,7 @@ bool pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::operator==(const cod c.qcl_csi_rs_cfg_nzp_id_v1530 == other.c.qcl_csi_rs_cfg_nzp_id_v1530); } -std::string +const char* pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::crs_ports_count_v1530_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "spare1"}; @@ -7829,7 +8273,7 @@ uint8_t pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::crs_por options, 3, value, "pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::crs_ports_count_v1530_e_"); } -std::string pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::pdsch_start_v1530_opts::to_string() const +const char* pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::pdsch_start_v1530_opts::to_string() const { static const char* options[] = {"reserved", "n1", "n2", "n3", "n4", "assigned"}; return convert_enum_idx( @@ -7854,7 +8298,7 @@ uint8_t pdsch_re_map_qcl_cfg_r11_s::codeword_one_cfg_v1530_c_::setup_s_::pdsch_s } // SRS-AntennaPort ::= ENUMERATED -std::string srs_ant_port_opts::to_string() const +const char* srs_ant_port_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "spare1"}; return convert_enum_idx(options, 4, value, "srs_ant_port_e"); @@ -7866,7 +8310,7 @@ uint8_t srs_ant_port_opts::to_number() const } // ShortTTI-Length-r15 ::= ENUMERATED -std::string short_tti_len_r15_opts::to_string() const +const char* short_tti_len_r15_opts::to_string() const { static const char* options[] = {"slot", "subslot"}; return convert_enum_idx(options, 2, value, "short_tti_len_r15_e"); @@ -7877,6 +8321,15 @@ void tpc_pdcch_cfg_c::set(types::options e) { type_ = e; } +void tpc_pdcch_cfg_c::set_release() +{ + set(types::release); +} +tpc_pdcch_cfg_c::setup_s_& tpc_pdcch_cfg_c::set_setup() +{ + set(types::setup); + return c; +} void tpc_pdcch_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -7940,6 +8393,15 @@ void ant_info_ded_stti_r15_c::set(types::options e) { type_ = e; } +void ant_info_ded_stti_r15_c::set_release() +{ + set(types::release); +} +ant_info_ded_stti_r15_c::setup_s_& ant_info_ded_stti_r15_c::set_setup() +{ + set(types::setup); + return c; +} void ant_info_ded_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8051,7 +8513,7 @@ bool ant_info_ded_stti_r15_c::operator==(const ant_info_ded_stti_r15_c& other) c c.slot_subslot_pdsch_tx_div_minus4_layer_r15 == other.c.slot_subslot_pdsch_tx_div_minus4_layer_r15; } -std::string ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_mbsfn_r15_opts::to_string() const +const char* ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_mbsfn_r15_opts::to_string() const { static const char* options[] = {"tm9", "tm10"}; return convert_enum_idx(options, 2, value, "ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_mbsfn_r15_e_"); @@ -8062,7 +8524,7 @@ uint8_t ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_mbsfn_r15_opts::to_number( return map_enum_number(options, 2, value, "ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_mbsfn_r15_e_"); } -std::string ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_non_mbsfn_r15_opts::to_string() const +const char* ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_non_mbsfn_r15_opts::to_string() const { static const char* options[] = {"tm1", "tm2", "tm3", "tm4", "tm6", "tm8", "tm9", "tm10"}; return convert_enum_idx(options, 8, value, "ant_info_ded_stti_r15_c::setup_s_::tx_mode_dl_non_mbsfn_r15_e_"); @@ -8275,6 +8737,71 @@ ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::operator=( return *this; } +fixed_bitstring<2>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm3_r15() +{ + set(types::n2_tx_ant_tm3_r15); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm3_r15() +{ + set(types::n4_tx_ant_tm3_r15); + return c.get >(); +} +fixed_bitstring<6>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm4_r15() +{ + set(types::n2_tx_ant_tm4_r15); + return c.get >(); +} +fixed_bitstring<64>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm4_r15() +{ + set(types::n4_tx_ant_tm4_r15); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm5_r15() +{ + set(types::n2_tx_ant_tm5_r15); + return c.get >(); +} +fixed_bitstring<16>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm5_r15() +{ + set(types::n4_tx_ant_tm5_r15); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm6_r15() +{ + set(types::n2_tx_ant_tm6_r15); + return c.get >(); +} +fixed_bitstring<16>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm6_r15() +{ + set(types::n4_tx_ant_tm6_r15); + return c.get >(); +} +fixed_bitstring<6>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm8_r15() +{ + set(types::n2_tx_ant_tm8_r15); + return c.get >(); +} +fixed_bitstring<64>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm8_r15() +{ + set(types::n4_tx_ant_tm8_r15); + return c.get >(); +} +fixed_bitstring<6>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n2_tx_ant_tm9and10_r15() +{ + set(types::n2_tx_ant_tm9and10_r15); + return c.get >(); +} +fixed_bitstring<96>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n4_tx_ant_tm9and10_r15() +{ + set(types::n4_tx_ant_tm9and10_r15); + return c.get >(); +} +fixed_bitstring<109>& ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::set_n8_tx_ant_tm9and10_r15() +{ + set(types::n8_tx_ant_tm9and10_r15); + return c.get >(); +} void ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8462,7 +8989,7 @@ bool ant_info_ded_stti_r15_c::setup_s_::codebook_subset_restrict_c_::operator==( return true; } -std::string ant_info_ded_stti_r15_c::setup_s_::max_layers_mimo_stti_r15_opts::to_string() const +const char* ant_info_ded_stti_r15_c::setup_s_::max_layers_mimo_stti_r15_opts::to_string() const { static const char* options[] = {"twoLayers", "fourLayers"}; return convert_enum_idx(options, 2, value, "ant_info_ded_stti_r15_c::setup_s_::max_layers_mimo_stti_r15_e_"); @@ -8508,7 +9035,7 @@ bool ant_info_ul_stti_r15_s::operator==(const ant_info_ul_stti_r15_s& other) con (not tx_mode_ul_stti_r15_present or tx_mode_ul_stti_r15 == other.tx_mode_ul_stti_r15); } -std::string ant_info_ul_stti_r15_s::tx_mode_ul_stti_r15_opts::to_string() const +const char* ant_info_ul_stti_r15_s::tx_mode_ul_stti_r15_opts::to_string() const { static const char* options[] = {"tm1", "tm2"}; return convert_enum_idx(options, 2, value, "ant_info_ul_stti_r15_s::tx_mode_ul_stti_r15_e_"); @@ -8524,6 +9051,15 @@ void cqi_report_cfg_r15_c::set(types::options e) { type_ = e; } +void cqi_report_cfg_r15_c::set_release() +{ + set(types::release); +} +cqi_report_cfg_r15_c::setup_s_& cqi_report_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8673,7 +9209,7 @@ bool cqi_report_cfg_r15_c::operator==(const cqi_report_cfg_r15_c& other) const c.alt_cqi_table_minus1024_qam_r15 == other.c.alt_cqi_table_minus1024_qam_r15); } -std::string cqi_report_cfg_r15_c::setup_s_::alt_cqi_table_minus1024_qam_r15_opts::to_string() const +const char* cqi_report_cfg_r15_c::setup_s_::alt_cqi_table_minus1024_qam_r15_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx(options, 4, value, "cqi_report_cfg_r15_c::setup_s_::alt_cqi_table_minus1024_qam_r15_e_"); @@ -8696,6 +9232,15 @@ void cqi_report_periodic_c::set(types::options e) { type_ = e; } +void cqi_report_periodic_c::set_release() +{ + set(types::release); +} +cqi_report_periodic_c::setup_s_& cqi_report_periodic_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_c::to_json(json_writer& j) const { j.start_obj(); @@ -8771,6 +9316,16 @@ void cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::set(types::opt { type_ = e; } +void cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::set_wideband_cqi() +{ + set(types::wideband_cqi); +} +cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::subband_cqi_s_& +cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::set_subband_cqi() +{ + set(types::subband_cqi); + return c; +} void cqi_report_periodic_c::setup_s_::cqi_format_ind_periodic_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8826,6 +9381,15 @@ void csi_rs_cfg_r15_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_r15_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_r15_c::setup_s_& csi_rs_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8937,6 +9501,15 @@ void csi_rs_cfg_zp_ap_list_r14_c::set(types::options e) { type_ = e; } +void csi_rs_cfg_zp_ap_list_r14_c::set_release() +{ + set(types::release); +} +csi_rs_cfg_zp_ap_list_r14_c::setup_l_& csi_rs_cfg_zp_ap_list_r14_c::set_setup() +{ + set(types::setup); + return c; +} void csi_rs_cfg_zp_ap_list_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -8997,6 +9570,15 @@ void dmrs_cfg_r11_c::set(types::options e) { type_ = e; } +void dmrs_cfg_r11_c::set_release() +{ + set(types::release); +} +dmrs_cfg_r11_c::setup_s_& dmrs_cfg_r11_c::set_setup() +{ + set(types::setup); + return c; +} void dmrs_cfg_r11_c::to_json(json_writer& j) const { j.start_obj(); @@ -9119,7 +9701,7 @@ bool delta_tx_d_offset_list_pucch_r10_s::operator==(const delta_tx_d_offset_list delta_tx_d_offset_pucch_format3_r10 == other.delta_tx_d_offset_pucch_format3_r10; } -std::string delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1_r10_opts::to_string() const +const char* delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1_r10_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -9132,7 +9714,7 @@ int8_t delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1_r10_o options, 2, value, "delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1_r10_e_"); } -std::string delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1a1b_r10_opts::to_string() const +const char* delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1a1b_r10_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -9145,7 +9727,7 @@ int8_t delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1a1b_r1 options, 2, value, "delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format1a1b_r10_e_"); } -std::string delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format22a2b_r10_opts::to_string() const +const char* delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format22a2b_r10_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -9158,7 +9740,7 @@ int8_t delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format22a2b_r options, 2, value, "delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format22a2b_r10_e_"); } -std::string delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format3_r10_opts::to_string() const +const char* delta_tx_d_offset_list_pucch_r10_s::delta_tx_d_offset_pucch_format3_r10_opts::to_string() const { static const char* options[] = {"dB0", "dB-2"}; return convert_enum_idx( @@ -9195,7 +9777,7 @@ bool delta_tx_d_offset_list_pucch_v1130_s::operator==(const delta_tx_d_offset_li return delta_tx_d_offset_pucch_format1b_cs_r11 == other.delta_tx_d_offset_pucch_format1b_cs_r11; } -std::string delta_tx_d_offset_list_pucch_v1130_s::delta_tx_d_offset_pucch_format1b_cs_r11_opts::to_string() const +const char* delta_tx_d_offset_list_pucch_v1130_s::delta_tx_d_offset_pucch_format1b_cs_r11_opts::to_string() const { static const char* options[] = {"dB0", "dB-1"}; return convert_enum_idx( @@ -9213,6 +9795,15 @@ void eimta_main_cfg_r12_c::set(types::options e) { type_ = e; } +void eimta_main_cfg_r12_c::set_release() +{ + set(types::release); +} +eimta_main_cfg_r12_c::setup_s_& eimta_main_cfg_r12_c::set_setup() +{ + set(types::setup); + return c; +} void eimta_main_cfg_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -9275,7 +9866,7 @@ bool eimta_main_cfg_r12_c::operator==(const eimta_main_cfg_r12_c& other) const c.eimta_cmd_sf_set_r12 == other.c.eimta_cmd_sf_set_r12; } -std::string eimta_main_cfg_r12_c::setup_s_::eimta_cmd_periodicity_r12_opts::to_string() const +const char* eimta_main_cfg_r12_c::setup_s_::eimta_cmd_periodicity_r12_opts::to_string() const { static const char* options[] = {"sf10", "sf20", "sf40", "sf80"}; return convert_enum_idx(options, 4, value, "eimta_main_cfg_r12_c::setup_s_::eimta_cmd_periodicity_r12_e_"); @@ -9291,6 +9882,15 @@ void eimta_main_cfg_serv_cell_r12_c::set(types::options e) { type_ = e; } +void eimta_main_cfg_serv_cell_r12_c::set_release() +{ + set(types::release); +} +eimta_main_cfg_serv_cell_r12_c::setup_s_& eimta_main_cfg_serv_cell_r12_c::set_setup() +{ + set(types::setup); + return c; +} void eimta_main_cfg_serv_cell_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -9354,7 +9954,7 @@ bool eimta_main_cfg_serv_cell_r12_c::operator==(const eimta_main_cfg_serv_cell_r c.mbsfn_sf_cfg_list_v1250 == other.c.mbsfn_sf_cfg_list_v1250; } -std::string eimta_main_cfg_serv_cell_r12_c::setup_s_::eimta_harq_ref_cfg_r12_opts::to_string() const +const char* eimta_main_cfg_serv_cell_r12_c::setup_s_::eimta_harq_ref_cfg_r12_opts::to_string() const { static const char* options[] = {"sa2", "sa4", "sa5"}; return convert_enum_idx(options, 3, value, "eimta_main_cfg_serv_cell_r12_c::setup_s_::eimta_harq_ref_cfg_r12_e_"); @@ -9369,6 +9969,16 @@ void eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::set(t { type_ = e; } +void eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::set_release() +{ + set(types::release); +} +eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::setup_s_& +eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::set_setup() +{ + set(types::setup); + return c; +} void eimta_main_cfg_serv_cell_r12_c::setup_s_::mbsfn_sf_cfg_list_v1250_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9483,7 +10093,7 @@ bool format5_res_r13_s::operator==(const format5_res_r13_s& other) const } // PDCCH-CandidateReductionValue-r13 ::= ENUMERATED -std::string pdcch_candidate_reduction_value_r13_opts::to_string() const +const char* pdcch_candidate_reduction_value_r13_opts::to_string() const { static const char* options[] = {"n0", "n33", "n66", "n100"}; return convert_enum_idx(options, 4, value, "pdcch_candidate_reduction_value_r13_e"); @@ -9543,7 +10153,7 @@ bool pucch_cfg_ded_v1530_s::operator==(const pucch_cfg_ded_v1530_s& other) const codebooksize_determination_stti_r15 == other.codebooksize_determination_stti_r15); } -std::string pucch_cfg_ded_v1530_s::codebooksize_determination_stti_r15_opts::to_string() const +const char* pucch_cfg_ded_v1530_s::codebooksize_determination_stti_r15_opts::to_string() const { static const char* options[] = {"dai", "cc"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_v1530_s::codebooksize_determination_stti_r15_e_"); @@ -9607,6 +10217,16 @@ void pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::set(type { type_ = e; } +void pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::set_release() +{ + set(types::release); +} +pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::setup_s_& +pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_format3_conf_r13_s::two_ant_port_activ_pucch_format3_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9671,6 +10291,15 @@ void spdcch_cfg_r15_c::set(types::options e) { type_ = e; } +void spdcch_cfg_r15_c::set_release() +{ + set(types::release); +} +spdcch_cfg_r15_c::setup_s_& spdcch_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void spdcch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -9751,7 +10380,7 @@ bool spdcch_cfg_r15_c::operator==(const spdcch_cfg_r15_c& other) const (not c.spdcch_set_cfg_r15_present or c.spdcch_set_cfg_r15 == other.c.spdcch_set_cfg_r15); } -std::string spdcch_cfg_r15_c::setup_s_::spdcch_l1_reuse_ind_r15_opts::to_string() const +const char* spdcch_cfg_r15_c::setup_s_::spdcch_l1_reuse_ind_r15_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2"}; return convert_enum_idx(options, 3, value, "spdcch_cfg_r15_c::setup_s_::spdcch_l1_reuse_ind_r15_e_"); @@ -9767,6 +10396,15 @@ void spucch_cfg_r15_c::set(types::options e) { type_ = e; } +void spucch_cfg_r15_c::set_release() +{ + set(types::release); +} +spucch_cfg_r15_c::setup_s_& spucch_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void spucch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -9917,7 +10555,7 @@ bool srs_cfg_ap_r10_s::operator==(const srs_cfg_ap_r10_s& other) const cyclic_shift_ap_r10 == other.cyclic_shift_ap_r10; } -std::string srs_cfg_ap_r10_s::srs_bw_ap_r10_opts::to_string() const +const char* srs_cfg_ap_r10_s::srs_bw_ap_r10_opts::to_string() const { static const char* options[] = {"bw0", "bw1", "bw2", "bw3"}; return convert_enum_idx(options, 4, value, "srs_cfg_ap_r10_s::srs_bw_ap_r10_e_"); @@ -9928,7 +10566,7 @@ uint8_t srs_cfg_ap_r10_s::srs_bw_ap_r10_opts::to_number() const return map_enum_number(options, 4, value, "srs_cfg_ap_r10_s::srs_bw_ap_r10_e_"); } -std::string srs_cfg_ap_r10_s::cyclic_shift_ap_r10_opts::to_string() const +const char* srs_cfg_ap_r10_s::cyclic_shift_ap_r10_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7"}; return convert_enum_idx(options, 8, value, "srs_cfg_ap_r10_s::cyclic_shift_ap_r10_e_"); @@ -9980,7 +10618,7 @@ bool srs_cfg_ap_r13_s::operator==(const srs_cfg_ap_r13_s& other) const cyclic_shift_ap_r13 == other.cyclic_shift_ap_r13 and tx_comb_num_r13 == other.tx_comb_num_r13; } -std::string srs_cfg_ap_r13_s::srs_bw_ap_r13_opts::to_string() const +const char* srs_cfg_ap_r13_s::srs_bw_ap_r13_opts::to_string() const { static const char* options[] = {"bw0", "bw1", "bw2", "bw3"}; return convert_enum_idx(options, 4, value, "srs_cfg_ap_r13_s::srs_bw_ap_r13_e_"); @@ -9991,7 +10629,7 @@ uint8_t srs_cfg_ap_r13_s::srs_bw_ap_r13_opts::to_number() const return map_enum_number(options, 4, value, "srs_cfg_ap_r13_s::srs_bw_ap_r13_e_"); } -std::string srs_cfg_ap_r13_s::cyclic_shift_ap_r13_opts::to_string() const +const char* srs_cfg_ap_r13_s::cyclic_shift_ap_r13_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7", "cs8", "cs9", "cs10", "cs11"}; return convert_enum_idx(options, 12, value, "srs_cfg_ap_r13_s::cyclic_shift_ap_r13_e_"); @@ -10002,7 +10640,7 @@ uint8_t srs_cfg_ap_r13_s::cyclic_shift_ap_r13_opts::to_number() const return map_enum_number(options, 12, value, "srs_cfg_ap_r13_s::cyclic_shift_ap_r13_e_"); } -std::string srs_cfg_ap_r13_s::tx_comb_num_r13_opts::to_string() const +const char* srs_cfg_ap_r13_s::tx_comb_num_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "srs_cfg_ap_r13_s::tx_comb_num_r13_e_"); @@ -10074,7 +10712,7 @@ bool srs_cfg_ap_v1310_s::operator==(const srs_cfg_ap_v1310_s& other) const (not tx_comb_num_r13_present or tx_comb_num_r13 == other.tx_comb_num_r13); } -std::string srs_cfg_ap_v1310_s::cyclic_shift_ap_v1310_opts::to_string() const +const char* srs_cfg_ap_v1310_s::cyclic_shift_ap_v1310_opts::to_string() const { static const char* options[] = {"cs8", "cs9", "cs10", "cs11"}; return convert_enum_idx(options, 4, value, "srs_cfg_ap_v1310_s::cyclic_shift_ap_v1310_e_"); @@ -10085,7 +10723,7 @@ uint8_t srs_cfg_ap_v1310_s::cyclic_shift_ap_v1310_opts::to_number() const return map_enum_number(options, 4, value, "srs_cfg_ap_v1310_s::cyclic_shift_ap_v1310_e_"); } -std::string srs_cfg_ap_v1310_s::tx_comb_num_r13_opts::to_string() const +const char* srs_cfg_ap_v1310_s::tx_comb_num_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "srs_cfg_ap_v1310_s::tx_comb_num_r13_e_"); @@ -10101,6 +10739,15 @@ void sched_request_cfg_v1530_c::set(types::options e) { type_ = e; } +void sched_request_cfg_v1530_c::set_release() +{ + set(types::release); +} +sched_request_cfg_v1530_c::setup_s_& sched_request_cfg_v1530_c::set_setup() +{ + set(types::setup); + return c; +} void sched_request_cfg_v1530_c::to_json(json_writer& j) const { j.start_obj(); @@ -10227,7 +10874,7 @@ bool sched_request_cfg_v1530_c::operator==(const sched_request_cfg_v1530_c& othe c.dssr_trans_max_r15 == other.c.dssr_trans_max_r15; } -std::string sched_request_cfg_v1530_c::setup_s_::dssr_trans_max_r15_opts::to_string() const +const char* sched_request_cfg_v1530_c::setup_s_::dssr_trans_max_r15_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sched_request_cfg_v1530_c::setup_s_::dssr_trans_max_r15_e_"); @@ -10291,6 +10938,15 @@ void slot_or_subslot_pdsch_cfg_r15_c::set(types::options e) { type_ = e; } +void slot_or_subslot_pdsch_cfg_r15_c::set_release() +{ + set(types::release); +} +slot_or_subslot_pdsch_cfg_r15_c::setup_s_& slot_or_subslot_pdsch_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void slot_or_subslot_pdsch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -10402,7 +11058,7 @@ bool slot_or_subslot_pdsch_cfg_r15_c::operator==(const slot_or_subslot_pdsch_cfg c.tbs_idx_alt3_stti_r15_present == other.c.tbs_idx_alt3_stti_r15_present; } -std::string slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table_stti_r15_opts::to_string() const +const char* slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table_stti_r15_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx(options, 4, value, "slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table_stti_r15_e_"); @@ -10420,7 +11076,7 @@ uint8_t slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table_stti_r15_opts:: return 0; } -std::string slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table1024_qam_stti_r15_opts::to_string() const +const char* slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table1024_qam_stti_r15_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx( @@ -10439,7 +11095,7 @@ uint8_t slot_or_subslot_pdsch_cfg_r15_c::setup_s_::alt_cqi_table1024_qam_stti_r1 return 0; } -std::string slot_or_subslot_pdsch_cfg_r15_c::setup_s_::res_alloc_r15_opts::to_string() const +const char* slot_or_subslot_pdsch_cfg_r15_c::setup_s_::res_alloc_r15_opts::to_string() const { static const char* options[] = {"resourceAllocationType0", "resourceAllocationType2"}; return convert_enum_idx(options, 2, value, "slot_or_subslot_pdsch_cfg_r15_c::setup_s_::res_alloc_r15_e_"); @@ -10455,6 +11111,15 @@ void slot_or_subslot_pusch_cfg_r15_c::set(types::options e) { type_ = e; } +void slot_or_subslot_pusch_cfg_r15_c::set_release() +{ + set(types::release); +} +slot_or_subslot_pusch_cfg_r15_c::setup_s_& slot_or_subslot_pusch_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void slot_or_subslot_pusch_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -10669,6 +11334,15 @@ void tdd_pusch_up_pts_r14_c::set(types::options e) { type_ = e; } +void tdd_pusch_up_pts_r14_c::set_release() +{ + set(types::release); +} +tdd_pusch_up_pts_r14_c::setup_s_& tdd_pusch_up_pts_r14_c::set_setup() +{ + set(types::setup); + return c; +} void tdd_pusch_up_pts_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -10732,7 +11406,7 @@ SRSASN_CODE tdd_pusch_up_pts_r14_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string tdd_pusch_up_pts_r14_c::setup_s_::sym_pusch_up_pts_r14_opts::to_string() const +const char* tdd_pusch_up_pts_r14_c::setup_s_::sym_pusch_up_pts_r14_opts::to_string() const { static const char* options[] = {"sym1", "sym2", "sym3", "sym4", "sym5", "sym6"}; return convert_enum_idx(options, 6, value, "tdd_pusch_up_pts_r14_c::setup_s_::sym_pusch_up_pts_r14_e_"); @@ -10826,7 +11500,7 @@ void ant_info_ded_s::to_json(json_writer& j) const j.end_obj(); } -std::string ant_info_ded_s::tx_mode_opts::to_string() const +const char* ant_info_ded_s::tx_mode_opts::to_string() const { static const char* options[] = {"tm1", "tm2", "tm3", "tm4", "tm5", "tm6", "tm7", "tm8-v920"}; return convert_enum_idx(options, 8, value, "ant_info_ded_s::tx_mode_e_"); @@ -10978,6 +11652,46 @@ ant_info_ded_s::codebook_subset_restrict_c_::operator=(const ant_info_ded_s::cod return *this; } +fixed_bitstring<2>& ant_info_ded_s::codebook_subset_restrict_c_::set_n2_tx_ant_tm3() +{ + set(types::n2_tx_ant_tm3); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_s::codebook_subset_restrict_c_::set_n4_tx_ant_tm3() +{ + set(types::n4_tx_ant_tm3); + return c.get >(); +} +fixed_bitstring<6>& ant_info_ded_s::codebook_subset_restrict_c_::set_n2_tx_ant_tm4() +{ + set(types::n2_tx_ant_tm4); + return c.get >(); +} +fixed_bitstring<64>& ant_info_ded_s::codebook_subset_restrict_c_::set_n4_tx_ant_tm4() +{ + set(types::n4_tx_ant_tm4); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_s::codebook_subset_restrict_c_::set_n2_tx_ant_tm5() +{ + set(types::n2_tx_ant_tm5); + return c.get >(); +} +fixed_bitstring<16>& ant_info_ded_s::codebook_subset_restrict_c_::set_n4_tx_ant_tm5() +{ + set(types::n4_tx_ant_tm5); + return c.get >(); +} +fixed_bitstring<4>& ant_info_ded_s::codebook_subset_restrict_c_::set_n2_tx_ant_tm6() +{ + set(types::n2_tx_ant_tm6); + return c.get >(); +} +fixed_bitstring<16>& ant_info_ded_s::codebook_subset_restrict_c_::set_n4_tx_ant_tm6() +{ + set(types::n4_tx_ant_tm6); + return c.get >(); +} void ant_info_ded_s::codebook_subset_restrict_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11086,6 +11800,15 @@ void ant_info_ded_s::ue_tx_ant_sel_c_::set(types::options e) { type_ = e; } +void ant_info_ded_s::ue_tx_ant_sel_c_::set_release() +{ + set(types::release); +} +ant_info_ded_s::ue_tx_ant_sel_c_::setup_e_& ant_info_ded_s::ue_tx_ant_sel_c_::set_setup() +{ + set(types::setup); + return c; +} void ant_info_ded_s::ue_tx_ant_sel_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11133,7 +11856,7 @@ SRSASN_CODE ant_info_ded_s::ue_tx_ant_sel_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ant_info_ded_s::ue_tx_ant_sel_c_::setup_opts::to_string() const +const char* ant_info_ded_s::ue_tx_ant_sel_c_::setup_opts::to_string() const { static const char* options[] = {"closedLoop", "openLoop"}; return convert_enum_idx(options, 2, value, "ant_info_ded_s::ue_tx_ant_sel_c_::setup_e_"); @@ -11184,7 +11907,7 @@ bool ant_info_ded_r10_s::operator==(const ant_info_ded_r10_s& other) const ue_tx_ant_sel == other.ue_tx_ant_sel; } -std::string ant_info_ded_r10_s::tx_mode_r10_opts::to_string() const +const char* ant_info_ded_r10_s::tx_mode_r10_opts::to_string() const { static const char* options[] = {"tm1", "tm2", @@ -11214,6 +11937,15 @@ void ant_info_ded_r10_s::ue_tx_ant_sel_c_::set(types::options e) { type_ = e; } +void ant_info_ded_r10_s::ue_tx_ant_sel_c_::set_release() +{ + set(types::release); +} +ant_info_ded_r10_s::ue_tx_ant_sel_c_::setup_e_& ant_info_ded_r10_s::ue_tx_ant_sel_c_::set_setup() +{ + set(types::setup); + return c; +} void ant_info_ded_r10_s::ue_tx_ant_sel_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11265,7 +11997,7 @@ bool ant_info_ded_r10_s::ue_tx_ant_sel_c_::operator==(const ue_tx_ant_sel_c_& ot return type() == other.type() and c == other.c; } -std::string ant_info_ded_r10_s::ue_tx_ant_sel_c_::setup_opts::to_string() const +const char* ant_info_ded_r10_s::ue_tx_ant_sel_c_::setup_opts::to_string() const { static const char* options[] = {"closedLoop", "openLoop"}; return convert_enum_idx(options, 2, value, "ant_info_ded_r10_s::ue_tx_ant_sel_c_::setup_e_"); @@ -11322,6 +12054,15 @@ void ant_info_ded_v1530_c::set(types::options e) { type_ = e; } +void ant_info_ded_v1530_c::set_release() +{ + set(types::release); +} +ant_info_ded_v1530_c::setup_c_& ant_info_ded_v1530_c::set_setup() +{ + set(types::setup); + return c; +} void ant_info_ded_v1530_c::to_json(json_writer& j) const { j.start_obj(); @@ -11374,6 +12115,16 @@ void ant_info_ded_v1530_c::setup_c_::set(types::options e) { type_ = e; } +void ant_info_ded_v1530_c::setup_c_::set_ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15() +{ + set(types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15); +} +ant_info_ded_v1530_c::setup_c_::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& +ant_info_ded_v1530_c::setup_c_::set_ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() +{ + set(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15); + return c; +} void ant_info_ded_v1530_c::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11421,7 +12172,7 @@ SRSASN_CODE ant_info_ded_v1530_c::setup_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ant_info_ded_v1530_c::setup_c_::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_opts::to_string() const +const char* ant_info_ded_v1530_c::setup_c_::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_opts::to_string() const { static const char* options[] = {"two", "three"}; return convert_enum_idx( @@ -11534,6 +12285,16 @@ ant_info_ded_v920_s::codebook_subset_restrict_v920_c_& ant_info_ded_v920_s::code return *this; } +fixed_bitstring<6>& ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::set_n2_tx_ant_tm8_r9() +{ + set(types::n2_tx_ant_tm8_r9); + return c.get >(); +} +fixed_bitstring<32>& ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::set_n4_tx_ant_tm8_r9() +{ + set(types::n4_tx_ant_tm8_r9); + return c.get >(); +} void ant_info_ded_v920_s::codebook_subset_restrict_v920_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11625,7 +12386,7 @@ bool ant_info_ul_r10_s::operator==(const ant_info_ul_r10_s& other) const four_ant_port_activ_r10_present == other.four_ant_port_activ_r10_present; } -std::string ant_info_ul_r10_s::tx_mode_ul_r10_opts::to_string() const +const char* ant_info_ul_r10_s::tx_mode_ul_r10_opts::to_string() const { static const char* options[] = {"tm1", "tm2", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ant_info_ul_r10_s::tx_mode_ul_r10_e_"); @@ -11853,7 +12614,7 @@ bool cqi_report_cfg_v1530_s::operator==(const cqi_report_cfg_v1530_s& other) con alt_cqi_table_minus1024_qam_r15 == other.alt_cqi_table_minus1024_qam_r15); } -std::string cqi_report_cfg_v1530_s::alt_cqi_table_minus1024_qam_r15_opts::to_string() const +const char* cqi_report_cfg_v1530_s::alt_cqi_table_minus1024_qam_r15_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx(options, 4, value, "cqi_report_cfg_v1530_s::alt_cqi_table_minus1024_qam_r15_e_"); @@ -11999,6 +12760,15 @@ void epdcch_cfg_r11_s::cfg_r11_c_::set(types::options e) { type_ = e; } +void epdcch_cfg_r11_s::cfg_r11_c_::set_release() +{ + set(types::release); +} +epdcch_cfg_r11_s::cfg_r11_c_::setup_s_& epdcch_cfg_r11_s::cfg_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void epdcch_cfg_r11_s::cfg_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12116,6 +12886,16 @@ void epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::set(types::o { type_ = e; } +void epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::set_release() +{ + set(types::release); +} +epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::setup_s_& +epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void epdcch_cfg_r11_s::cfg_r11_c_::setup_s_::sf_pattern_cfg_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12176,6 +12956,15 @@ void pdcch_candidate_reductions_r13_c::set(types::options e) { type_ = e; } +void pdcch_candidate_reductions_r13_c::set_release() +{ + set(types::release); +} +pdcch_candidate_reductions_r13_c::setup_s_& pdcch_candidate_reductions_r13_c::set_setup() +{ + set(types::setup); + return c; +} void pdcch_candidate_reductions_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -12270,7 +13059,7 @@ bool pdsch_cfg_ded_s::operator==(const pdsch_cfg_ded_s& other) const return p_a == other.p_a; } -std::string pdsch_cfg_ded_s::p_a_opts::to_string() const +const char* pdsch_cfg_ded_s::p_a_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "pdsch_cfg_ded_s::p_a_e_"); @@ -12280,7 +13069,7 @@ float pdsch_cfg_ded_s::p_a_opts::to_number() const static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "pdsch_cfg_ded_s::p_a_e_"); } -std::string pdsch_cfg_ded_s::p_a_opts::to_number_string() const +const char* pdsch_cfg_ded_s::p_a_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "pdsch_cfg_ded_s::p_a_e_"); @@ -12371,7 +13160,7 @@ bool pdsch_cfg_ded_v1130_s::operator==(const pdsch_cfg_ded_v1130_s& other) const re_map_qcl_cfg_to_add_mod_list_r11 == other.re_map_qcl_cfg_to_add_mod_list_r11); } -std::string pdsch_cfg_ded_v1130_s::qcl_operation_opts::to_string() const +const char* pdsch_cfg_ded_v1130_s::qcl_operation_opts::to_string() const { static const char* options[] = {"typeA", "typeB"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_ded_v1130_s::qcl_operation_e_"); @@ -12412,7 +13201,7 @@ bool pdsch_cfg_ded_v1280_s::operator==(const pdsch_cfg_ded_v1280_s& other) const (not tbs_idx_alt_r12_present or tbs_idx_alt_r12 == other.tbs_idx_alt_r12); } -std::string pdsch_cfg_ded_v1280_s::tbs_idx_alt_r12_opts::to_string() const +const char* pdsch_cfg_ded_v1280_s::tbs_idx_alt_r12_opts::to_string() const { static const char* options[] = {"a26", "a33"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_ded_v1280_s::tbs_idx_alt_r12_e_"); @@ -12515,7 +13304,7 @@ void pdsch_cfg_ded_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_cfg_ded_v1430_s::ce_pdsch_max_bw_r14_opts::to_string() const +const char* pdsch_cfg_ded_v1430_s::ce_pdsch_max_bw_r14_opts::to_string() const { static const char* options[] = {"bw5", "bw20"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_ded_v1430_s::ce_pdsch_max_bw_r14_e_"); @@ -12526,7 +13315,7 @@ uint8_t pdsch_cfg_ded_v1430_s::ce_pdsch_max_bw_r14_opts::to_number() const return map_enum_number(options, 2, value, "pdsch_cfg_ded_v1430_s::ce_pdsch_max_bw_r14_e_"); } -std::string pdsch_cfg_ded_v1430_s::ce_sched_enhancement_r14_opts::to_string() const +const char* pdsch_cfg_ded_v1430_s::ce_sched_enhancement_r14_opts::to_string() const { static const char* options[] = {"range1", "range2"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_ded_v1430_s::ce_sched_enhancement_r14_e_"); @@ -12603,7 +13392,7 @@ bool pdsch_cfg_ded_v1530_s::operator==(const pdsch_cfg_ded_v1530_s& other) const alt_mcs_table_scaling_cfg_r15 == other.alt_mcs_table_scaling_cfg_r15); } -std::string pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_opts::to_string() const +const char* pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_opts::to_string() const { static const char* options[] = {"oDot5", "oDot625", "oDot75", "oDot875"}; return convert_enum_idx(options, 4, value, "pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_e_"); @@ -12613,7 +13402,7 @@ float pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_opts::to_number() con static const float options[] = {0.5, 0.625, 0.75, 0.875}; return map_enum_number(options, 4, value, "pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_e_"); } -std::string pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_opts::to_number_string() const +const char* pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_opts::to_number_string() const { static const char* options[] = {"0.5", "0.625", "0.75", "0.875"}; return convert_enum_idx(options, 4, value, "pdsch_cfg_ded_v1530_s::alt_mcs_table_scaling_cfg_r15_e_"); @@ -12657,6 +13446,15 @@ void pucch_cfg_ded_s::ack_nack_repeat_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_s::ack_nack_repeat_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_& pucch_cfg_ded_s::ack_nack_repeat_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_s::ack_nack_repeat_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12710,7 +13508,7 @@ SRSASN_CODE pucch_cfg_ded_s::ack_nack_repeat_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_::repeat_factor_opts::to_string() const +const char* pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_::repeat_factor_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "spare1"}; return convert_enum_idx(options, 4, value, "pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_::repeat_factor_e_"); @@ -12721,7 +13519,7 @@ uint8_t pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_::repeat_factor_opts::to_nu return map_enum_number(options, 3, value, "pucch_cfg_ded_s::ack_nack_repeat_c_::setup_s_::repeat_factor_e_"); } -std::string pucch_cfg_ded_s::tdd_ack_nack_feedback_mode_opts::to_string() const +const char* pucch_cfg_ded_s::tdd_ack_nack_feedback_mode_opts::to_string() const { static const char* options[] = {"bundling", "multiplexing"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_s::tdd_ack_nack_feedback_mode_e_"); @@ -12893,6 +13691,15 @@ void pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::setup_s_& pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12951,7 +13758,7 @@ bool pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::operator==(const ack_nack_repe c.n1_pucch_an_rep_r13 == other.c.n1_pucch_an_rep_r13; } -std::string pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::setup_s_::repeat_factor_r13_opts::to_string() const +const char* pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::setup_s_::repeat_factor_r13_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "spare1"}; return convert_enum_idx( @@ -12964,7 +13771,7 @@ uint8_t pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::setup_s_::repeat_factor_r13 options, 3, value, "pucch_cfg_ded_r13_s::ack_nack_repeat_r13_c_::setup_s_::repeat_factor_r13_e_"); } -std::string pucch_cfg_ded_r13_s::tdd_ack_nack_feedback_mode_r13_opts::to_string() const +const char* pucch_cfg_ded_r13_s::tdd_ack_nack_feedback_mode_r13_opts::to_string() const { static const char* options[] = {"bundling", "multiplexing"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_r13_s::tdd_ack_nack_feedback_mode_r13_e_"); @@ -13062,6 +13869,26 @@ pucch_cfg_ded_r13_s::pucch_format_r13_c_::operator=(const pucch_cfg_ded_r13_s::p return *this; } +pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_& pucch_cfg_ded_r13_s::pucch_format_r13_c_::set_format3_r13() +{ + set(types::format3_r13); + return c.get(); +} +pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_& pucch_cfg_ded_r13_s::pucch_format_r13_c_::set_ch_sel_r13() +{ + set(types::ch_sel_r13); + return c.get(); +} +pucch_cfg_ded_r13_s::pucch_format_r13_c_::format4_r13_s_& pucch_cfg_ded_r13_s::pucch_format_r13_c_::set_format4_r13() +{ + set(types::format4_r13); + return c.get(); +} +pucch_cfg_ded_r13_s::pucch_format_r13_c_::format5_r13_s_& pucch_cfg_ded_r13_s::pucch_format_r13_c_::set_format5_r13() +{ + set(types::format5_r13); + return c.get(); +} void pucch_cfg_ded_r13_s::pucch_format_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13261,6 +14088,16 @@ void pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_acti { type_ = e; } +void pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::setup_s_& +pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::pucch_format_r13_c_::format3_r13_s_::two_ant_port_activ_pucch_format3_r13_c_::to_json( json_writer& j) const { @@ -13330,6 +14167,16 @@ void pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13 { type_ = e; } +void pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::setup_s_& +pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::pucch_format_r13_c_::ch_sel_r13_s_::n1_pucch_an_cs_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13413,6 +14260,15 @@ void pucch_cfg_ded_r13_s::npucch_param_r13_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_r13_s::npucch_param_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::npucch_param_r13_c_::setup_s_& pucch_cfg_ded_r13_s::npucch_param_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::npucch_param_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13475,6 +14331,15 @@ void pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::setup_s_& pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13529,7 +14394,7 @@ bool pucch_cfg_ded_r13_s::nka_pucch_param_r13_c_::operator==(const nka_pucch_par return type() == other.type() and c.nka_pucch_an_r13 == other.c.nka_pucch_an_r13; } -std::string pucch_cfg_ded_r13_s::codebooksize_determination_r13_opts::to_string() const +const char* pucch_cfg_ded_r13_s::codebooksize_determination_r13_opts::to_string() const { static const char* options[] = {"dai", "cc"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_r13_s::codebooksize_determination_r13_e_"); @@ -13539,6 +14404,15 @@ void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_& pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13661,6 +14535,18 @@ pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::operator=( return *this; } +pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_& +pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::set_mode_a() +{ + set(types::mode_a); + return c.get(); +} +pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_b_s_& +pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::set_mode_b() +{ + set(types::mode_b); + return c.get(); +} void pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13744,7 +14630,7 @@ bool pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::operator==(const return true; } -std::string +const char* pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_repeat_ce_format1_r13_opts::to_string() const { @@ -13767,7 +14653,7 @@ pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_ "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_repeat_ce_format1_r13_e_"); } -std::string +const char* pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_repeat_ce_format2_r13_opts::to_string() const { @@ -13790,7 +14676,7 @@ pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_ "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_a_s_::pucch_num_repeat_ce_format2_r13_e_"); } -std::string +const char* pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_b_s_::pucch_num_repeat_ce_format1_r13_opts::to_string() const { @@ -13813,7 +14699,7 @@ pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_b_s_::pucch_num_ "pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_b_s_::pucch_num_repeat_ce_format1_r13_e_"); } -std::string +const char* pucch_cfg_ded_r13_s::pucch_num_repeat_ce_r13_c_::setup_c_::mode_b_s_::pucch_num_repeat_ce_format2_r13_opts::to_string() const { @@ -13956,6 +14842,16 @@ pucch_cfg_ded_v1020_s::pucch_format_r10_c_::operator=(const pucch_cfg_ded_v1020_ return *this; } +pucch_format3_conf_r13_s& pucch_cfg_ded_v1020_s::pucch_format_r10_c_::set_format3_r10() +{ + set(types::format3_r10); + return c.get(); +} +pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_& pucch_cfg_ded_v1020_s::pucch_format_r10_c_::set_ch_sel_r10() +{ + set(types::ch_sel_r10); + return c.get(); +} void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14023,6 +14919,16 @@ void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r { type_ = e; } +void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::setup_s_& +pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v1020_s::pucch_format_r10_c_::ch_sel_r10_s_::n1_pucch_an_cs_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14136,6 +15042,15 @@ void pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::setup_s_& pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v1130_s::n1_pucch_an_cs_v1130_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14194,6 +15109,15 @@ void pucch_cfg_ded_v1130_s::npucch_param_r11_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_v1130_s::npucch_param_r11_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_v1130_s::npucch_param_r11_c_::setup_s_& pucch_cfg_ded_v1130_s::npucch_param_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v1130_s::npucch_param_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14272,6 +15196,15 @@ void pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::setup_s_& pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v1250_s::nka_pucch_param_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14352,7 +15285,7 @@ void pucch_cfg_ded_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_cfg_ded_v1430_s::pucch_num_repeat_ce_format1_r14_opts::to_string() const +const char* pucch_cfg_ded_v1430_s::pucch_num_repeat_ce_format1_r14_opts::to_string() const { static const char* options[] = {"r64", "r128"}; return convert_enum_idx(options, 2, value, "pucch_cfg_ded_v1430_s::pucch_num_repeat_ce_format1_r14_e_"); @@ -14524,6 +15457,15 @@ void pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::setup_s_& pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_r13_s::pusch_dmrs_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14586,6 +15528,15 @@ void pusch_cfg_ded_r13_s::uci_on_pusch_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_r13_s::uci_on_pusch_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_r13_s::uci_on_pusch_c_::setup_s_& pusch_cfg_ded_r13_s::uci_on_pusch_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_r13_s::uci_on_pusch_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14793,6 +15744,15 @@ void pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::setup_s_& pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_v1130_s::pusch_dmrs_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14876,6 +15836,15 @@ void pusch_cfg_ded_v1250_s::uci_on_pusch_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_v1250_s::uci_on_pusch_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_v1250_s::uci_on_pusch_c_::setup_s_& pusch_cfg_ded_v1250_s::uci_on_pusch_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_v1250_s::uci_on_pusch_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15055,6 +16024,16 @@ void pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::set(types: { type_ = e; } +void pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::setup_s_& +pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_v1530_s::ce_pusch_flex_start_prb_alloc_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15117,6 +16096,16 @@ void pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::setup_s_& +pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_v1530_s::ce_pusch_sub_prb_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15186,6 +16175,15 @@ void pusch_enhance_cfg_r14_c::set(types::options e) { type_ = e; } +void pusch_enhance_cfg_r14_c::set_release() +{ + set(types::release); +} +pusch_enhance_cfg_r14_c::setup_s_& pusch_enhance_cfg_r14_c::set_setup() +{ + set(types::setup); + return c; +} void pusch_enhance_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -15302,6 +16300,18 @@ pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::operator=( return *this; } +pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_fdd_pusch_enh_r14_e_& +pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::set_interv_fdd_pusch_enh_r14() +{ + set(types::interv_fdd_pusch_enh_r14); + return c.get(); +} +pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_tdd_pusch_enh_r14_e_& +pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::set_interv_tdd_pusch_enh_r14() +{ + set(types::interv_tdd_pusch_enh_r14); + return c.get(); +} void pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15352,7 +16362,7 @@ SRSASN_CODE pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::u return SRSASN_SUCCESS; } -std::string +const char* pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_fdd_pusch_enh_r14_opts::to_string() const { static const char* options[] = {"int1", "int2", "int4", "int8"}; @@ -15373,7 +16383,7 @@ pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_fdd_pu "pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_fdd_pusch_enh_r14_e_"); } -std::string +const char* pusch_enhance_cfg_r14_c::setup_s_::interv_ul_hop_pusch_enh_r14_c_::interv_tdd_pusch_enh_r14_opts::to_string() const { static const char* options[] = {"int1", "int5", "int10", "int20"}; @@ -15399,6 +16409,15 @@ void phys_cfg_ded_stti_r15_c::set(types::options e) { type_ = e; } +void phys_cfg_ded_stti_r15_c::set_release() +{ + set(types::release); +} +phys_cfg_ded_stti_r15_c::setup_s_& phys_cfg_ded_stti_r15_c::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -15753,6 +16772,15 @@ void spucch_cfg_v1550_c::set(types::options e) { type_ = e; } +void spucch_cfg_v1550_c::set_release() +{ + set(types::release); +} +spucch_cfg_v1550_c::setup_s_& spucch_cfg_v1550_c::set_setup() +{ + set(types::setup); + return c; +} void spucch_cfg_v1550_c::to_json(json_writer& j) const { j.start_obj(); @@ -15828,6 +16856,15 @@ void srs_tpc_pdcch_cfg_r14_c::set(types::options e) { type_ = e; } +void srs_tpc_pdcch_cfg_r14_c::set_release() +{ + set(types::release); +} +srs_tpc_pdcch_cfg_r14_c::setup_s_& srs_tpc_pdcch_cfg_r14_c::set_setup() +{ + set(types::setup); + return c; +} void srs_tpc_pdcch_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -15912,6 +16949,15 @@ void sched_request_cfg_c::set(types::options e) { type_ = e; } +void sched_request_cfg_c::set_release() +{ + set(types::release); +} +sched_request_cfg_c::setup_s_& sched_request_cfg_c::set_setup() +{ + set(types::setup); + return c; +} void sched_request_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -15968,7 +17014,7 @@ SRSASN_CODE sched_request_cfg_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sched_request_cfg_c::setup_s_::dsr_trans_max_opts::to_string() const +const char* sched_request_cfg_c::setup_s_::dsr_trans_max_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sched_request_cfg_c::setup_s_::dsr_trans_max_e_"); @@ -16014,6 +17060,15 @@ void srs_ul_cfg_ded_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_c::setup_s_& srs_ul_cfg_ded_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_c::to_json(json_writer& j) const { j.start_obj(); @@ -16089,7 +17144,7 @@ bool srs_ul_cfg_ded_c::operator==(const srs_ul_cfg_ded_c& other) const c.cyclic_shift == other.c.cyclic_shift; } -std::string srs_ul_cfg_ded_c::setup_s_::srs_bw_opts::to_string() const +const char* srs_ul_cfg_ded_c::setup_s_::srs_bw_opts::to_string() const { static const char* options[] = {"bw0", "bw1", "bw2", "bw3"}; return convert_enum_idx(options, 4, value, "srs_ul_cfg_ded_c::setup_s_::srs_bw_e_"); @@ -16100,7 +17155,7 @@ uint8_t srs_ul_cfg_ded_c::setup_s_::srs_bw_opts::to_number() const return map_enum_number(options, 4, value, "srs_ul_cfg_ded_c::setup_s_::srs_bw_e_"); } -std::string srs_ul_cfg_ded_c::setup_s_::srs_hop_bw_opts::to_string() const +const char* srs_ul_cfg_ded_c::setup_s_::srs_hop_bw_opts::to_string() const { static const char* options[] = {"hbw0", "hbw1", "hbw2", "hbw3"}; return convert_enum_idx(options, 4, value, "srs_ul_cfg_ded_c::setup_s_::srs_hop_bw_e_"); @@ -16111,7 +17166,7 @@ uint8_t srs_ul_cfg_ded_c::setup_s_::srs_hop_bw_opts::to_number() const return map_enum_number(options, 4, value, "srs_ul_cfg_ded_c::setup_s_::srs_hop_bw_e_"); } -std::string srs_ul_cfg_ded_c::setup_s_::cyclic_shift_opts::to_string() const +const char* srs_ul_cfg_ded_c::setup_s_::cyclic_shift_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7"}; return convert_enum_idx(options, 8, value, "srs_ul_cfg_ded_c::setup_s_::cyclic_shift_e_"); @@ -16151,6 +17206,15 @@ void srs_ul_cfg_ded_v1310_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_v1310_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_v1310_c::setup_s_& srs_ul_cfg_ded_v1310_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_v1310_c::to_json(json_writer& j) const { j.start_obj(); @@ -16240,7 +17304,7 @@ bool srs_ul_cfg_ded_v1310_c::operator==(const srs_ul_cfg_ded_v1310_c& other) con (not c.tx_comb_num_r13_present or c.tx_comb_num_r13 == other.c.tx_comb_num_r13); } -std::string srs_ul_cfg_ded_v1310_c::setup_s_::cyclic_shift_v1310_opts::to_string() const +const char* srs_ul_cfg_ded_v1310_c::setup_s_::cyclic_shift_v1310_opts::to_string() const { static const char* options[] = {"cs8", "cs9", "cs10", "cs11"}; return convert_enum_idx(options, 4, value, "srs_ul_cfg_ded_v1310_c::setup_s_::cyclic_shift_v1310_e_"); @@ -16251,7 +17315,7 @@ uint8_t srs_ul_cfg_ded_v1310_c::setup_s_::cyclic_shift_v1310_opts::to_number() c return map_enum_number(options, 4, value, "srs_ul_cfg_ded_v1310_c::setup_s_::cyclic_shift_v1310_e_"); } -std::string srs_ul_cfg_ded_v1310_c::setup_s_::tx_comb_num_r13_opts::to_string() const +const char* srs_ul_cfg_ded_v1310_c::setup_s_::tx_comb_num_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "srs_ul_cfg_ded_v1310_c::setup_s_::tx_comb_num_r13_e_"); @@ -16267,6 +17331,15 @@ void srs_ul_cfg_ded_aperiodic_r10_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_aperiodic_r10_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_r10_c::setup_s_& srs_ul_cfg_ded_aperiodic_r10_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -16357,6 +17430,16 @@ void srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::set(types::o { type_ = e; } +void srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::setup_s_& +srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_r10_c::setup_s_::srs_activ_ap_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16425,6 +17508,15 @@ void srs_ul_cfg_ded_aperiodic_v1310_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_aperiodic_v1310_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_& srs_ul_cfg_ded_aperiodic_v1310_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_v1310_c::to_json(json_writer& j) const { j.start_obj(); @@ -16512,6 +17604,16 @@ void srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::set(type { type_ = e; } +void srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::setup_s_& +srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_v1310_c::setup_s_::srs_activ_ap_v1310_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16599,6 +17701,15 @@ void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_& srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -16689,7 +17800,7 @@ bool srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::operator==(const srs_ul_cfg_ded_ (not c.srs_activ_ap_r13_present or c.srs_activ_ap_r13 == other.c.srs_activ_ap_r13); } -std::string srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_opts::to_string() const +const char* srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_opts::to_string() const { static const char* options[] = {"sym2", "sym4"}; return convert_enum_idx( @@ -16706,6 +17817,16 @@ void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::s { type_ = e; } +void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::setup_s_& +srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c::setup_s_::srs_activ_ap_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16772,6 +17893,15 @@ void srs_ul_cfg_ded_up_pts_ext_r13_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_up_pts_ext_r13_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_& srs_ul_cfg_ded_up_pts_ext_r13_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_up_pts_ext_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -16858,7 +17988,7 @@ bool srs_ul_cfg_ded_up_pts_ext_r13_c::operator==(const srs_ul_cfg_ded_up_pts_ext c.tx_comb_num_r13 == other.c.tx_comb_num_r13; } -std::string srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_opts::to_string() const +const char* srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_opts::to_string() const { static const char* options[] = {"sym2", "sym4"}; return convert_enum_idx(options, 2, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_e_"); @@ -16869,7 +17999,7 @@ uint8_t srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_opts::to_n return map_enum_number(options, 2, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_up_pts_add_r13_e_"); } -std::string srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_bw_r13_opts::to_string() const +const char* srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_bw_r13_opts::to_string() const { static const char* options[] = {"bw0", "bw1", "bw2", "bw3"}; return convert_enum_idx(options, 4, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_bw_r13_e_"); @@ -16880,7 +18010,7 @@ uint8_t srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_bw_r13_opts::to_number() return map_enum_number(options, 4, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_bw_r13_e_"); } -std::string srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_hop_bw_r13_opts::to_string() const +const char* srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_hop_bw_r13_opts::to_string() const { static const char* options[] = {"hbw0", "hbw1", "hbw2", "hbw3"}; return convert_enum_idx(options, 4, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_hop_bw_r13_e_"); @@ -16891,7 +18021,7 @@ uint8_t srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_hop_bw_r13_opts::to_numbe return map_enum_number(options, 4, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::srs_hop_bw_r13_e_"); } -std::string srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::cyclic_shift_r13_opts::to_string() const +const char* srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::cyclic_shift_r13_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7", "cs8", "cs9", "cs10", "cs11"}; return convert_enum_idx(options, 12, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::cyclic_shift_r13_e_"); @@ -16902,7 +18032,7 @@ uint8_t srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::cyclic_shift_r13_opts::to_num return map_enum_number(options, 12, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::cyclic_shift_r13_e_"); } -std::string srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::tx_comb_num_r13_opts::to_string() const +const char* srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::tx_comb_num_r13_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "srs_ul_cfg_ded_up_pts_ext_r13_c::setup_s_::tx_comb_num_r13_e_"); @@ -16958,7 +18088,7 @@ void ul_pwr_ctrl_ded_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pwr_ctrl_ded_s::delta_mcs_enabled_opts::to_string() const +const char* ul_pwr_ctrl_ded_s::delta_mcs_enabled_opts::to_string() const { static const char* options[] = {"en0", "en1"}; return convert_enum_idx(options, 2, value, "ul_pwr_ctrl_ded_s::delta_mcs_enabled_e_"); @@ -17103,6 +18233,15 @@ void ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::set(types::options e) { type_ = e; } +void ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::set_release() +{ + set(types::release); +} +ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::setup_s_& ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::set_setup() +{ + set(types::setup); + return c; +} void ul_pwr_ctrl_ded_v1250_s::set2_pwr_ctrl_param_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18597,6 +19736,15 @@ void phys_cfg_ded_s::ant_info_c_::set(types::options e) { type_ = e; } +ant_info_ded_s& phys_cfg_ded_s::ant_info_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void phys_cfg_ded_s::ant_info_c_::set_default_value() +{ + set(types::default_value); +} void phys_cfg_ded_s::ant_info_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18649,6 +19797,15 @@ void phys_cfg_ded_s::ant_info_r10_c_::set(types::options e) { type_ = e; } +ant_info_ded_r10_s& phys_cfg_ded_s::ant_info_r10_c_::set_explicit_value_r10() +{ + set(types::explicit_value_r10); + return c; +} +void phys_cfg_ded_s::ant_info_r10_c_::set_default_value() +{ + set(types::default_value); +} void phys_cfg_ded_s::ant_info_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18701,6 +19858,15 @@ void phys_cfg_ded_s::add_spec_emission_ca_r10_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::add_spec_emission_ca_r10_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::add_spec_emission_ca_r10_c_::setup_s_& phys_cfg_ded_s::add_spec_emission_ca_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::add_spec_emission_ca_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18755,6 +19921,15 @@ void phys_cfg_ded_s::ce_mode_r13_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::ce_mode_r13_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::ce_mode_r13_c_::setup_e_& phys_cfg_ded_s::ce_mode_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::ce_mode_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18802,7 +19977,7 @@ SRSASN_CODE phys_cfg_ded_s::ce_mode_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string phys_cfg_ded_s::ce_mode_r13_c_::setup_opts::to_string() const +const char* phys_cfg_ded_s::ce_mode_r13_c_::setup_opts::to_string() const { static const char* options[] = {"ce-ModeA", "ce-ModeB"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_s::ce_mode_r13_c_::setup_e_"); @@ -18812,6 +19987,16 @@ void phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::setup_l_& +phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::type_a_srs_tpc_pdcch_group_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18867,6 +20052,15 @@ void phys_cfg_ded_s::must_cfg_r14_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::must_cfg_r14_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::must_cfg_r14_c_::setup_s_& phys_cfg_ded_s::must_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::must_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18928,7 +20122,7 @@ SRSASN_CODE phys_cfg_ded_s::must_cfg_r14_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_string() const +const char* phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_string() const { static const char* options[] = {"l1", "l3"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::k_max_r14_e_"); @@ -18939,7 +20133,7 @@ uint8_t phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_number() c return map_enum_number(options, 2, value, "phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::k_max_r14_e_"); } -std::string phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_string() const +const char* phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); @@ -18949,7 +20143,7 @@ float phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_number() static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); } -std::string phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_number_string() const +const char* phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "phys_cfg_ded_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); @@ -18959,6 +20153,15 @@ void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_& phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19076,6 +20279,16 @@ phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_& phys_cfg_ded_s::semi_stati return *this; } +cfi_cfg_r15_s& phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::set_cfi_cfg_r15() +{ + set(types::cfi_cfg_r15); + return c.get(); +} +cfi_pattern_cfg_r15_s& phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::set_cfi_pattern_cfg_r15() +{ + set(types::cfi_pattern_cfg_r15); + return c.get(); +} void phys_cfg_ded_s::semi_static_cfi_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19132,6 +20345,15 @@ void phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_& phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19275,7 +20497,7 @@ SRSASN_CODE phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::unpack(cbit_ref& bref return SRSASN_SUCCESS; } -std::string +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n4", "n6"}; @@ -19289,7 +20511,7 @@ uint8_t phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pdsc options, 2, value, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_slot_subslot_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n4", "n6"}; @@ -19310,7 +20532,7 @@ phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_slot_subslot_pd "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_slot_subslot_pdsch_repeats_r15_e_"); } -std::string phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_repeats_r15_opts::to_string() const +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"dlrvseq1", "dlrvseq2"}; return convert_enum_idx( @@ -19323,7 +20545,7 @@ uint8_t phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_rep options, 2, value, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"dlrvseq1", "dlrvseq2"}; @@ -19337,7 +20559,7 @@ uint8_t phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot_p options, 2, value, "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_sf_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n0", "n1"}; @@ -19358,7 +20580,7 @@ phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_sf_pdsch_r "phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_sf_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_slot_subslot_pdsch_repeats_r15_opts::to_string() const { diff --git a/lib/src/asn1/rrc/rr_common.cc b/lib/src/asn1/rrc/rr_common.cc index 124f9bfe1..f6a43cf55 100644 --- a/lib/src/asn1/rrc/rr_common.cc +++ b/lib/src/asn1/rrc/rr_common.cc @@ -56,13 +56,13 @@ bool phich_cfg_s::operator==(const phich_cfg_s& other) const return phich_dur == other.phich_dur and phich_res == other.phich_res; } -std::string phich_cfg_s::phich_dur_opts::to_string() const +const char* phich_cfg_s::phich_dur_opts::to_string() const { static const char* options[] = {"normal", "extended"}; return convert_enum_idx(options, 2, value, "phich_cfg_s::phich_dur_e_"); } -std::string phich_cfg_s::phich_res_opts::to_string() const +const char* phich_cfg_s::phich_res_opts::to_string() const { static const char* options[] = {"oneSixth", "half", "one", "two"}; return convert_enum_idx(options, 4, value, "phich_cfg_s::phich_res_e_"); @@ -72,7 +72,7 @@ float phich_cfg_s::phich_res_opts::to_number() const static const float options[] = {0.16666666666666666, 0.5, 1.0, 2.0}; return map_enum_number(options, 4, value, "phich_cfg_s::phich_res_e_"); } -std::string phich_cfg_s::phich_res_opts::to_number_string() const +const char* phich_cfg_s::phich_res_opts::to_number_string() const { static const char* options[] = {"1/6", "0.5", "1", "2"}; return convert_enum_idx(options, 4, value, "phich_cfg_s::phich_res_e_"); @@ -170,6 +170,16 @@ plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::operator=(const plmn_id_info_r15_s return *this; } +plmn_id_s& plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::set_plmn_id_r15() +{ + set(types::plmn_id_r15); + return c.get(); +} +uint8_t& plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::set_plmn_idx_r15() +{ + set(types::plmn_idx_r15); + return c.get(); +} void plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -221,13 +231,13 @@ SRSASN_CODE plmn_id_info_r15_s::plmn_id_minus5_gc_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string plmn_id_info_r15_s::cell_reserved_for_oper_r15_opts::to_string() const +const char* plmn_id_info_r15_s::cell_reserved_for_oper_r15_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_r15_s::cell_reserved_for_oper_r15_e_"); } -std::string plmn_id_info_r15_s::cell_reserved_for_oper_crs_r15_opts::to_string() const +const char* plmn_id_info_r15_s::cell_reserved_for_oper_crs_r15_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_r15_s::cell_reserved_for_oper_crs_r15_e_"); @@ -297,6 +307,16 @@ cell_id_minus5_gc_r15_c& cell_id_minus5_gc_r15_c::operator=(const cell_id_minus5 return *this; } +fixed_bitstring<28>& cell_id_minus5_gc_r15_c::set_cell_id_r15() +{ + set(types::cell_id_r15); + return c.get >(); +} +uint8_t& cell_id_minus5_gc_r15_c::set_cell_id_idx_r15() +{ + set(types::cell_id_idx_r15); + return c.get(); +} void cell_id_minus5_gc_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -434,7 +454,7 @@ bool tdd_cfg_s::operator==(const tdd_cfg_s& other) const return sf_assign == other.sf_assign and special_sf_patterns == other.special_sf_patterns; } -std::string tdd_cfg_s::sf_assign_opts::to_string() const +const char* tdd_cfg_s::sf_assign_opts::to_string() const { static const char* options[] = {"sa0", "sa1", "sa2", "sa3", "sa4", "sa5", "sa6"}; return convert_enum_idx(options, 7, value, "tdd_cfg_s::sf_assign_e_"); @@ -445,7 +465,7 @@ uint8_t tdd_cfg_s::sf_assign_opts::to_number() const return map_enum_number(options, 7, value, "tdd_cfg_s::sf_assign_e_"); } -std::string tdd_cfg_s::special_sf_patterns_opts::to_string() const +const char* tdd_cfg_s::special_sf_patterns_opts::to_string() const { static const char* options[] = {"ssp0", "ssp1", "ssp2", "ssp3", "ssp4", "ssp5", "ssp6", "ssp7", "ssp8"}; return convert_enum_idx(options, 9, value, "tdd_cfg_s::special_sf_patterns_e_"); @@ -496,7 +516,7 @@ bool tdd_cfg_v1130_s::operator==(const tdd_cfg_v1130_s& other) const return special_sf_patterns_v1130 == other.special_sf_patterns_v1130; } -std::string tdd_cfg_v1130_s::special_sf_patterns_v1130_opts::to_string() const +const char* tdd_cfg_v1130_s::special_sf_patterns_v1130_opts::to_string() const { static const char* options[] = {"ssp7", "ssp9"}; return convert_enum_idx(options, 2, value, "tdd_cfg_v1130_s::special_sf_patterns_v1130_e_"); @@ -570,7 +590,7 @@ void prach_params_ce_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string prach_params_ce_r13_s::prach_start_sf_r13_opts::to_string() const +const char* prach_params_ce_r13_s::prach_start_sf_r13_opts::to_string() const { static const char* options[] = {"sf2", "sf4", "sf8", "sf16", "sf32", "sf64", "sf128", "sf256"}; return convert_enum_idx(options, 8, value, "prach_params_ce_r13_s::prach_start_sf_r13_e_"); @@ -581,7 +601,7 @@ uint16_t prach_params_ce_r13_s::prach_start_sf_r13_opts::to_number() const return map_enum_number(options, 8, value, "prach_params_ce_r13_s::prach_start_sf_r13_e_"); } -std::string prach_params_ce_r13_s::max_num_preamb_attempt_ce_r13_opts::to_string() const +const char* prach_params_ce_r13_s::max_num_preamb_attempt_ce_r13_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10"}; return convert_enum_idx(options, 7, value, "prach_params_ce_r13_s::max_num_preamb_attempt_ce_r13_e_"); @@ -592,7 +612,7 @@ uint8_t prach_params_ce_r13_s::max_num_preamb_attempt_ce_r13_opts::to_number() c return map_enum_number(options, 7, value, "prach_params_ce_r13_s::max_num_preamb_attempt_ce_r13_e_"); } -std::string prach_params_ce_r13_s::num_repeat_per_preamb_attempt_r13_opts::to_string() const +const char* prach_params_ce_r13_s::num_repeat_per_preamb_attempt_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128"}; return convert_enum_idx(options, 8, value, "prach_params_ce_r13_s::num_repeat_per_preamb_attempt_r13_e_"); @@ -603,7 +623,7 @@ uint8_t prach_params_ce_r13_s::num_repeat_per_preamb_attempt_r13_opts::to_number return map_enum_number(options, 8, value, "prach_params_ce_r13_s::num_repeat_per_preamb_attempt_r13_e_"); } -std::string prach_params_ce_r13_s::mpdcch_num_repeat_ra_r13_opts::to_string() const +const char* prach_params_ce_r13_s::mpdcch_num_repeat_ra_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; return convert_enum_idx(options, 9, value, "prach_params_ce_r13_s::mpdcch_num_repeat_ra_r13_e_"); @@ -614,7 +634,7 @@ uint16_t prach_params_ce_r13_s::mpdcch_num_repeat_ra_r13_opts::to_number() const return map_enum_number(options, 9, value, "prach_params_ce_r13_s::mpdcch_num_repeat_ra_r13_e_"); } -std::string prach_params_ce_r13_s::prach_hop_cfg_r13_opts::to_string() const +const char* prach_params_ce_r13_s::prach_hop_cfg_r13_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx(options, 2, value, "prach_params_ce_r13_s::prach_hop_cfg_r13_e_"); @@ -712,7 +732,7 @@ void rach_ce_level_info_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_ce_level_info_r13_s::ra_resp_win_size_r13_opts::to_string() const +const char* rach_ce_level_info_r13_s::ra_resp_win_size_r13_opts::to_string() const { static const char* options[] = {"sf20", "sf50", "sf80", "sf120", "sf180", "sf240", "sf320", "sf400"}; return convert_enum_idx(options, 8, value, "rach_ce_level_info_r13_s::ra_resp_win_size_r13_e_"); @@ -723,7 +743,7 @@ uint16_t rach_ce_level_info_r13_s::ra_resp_win_size_r13_opts::to_number() const return map_enum_number(options, 8, value, "rach_ce_level_info_r13_s::ra_resp_win_size_r13_e_"); } -std::string rach_ce_level_info_r13_s::mac_contention_resolution_timer_r13_opts::to_string() const +const char* rach_ce_level_info_r13_s::mac_contention_resolution_timer_r13_opts::to_string() const { static const char* options[] = {"sf80", "sf100", "sf120", "sf160", "sf200", "sf240", "sf480", "sf960"}; return convert_enum_idx(options, 8, value, "rach_ce_level_info_r13_s::mac_contention_resolution_timer_r13_e_"); @@ -734,13 +754,13 @@ uint16_t rach_ce_level_info_r13_s::mac_contention_resolution_timer_r13_opts::to_ return map_enum_number(options, 8, value, "rach_ce_level_info_r13_s::mac_contention_resolution_timer_r13_e_"); } -std::string rach_ce_level_info_r13_s::rar_hop_cfg_r13_opts::to_string() const +const char* rach_ce_level_info_r13_s::rar_hop_cfg_r13_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx(options, 2, value, "rach_ce_level_info_r13_s::rar_hop_cfg_r13_e_"); } -std::string rach_ce_level_info_r13_s::edt_params_r15_s_::edt_tbs_r15_opts::to_string() const +const char* rach_ce_level_info_r13_s::edt_params_r15_s_::edt_tbs_r15_opts::to_string() const { static const char* options[] = {"b328", "b408", "b504", "b600", "b712", "b808", "b936", "b1000or456"}; return convert_enum_idx(options, 8, value, "rach_ce_level_info_r13_s::edt_params_r15_s_::edt_tbs_r15_e_"); @@ -751,7 +771,7 @@ uint16_t rach_ce_level_info_r13_s::edt_params_r15_s_::edt_tbs_r15_opts::to_numbe return map_enum_number(options, 8, value, "rach_ce_level_info_r13_s::edt_params_r15_s_::edt_tbs_r15_e_"); } -std::string rach_ce_level_info_r13_s::edt_params_r15_s_::mac_contention_resolution_timer_r15_opts::to_string() const +const char* rach_ce_level_info_r13_s::edt_params_r15_s_::mac_contention_resolution_timer_r15_opts::to_string() const { static const char* options[] = {"sf240", "sf480", "sf960", "sf1920", "sf3840", "sf5760", "sf7680", "sf10240"}; return convert_enum_idx( @@ -804,7 +824,7 @@ bool delta_flist_pucch_s::operator==(const delta_flist_pucch_s& other) const delta_f_pucch_format2b == other.delta_f_pucch_format2b; } -std::string delta_flist_pucch_s::delta_f_pucch_format1_opts::to_string() const +const char* delta_flist_pucch_s::delta_f_pucch_format1_opts::to_string() const { static const char* options[] = {"deltaF-2", "deltaF0", "deltaF2"}; return convert_enum_idx(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format1_e_"); @@ -815,7 +835,7 @@ int8_t delta_flist_pucch_s::delta_f_pucch_format1_opts::to_number() const return map_enum_number(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format1_e_"); } -std::string delta_flist_pucch_s::delta_f_pucch_format1b_opts::to_string() const +const char* delta_flist_pucch_s::delta_f_pucch_format1b_opts::to_string() const { static const char* options[] = {"deltaF1", "deltaF3", "deltaF5"}; return convert_enum_idx(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format1b_e_"); @@ -826,7 +846,7 @@ uint8_t delta_flist_pucch_s::delta_f_pucch_format1b_opts::to_number() const return map_enum_number(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format1b_e_"); } -std::string delta_flist_pucch_s::delta_f_pucch_format2_opts::to_string() const +const char* delta_flist_pucch_s::delta_f_pucch_format2_opts::to_string() const { static const char* options[] = {"deltaF-2", "deltaF0", "deltaF1", "deltaF2"}; return convert_enum_idx(options, 4, value, "delta_flist_pucch_s::delta_f_pucch_format2_e_"); @@ -837,7 +857,7 @@ int8_t delta_flist_pucch_s::delta_f_pucch_format2_opts::to_number() const return map_enum_number(options, 4, value, "delta_flist_pucch_s::delta_f_pucch_format2_e_"); } -std::string delta_flist_pucch_s::delta_f_pucch_format2a_opts::to_string() const +const char* delta_flist_pucch_s::delta_f_pucch_format2a_opts::to_string() const { static const char* options[] = {"deltaF-2", "deltaF0", "deltaF2"}; return convert_enum_idx(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format2a_e_"); @@ -848,7 +868,7 @@ int8_t delta_flist_pucch_s::delta_f_pucch_format2a_opts::to_number() const return map_enum_number(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format2a_e_"); } -std::string delta_flist_pucch_s::delta_f_pucch_format2b_opts::to_string() const +const char* delta_flist_pucch_s::delta_f_pucch_format2b_opts::to_string() const { static const char* options[] = {"deltaF-2", "deltaF0", "deltaF2"}; return convert_enum_idx(options, 3, value, "delta_flist_pucch_s::delta_f_pucch_format2b_e_"); @@ -864,6 +884,15 @@ void delta_flist_spucch_r15_c::set(types::options e) { type_ = e; } +void delta_flist_spucch_r15_c::set_release() +{ + set(types::release); +} +delta_flist_spucch_r15_c::setup_s_& delta_flist_spucch_r15_c::set_setup() +{ + set(types::setup); + return c; +} void delta_flist_spucch_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -1059,7 +1088,7 @@ bool delta_flist_spucch_r15_c::operator==(const delta_flist_spucch_r15_c& other) c.delta_f_subslot_spucch_tbcc_format4_r15 == other.c.delta_f_subslot_spucch_tbcc_format4_r15); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1_r15_opts::to_string() const { static const char* options[] = { "deltaF-1", "deltaF0", "deltaF1", "deltaF2", "deltaF3", "deltaF4", "deltaF5", "deltaF6"}; @@ -1071,7 +1100,7 @@ int8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1_r15_opts: return map_enum_number(options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1a_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1a_r15_opts::to_string() const { static const char* options[] = { "deltaF1", "deltaF2", "deltaF3", "deltaF4", "deltaF5", "deltaF6", "deltaF7", "deltaF8"}; @@ -1083,7 +1112,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1a_r15_opt return map_enum_number(options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1a_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1b_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1b_r15_opts::to_string() const { static const char* options[] = { "deltaF3", "deltaF4", "deltaF5", "deltaF6", "deltaF7", "deltaF8", "deltaF9", "deltaF10"}; @@ -1095,7 +1124,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1b_r15_opt return map_enum_number(options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format1b_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format3_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format3_r15_opts::to_string() const { static const char* options[] = { "deltaF4", "deltaF5", "deltaF6", "deltaF7", "deltaF8", "deltaF9", "deltaF10", "deltaF11"}; @@ -1107,7 +1136,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format3_r15_opts return map_enum_number(options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_format3_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_rm_format4_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_rm_format4_r15_opts::to_string() const { static const char* options[] = { "deltaF13", "deltaF14", "deltaF15", "deltaF16", "deltaF17", "deltaF18", "deltaF19", "deltaF20"}; @@ -1121,7 +1150,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_rm_format4_r15_o options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_rm_format4_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_tbcc_format4_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_tbcc_format4_r15_opts::to_string() const { static const char* options[] = { "deltaF10", "deltaF11", "deltaF12", "deltaF13", "deltaF14", "deltaF15", "deltaF16", "deltaF17"}; @@ -1135,7 +1164,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_tbcc_format4_r15 options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_slot_spucch_tbcc_format4_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1and1a_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1and1a_r15_opts::to_string() const { static const char* options[] = { "deltaF5", "deltaF6", "deltaF7", "deltaF8", "deltaF9", "deltaF10", "deltaF11", "deltaF12"}; @@ -1149,7 +1178,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1and1a_ options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1and1a_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1b_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1b_r15_opts::to_string() const { static const char* options[] = { "deltaF6", "deltaF7", "deltaF8", "deltaF9", "deltaF10", "deltaF11", "deltaF12", "deltaF13"}; @@ -1163,7 +1192,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1b_r15_ options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_format1b_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_rm_format4_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_rm_format4_r15_opts::to_string() const { static const char* options[] = { "deltaF15", "deltaF16", "deltaF17", "deltaF18", "deltaF19", "deltaF20", "deltaF21", "deltaF22"}; @@ -1177,7 +1206,7 @@ uint8_t delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_rm_format4_r1 options, 8, value, "delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_rm_format4_r15_e_"); } -std::string delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_tbcc_format4_r15_opts::to_string() const +const char* delta_flist_spucch_r15_c::setup_s_::delta_f_subslot_spucch_tbcc_format4_r15_opts::to_string() const { static const char* options[] = { "deltaF10", "deltaF11", "deltaF12", "deltaF13", "deltaF14", "deltaF15", "deltaF16", "deltaF17"}; @@ -1247,7 +1276,7 @@ void edt_prach_params_ce_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string edt_prach_params_ce_r15_s::edt_prach_params_ce_r15_s_::prach_start_sf_r15_opts::to_string() const +const char* edt_prach_params_ce_r15_s::edt_prach_params_ce_r15_s_::prach_start_sf_r15_opts::to_string() const { static const char* options[] = {"sf2", "sf4", "sf8", "sf16", "sf32", "sf64", "sf128", "sf256"}; return convert_enum_idx( @@ -1321,7 +1350,7 @@ bool pwr_ramp_params_s::operator==(const pwr_ramp_params_s& other) const return pwr_ramp_step == other.pwr_ramp_step and preamb_init_rx_target_pwr == other.preamb_init_rx_target_pwr; } -std::string pwr_ramp_params_s::pwr_ramp_step_opts::to_string() const +const char* pwr_ramp_params_s::pwr_ramp_step_opts::to_string() const { static const char* options[] = {"dB0", "dB2", "dB4", "dB6"}; return convert_enum_idx(options, 4, value, "pwr_ramp_params_s::pwr_ramp_step_e_"); @@ -1332,7 +1361,7 @@ uint8_t pwr_ramp_params_s::pwr_ramp_step_opts::to_number() const return map_enum_number(options, 4, value, "pwr_ramp_params_s::pwr_ramp_step_e_"); } -std::string pwr_ramp_params_s::preamb_init_rx_target_pwr_opts::to_string() const +const char* pwr_ramp_params_s::preamb_init_rx_target_pwr_opts::to_string() const { static const char* options[] = {"dBm-120", "dBm-118", @@ -1360,7 +1389,7 @@ int8_t pwr_ramp_params_s::preamb_init_rx_target_pwr_opts::to_number() const } // PreambleTransMax ::= ENUMERATED -std::string preamb_trans_max_opts::to_string() const +const char* preamb_trans_max_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "n20", "n50", "n100", "n200"}; return convert_enum_idx(options, 11, value, "preamb_trans_max_e"); @@ -1425,7 +1454,7 @@ void bcch_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string bcch_cfg_s::mod_period_coeff_opts::to_string() const +const char* bcch_cfg_s::mod_period_coeff_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8", "n16"}; return convert_enum_idx(options, 4, value, "bcch_cfg_s::mod_period_coeff_e_"); @@ -1541,7 +1570,7 @@ void freq_hop_params_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string freq_hop_params_r13_s::dummy_opts::to_string() const +const char* freq_hop_params_r13_s::dummy_opts::to_string() const { static const char* options[] = {"nb2", "nb4"}; return convert_enum_idx(options, 2, value, "freq_hop_params_r13_s::dummy_e_"); @@ -1596,6 +1625,16 @@ freq_hop_params_r13_s::dummy2_c_::operator=(const freq_hop_params_r13_s::dummy2_ return *this; } +freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_e_& freq_hop_params_r13_s::dummy2_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +freq_hop_params_r13_s::dummy2_c_::interv_tdd_r13_e_& freq_hop_params_r13_s::dummy2_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void freq_hop_params_r13_s::dummy2_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1646,7 +1685,7 @@ SRSASN_CODE freq_hop_params_r13_s::dummy2_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int2", "int4", "int8"}; return convert_enum_idx(options, 4, value, "freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_e_"); @@ -1657,7 +1696,7 @@ uint8_t freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_opts::to_number() const return map_enum_number(options, 4, value, "freq_hop_params_r13_s::dummy2_c_::interv_fdd_r13_e_"); } -std::string freq_hop_params_r13_s::dummy2_c_::interv_tdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::dummy2_c_::interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int5", "int10", "int20"}; return convert_enum_idx(options, 4, value, "freq_hop_params_r13_s::dummy2_c_::interv_tdd_r13_e_"); @@ -1712,6 +1751,16 @@ freq_hop_params_r13_s::dummy3_c_::operator=(const freq_hop_params_r13_s::dummy3_ return *this; } +freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_e_& freq_hop_params_r13_s::dummy3_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +freq_hop_params_r13_s::dummy3_c_::interv_tdd_r13_e_& freq_hop_params_r13_s::dummy3_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void freq_hop_params_r13_s::dummy3_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1762,7 +1811,7 @@ SRSASN_CODE freq_hop_params_r13_s::dummy3_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int2", "int4", "int8", "int16"}; return convert_enum_idx(options, 4, value, "freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_e_"); @@ -1773,7 +1822,7 @@ uint8_t freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_opts::to_number() const return map_enum_number(options, 4, value, "freq_hop_params_r13_s::dummy3_c_::interv_fdd_r13_e_"); } -std::string freq_hop_params_r13_s::dummy3_c_::interv_tdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::dummy3_c_::interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int5", "int10", "int20", "int40"}; return convert_enum_idx(options, 4, value, "freq_hop_params_r13_s::dummy3_c_::interv_tdd_r13_e_"); @@ -1830,6 +1879,18 @@ freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::operator=( return *this; } +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_e_& +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_tdd_r13_e_& +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1880,7 +1941,7 @@ SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::unpac return SRSASN_SUCCESS; } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int2", "int4", "int8"}; return convert_enum_idx( @@ -1893,7 +1954,7 @@ uint8_t freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_fd options, 4, value, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_e_"); } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_tdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_a_r13_c_::interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int5", "int10", "int20"}; return convert_enum_idx( @@ -1952,6 +2013,18 @@ freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::operator=( return *this; } +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_e_& +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_tdd_r13_e_& +freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2002,7 +2075,7 @@ SRSASN_CODE freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::unpac return SRSASN_SUCCESS; } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int2", "int4", "int8", "int16"}; return convert_enum_idx( @@ -2015,7 +2088,7 @@ uint8_t freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_fd options, 4, value, "freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_e_"); } -std::string freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_tdd_r13_opts::to_string() const +const char* freq_hop_params_r13_s::interv_ul_hop_cfg_common_mode_b_r13_c_::interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int5", "int10", "int20", "int40"}; return convert_enum_idx( @@ -2094,7 +2167,7 @@ void pcch_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pcch_cfg_s::default_paging_cycle_opts::to_string() const +const char* pcch_cfg_s::default_paging_cycle_opts::to_string() const { static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 4, value, "pcch_cfg_s::default_paging_cycle_e_"); @@ -2105,7 +2178,7 @@ uint16_t pcch_cfg_s::default_paging_cycle_opts::to_number() const return map_enum_number(options, 4, value, "pcch_cfg_s::default_paging_cycle_e_"); } -std::string pcch_cfg_s::nb_opts::to_string() const +const char* pcch_cfg_s::nb_opts::to_string() const { static const char* options[] = { "fourT", "twoT", "oneT", "halfT", "quarterT", "oneEighthT", "oneSixteenthT", "oneThirtySecondT"}; @@ -2116,7 +2189,7 @@ float pcch_cfg_s::nb_opts::to_number() const static const float options[] = {4.0, 2.0, 1.0, 0.5, 0.25, 0.125, 0.0625, 0.03125}; return map_enum_number(options, 8, value, "pcch_cfg_s::nb_e_"); } -std::string pcch_cfg_s::nb_opts::to_number_string() const +const char* pcch_cfg_s::nb_opts::to_number_string() const { static const char* options[] = {"4", "2", "1", "0.5", "0.25", "1/8", "1/16", "1/32"}; return convert_enum_idx(options, 8, value, "pcch_cfg_s::nb_e_"); @@ -2158,7 +2231,7 @@ void pcch_cfg_v1310_s::to_json(json_writer& j) const j.end_obj(); } -std::string pcch_cfg_v1310_s::mpdcch_num_repeat_paging_r13_opts::to_string() const +const char* pcch_cfg_v1310_s::mpdcch_num_repeat_paging_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; return convert_enum_idx(options, 9, value, "pcch_cfg_v1310_s::mpdcch_num_repeat_paging_r13_e_"); @@ -2169,7 +2242,7 @@ uint16_t pcch_cfg_v1310_s::mpdcch_num_repeat_paging_r13_opts::to_number() const return map_enum_number(options, 9, value, "pcch_cfg_v1310_s::mpdcch_num_repeat_paging_r13_e_"); } -std::string pcch_cfg_v1310_s::nb_v1310_opts::to_string() const +const char* pcch_cfg_v1310_s::nb_v1310_opts::to_string() const { static const char* options[] = {"one64thT", "one128thT", "one256thT"}; return convert_enum_idx(options, 3, value, "pcch_cfg_v1310_s::nb_v1310_e_"); @@ -2248,7 +2321,7 @@ void pdsch_cfg_common_v1310_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_a_r13_opts::to_string() const +const char* pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_a_r13_opts::to_string() const { static const char* options[] = {"r16", "r32"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_a_r13_e_"); @@ -2259,7 +2332,7 @@ uint8_t pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_a_r13_opts::to_num return map_enum_number(options, 2, value, "pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_a_r13_e_"); } -std::string pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_b_r13_opts::to_string() const +const char* pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_b_r13_opts::to_string() const { static const char* options[] = {"r192", "r256", "r384", "r512", "r768", "r1024", "r1536", "r2048"}; return convert_enum_idx(options, 8, value, "pdsch_cfg_common_v1310_s::pdsch_max_num_repeat_cemode_b_r13_e_"); @@ -2431,6 +2504,18 @@ prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_& prach_cfg_sib_v1310_s::mpd return *this; } +prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_& +prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set_fdd_r13() +{ + set(types::fdd_r13); + return c.get(); +} +prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_e_& +prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set_tdd_r13() +{ + set(types::tdd_r13); + return c.get(); +} void prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2481,7 +2566,7 @@ SRSASN_CODE prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::unpack(cbit_re return SRSASN_SUCCESS; } -std::string prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_string() const +const char* prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; return convert_enum_idx(options, 8, value, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); @@ -2491,13 +2576,13 @@ float prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_num static const float options[] = {1.0, 1.5, 2.0, 2.5, 4.0, 5.0, 8.0, 10.0}; return map_enum_number(options, 8, value, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); } -std::string prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_number_string() const +const char* prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; return convert_enum_idx(options, 8, value, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); } -std::string prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_opts::to_string() const +const char* prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20", "spare"}; return convert_enum_idx(options, 8, value, "prach_cfg_sib_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_e_"); @@ -2566,7 +2651,7 @@ bool pucch_cfg_common_s::operator==(const pucch_cfg_common_s& other) const n1_pucch_an == other.n1_pucch_an; } -std::string pucch_cfg_common_s::delta_pucch_shift_opts::to_string() const +const char* pucch_cfg_common_s::delta_pucch_shift_opts::to_string() const { static const char* options[] = {"ds1", "ds2", "ds3"}; return convert_enum_idx(options, 3, value, "pucch_cfg_common_s::delta_pucch_shift_e_"); @@ -2655,7 +2740,7 @@ void pucch_cfg_common_v1310_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level0_r13_opts::to_string() const +const char* pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level0_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level0_r13_e_"); @@ -2666,7 +2751,7 @@ uint8_t pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level0_r13_opts::to_n return map_enum_number(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level0_r13_e_"); } -std::string pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level1_r13_opts::to_string() const +const char* pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level1_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level1_r13_e_"); @@ -2677,7 +2762,7 @@ uint8_t pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level1_r13_opts::to_n return map_enum_number(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level1_r13_e_"); } -std::string pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level2_r13_opts::to_string() const +const char* pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level2_r13_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level2_r13_e_"); @@ -2688,7 +2773,7 @@ uint8_t pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level2_r13_opts::to_n return map_enum_number(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level2_r13_e_"); } -std::string pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level3_r13_opts::to_string() const +const char* pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level3_r13_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 4, value, "pucch_cfg_common_v1310_s::pucch_num_repeat_ce_msg4_level3_r13_e_"); @@ -2729,7 +2814,7 @@ void pucch_cfg_common_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_cfg_common_v1430_s::pucch_num_repeat_ce_msg4_level3_r14_opts::to_string() const +const char* pucch_cfg_common_v1430_s::pucch_num_repeat_ce_msg4_level3_r14_opts::to_string() const { static const char* options[] = {"n64", "n128"}; return convert_enum_idx(options, 2, value, "pucch_cfg_common_v1430_s::pucch_num_repeat_ce_msg4_level3_r14_e_"); @@ -2784,7 +2869,7 @@ bool pusch_cfg_common_s::operator==(const pusch_cfg_common_s& other) const ul_ref_sigs_pusch == other.ul_ref_sigs_pusch; } -std::string pusch_cfg_common_s::pusch_cfg_basic_s_::hop_mode_opts::to_string() const +const char* pusch_cfg_common_s::pusch_cfg_basic_s_::hop_mode_opts::to_string() const { static const char* options[] = {"interSubFrame", "intraAndInterSubFrame"}; return convert_enum_idx(options, 2, value, "pusch_cfg_common_s::pusch_cfg_basic_s_::hop_mode_e_"); @@ -2862,7 +2947,7 @@ void pusch_cfg_common_v1310_s::to_json(json_writer& j) const j.end_obj(); } -std::string pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_a_r13_opts::to_string() const +const char* pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_a_r13_opts::to_string() const { static const char* options[] = {"r8", "r16", "r32"}; return convert_enum_idx(options, 3, value, "pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_a_r13_e_"); @@ -2873,7 +2958,7 @@ uint8_t pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_a_r13_opts::to_num return map_enum_number(options, 3, value, "pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_a_r13_e_"); } -std::string pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_b_r13_opts::to_string() const +const char* pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_b_r13_opts::to_string() const { static const char* options[] = {"r192", "r256", "r384", "r512", "r768", "r1024", "r1536", "r2048"}; return convert_enum_idx(options, 8, value, "pusch_cfg_common_v1310_s::pusch_max_num_repeat_cemode_b_r13_e_"); @@ -3014,7 +3099,7 @@ void rach_cfg_common_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_cfg_common_s::preamb_info_s_::nof_ra_preambs_opts::to_string() const +const char* rach_cfg_common_s::preamb_info_s_::nof_ra_preambs_opts::to_string() const { static const char* options[] = { "n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32", "n36", "n40", "n44", "n48", "n52", "n56", "n60", "n64"}; @@ -3026,7 +3111,7 @@ uint8_t rach_cfg_common_s::preamb_info_s_::nof_ra_preambs_opts::to_number() cons return map_enum_number(options, 16, value, "rach_cfg_common_s::preamb_info_s_::nof_ra_preambs_e_"); } -std::string +const char* rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::size_of_ra_preambs_group_a_opts::to_string() const { static const char* options[] = { @@ -3041,7 +3126,7 @@ uint8_t rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::size_of_ra_pr options, 15, value, "rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::size_of_ra_preambs_group_a_e_"); } -std::string rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_size_group_a_opts::to_string() const +const char* rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_size_group_a_opts::to_string() const { static const char* options[] = {"b56", "b144", "b208", "b256"}; return convert_enum_idx( @@ -3054,7 +3139,7 @@ uint16_t rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_size_gro options, 4, value, "rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_size_group_a_e_"); } -std::string rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_pwr_offset_group_b_opts::to_string() const +const char* rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_pwr_offset_group_b_opts::to_string() const { static const char* options[] = {"minusinfinity", "dB0", "dB5", "dB8", "dB10", "dB12", "dB15", "dB18"}; return convert_enum_idx( @@ -3067,7 +3152,7 @@ int8_t rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_pwr_offset options, 8, value, "rach_cfg_common_s::preamb_info_s_::preambs_group_a_cfg_s_::msg_pwr_offset_group_b_e_"); } -std::string rach_cfg_common_s::ra_supervision_info_s_::ra_resp_win_size_opts::to_string() const +const char* rach_cfg_common_s::ra_supervision_info_s_::ra_resp_win_size_opts::to_string() const { static const char* options[] = {"sf2", "sf3", "sf4", "sf5", "sf6", "sf7", "sf8", "sf10"}; return convert_enum_idx(options, 8, value, "rach_cfg_common_s::ra_supervision_info_s_::ra_resp_win_size_e_"); @@ -3078,7 +3163,7 @@ uint8_t rach_cfg_common_s::ra_supervision_info_s_::ra_resp_win_size_opts::to_num return map_enum_number(options, 8, value, "rach_cfg_common_s::ra_supervision_info_s_::ra_resp_win_size_e_"); } -std::string rach_cfg_common_s::ra_supervision_info_s_::mac_contention_resolution_timer_opts::to_string() const +const char* rach_cfg_common_s::ra_supervision_info_s_::mac_contention_resolution_timer_opts::to_string() const { static const char* options[] = {"sf8", "sf16", "sf24", "sf32", "sf40", "sf48", "sf56", "sf64"}; return convert_enum_idx( @@ -3128,7 +3213,7 @@ void rach_cfg_common_v1250_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_count_r12_opts::to_string() const +const char* rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_count_r12_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4"}; return convert_enum_idx( @@ -3141,7 +3226,7 @@ uint8_t rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_count_r12_ options, 4, value, "rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_count_r12_e_"); } -std::string rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_offset_validity_r12_opts::to_string() const +const char* rach_cfg_common_v1250_s::tx_fail_params_r12_s_::conn_est_fail_offset_validity_r12_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s240", "s300", "s420", "s600", "s900"}; return convert_enum_idx( @@ -3186,7 +3271,7 @@ void rss_cfg_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string rss_cfg_r15_s::dur_r15_opts::to_string() const +const char* rss_cfg_r15_s::dur_r15_opts::to_string() const { static const char* options[] = {"sf8", "sf16", "sf32", "sf40"}; return convert_enum_idx(options, 4, value, "rss_cfg_r15_s::dur_r15_e_"); @@ -3197,7 +3282,7 @@ uint8_t rss_cfg_r15_s::dur_r15_opts::to_number() const return map_enum_number(options, 4, value, "rss_cfg_r15_s::dur_r15_e_"); } -std::string rss_cfg_r15_s::periodicity_r15_opts::to_string() const +const char* rss_cfg_r15_s::periodicity_r15_opts::to_string() const { static const char* options[] = {"ms160", "ms320", "ms640", "ms1280"}; return convert_enum_idx(options, 4, value, "rss_cfg_r15_s::periodicity_r15_e_"); @@ -3208,7 +3293,7 @@ uint16_t rss_cfg_r15_s::periodicity_r15_opts::to_number() const return map_enum_number(options, 4, value, "rss_cfg_r15_s::periodicity_r15_e_"); } -std::string rss_cfg_r15_s::pwr_boost_r15_opts::to_string() const +const char* rss_cfg_r15_s::pwr_boost_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB3", "dB4dot8", "dB6"}; return convert_enum_idx(options, 4, value, "rss_cfg_r15_s::pwr_boost_r15_e_"); @@ -3218,7 +3303,7 @@ float rss_cfg_r15_s::pwr_boost_r15_opts::to_number() const static const float options[] = {0.0, 3.0, 4.8, 6.0}; return map_enum_number(options, 4, value, "rss_cfg_r15_s::pwr_boost_r15_e_"); } -std::string rss_cfg_r15_s::pwr_boost_r15_opts::to_number_string() const +const char* rss_cfg_r15_s::pwr_boost_r15_opts::to_number_string() const { static const char* options[] = {"0", "3", "4.8", "6"}; return convert_enum_idx(options, 4, value, "rss_cfg_r15_s::pwr_boost_r15_e_"); @@ -3229,6 +3314,15 @@ void srs_ul_cfg_common_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_common_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_common_c::setup_s_& srs_ul_cfg_common_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_common_c::to_json(json_writer& j) const { j.start_obj(); @@ -3296,7 +3390,7 @@ bool srs_ul_cfg_common_c::operator==(const srs_ul_cfg_common_c& other) const c.srs_max_up_pts_present == other.c.srs_max_up_pts_present; } -std::string srs_ul_cfg_common_c::setup_s_::srs_bw_cfg_opts::to_string() const +const char* srs_ul_cfg_common_c::setup_s_::srs_bw_cfg_opts::to_string() const { static const char* options[] = {"bw0", "bw1", "bw2", "bw3", "bw4", "bw5", "bw6", "bw7"}; return convert_enum_idx(options, 8, value, "srs_ul_cfg_common_c::setup_s_::srs_bw_cfg_e_"); @@ -3307,7 +3401,7 @@ uint8_t srs_ul_cfg_common_c::setup_s_::srs_bw_cfg_opts::to_number() const return map_enum_number(options, 8, value, "srs_ul_cfg_common_c::setup_s_::srs_bw_cfg_e_"); } -std::string srs_ul_cfg_common_c::setup_s_::srs_sf_cfg_opts::to_string() const +const char* srs_ul_cfg_common_c::setup_s_::srs_sf_cfg_opts::to_string() const { static const char* options[] = {"sc0", "sc1", @@ -3334,7 +3428,7 @@ uint8_t srs_ul_cfg_common_c::setup_s_::srs_sf_cfg_opts::to_number() const } // UL-CyclicPrefixLength ::= ENUMERATED -std::string ul_cp_len_opts::to_string() const +const char* ul_cp_len_opts::to_string() const { static const char* options[] = {"len1", "len2"}; return convert_enum_idx(options, 2, value, "ul_cp_len_e"); @@ -3401,7 +3495,7 @@ void ul_pwr_ctrl_common_v1020_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format3_r10_opts::to_string() const +const char* ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format3_r10_opts::to_string() const { static const char* options[] = { "deltaF-1", "deltaF0", "deltaF1", "deltaF2", "deltaF3", "deltaF4", "deltaF5", "deltaF6"}; @@ -3413,7 +3507,7 @@ int8_t ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format3_r10_opts::to_number() c return map_enum_number(options, 8, value, "ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format3_r10_e_"); } -std::string ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format1b_cs_r10_opts::to_string() const +const char* ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format1b_cs_r10_opts::to_string() const { static const char* options[] = {"deltaF1", "deltaF2", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_pwr_ctrl_common_v1020_s::delta_f_pucch_format1b_cs_r10_e_"); @@ -3502,7 +3596,7 @@ void wus_cfg_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string wus_cfg_r15_s::max_dur_factor_r15_opts::to_string() const +const char* wus_cfg_r15_s::max_dur_factor_r15_opts::to_string() const { static const char* options[] = {"one32th", "one16th", "one8th", "one4th"}; return convert_enum_idx(options, 4, value, "wus_cfg_r15_s::max_dur_factor_r15_e_"); @@ -3513,7 +3607,7 @@ uint8_t wus_cfg_r15_s::max_dur_factor_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_r15_s::max_dur_factor_r15_e_"); } -std::string wus_cfg_r15_s::num_pos_r15_opts::to_string() const +const char* wus_cfg_r15_s::num_pos_r15_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "spare1"}; return convert_enum_idx(options, 4, value, "wus_cfg_r15_s::num_pos_r15_e_"); @@ -3524,7 +3618,7 @@ uint8_t wus_cfg_r15_s::num_pos_r15_opts::to_number() const return map_enum_number(options, 3, value, "wus_cfg_r15_s::num_pos_r15_e_"); } -std::string wus_cfg_r15_s::freq_location_r15_opts::to_string() const +const char* wus_cfg_r15_s::freq_location_r15_opts::to_string() const { static const char* options[] = {"n0", "n2", "n4", "spare1"}; return convert_enum_idx(options, 4, value, "wus_cfg_r15_s::freq_location_r15_e_"); @@ -3535,7 +3629,7 @@ uint8_t wus_cfg_r15_s::freq_location_r15_opts::to_number() const return map_enum_number(options, 3, value, "wus_cfg_r15_s::freq_location_r15_e_"); } -std::string wus_cfg_r15_s::time_offset_drx_r15_opts::to_string() const +const char* wus_cfg_r15_s::time_offset_drx_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240"}; return convert_enum_idx(options, 4, value, "wus_cfg_r15_s::time_offset_drx_r15_e_"); @@ -3546,7 +3640,7 @@ uint8_t wus_cfg_r15_s::time_offset_drx_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_r15_s::time_offset_drx_r15_e_"); } -std::string wus_cfg_r15_s::time_offset_e_drx_short_r15_opts::to_string() const +const char* wus_cfg_r15_s::time_offset_e_drx_short_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240"}; return convert_enum_idx(options, 4, value, "wus_cfg_r15_s::time_offset_e_drx_short_r15_e_"); @@ -3557,7 +3651,7 @@ uint8_t wus_cfg_r15_s::time_offset_e_drx_short_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_r15_s::time_offset_e_drx_short_r15_e_"); } -std::string wus_cfg_r15_s::time_offset_e_drx_long_r15_opts::to_string() const +const char* wus_cfg_r15_s::time_offset_e_drx_long_r15_opts::to_string() const { static const char* options[] = {"ms1000", "ms2000"}; return convert_enum_idx(options, 2, value, "wus_cfg_r15_s::time_offset_e_drx_long_r15_e_"); @@ -3588,7 +3682,7 @@ void wus_cfg_v1560_s::to_json(json_writer& j) const j.end_obj(); } -std::string wus_cfg_v1560_s::pwr_boost_r15_opts::to_string() const +const char* wus_cfg_v1560_s::pwr_boost_r15_opts::to_string() const { static const char* options[] = {"dB0", "dB1dot8", "dB3", "dB4dot8"}; return convert_enum_idx(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_"); @@ -3598,7 +3692,7 @@ float wus_cfg_v1560_s::pwr_boost_r15_opts::to_number() const static const float options[] = {0.0, 1.8, 3.0, 4.8}; return map_enum_number(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_"); } -std::string wus_cfg_v1560_s::pwr_boost_r15_opts::to_number_string() const +const char* wus_cfg_v1560_s::pwr_boost_r15_opts::to_number_string() const { static const char* options[] = {"0", "1.8", "3", "4.8"}; return convert_enum_idx(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_"); @@ -4024,7 +4118,7 @@ void rr_cfg_common_sib_s::to_json(json_writer& j) const } // TimeAlignmentTimer ::= ENUMERATED -std::string time_align_timer_opts::to_string() const +const char* time_align_timer_opts::to_string() const { static const char* options[] = {"sf500", "sf750", "sf1280", "sf1920", "sf2560", "sf5120", "sf10240", "infinity"}; return convert_enum_idx(options, 8, value, "time_align_timer_e"); @@ -4059,7 +4153,7 @@ bool ant_info_common_s::operator==(const ant_info_common_s& other) const return ant_ports_count == other.ant_ports_count; } -std::string ant_info_common_s::ant_ports_count_opts::to_string() const +const char* ant_info_common_s::ant_ports_count_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "spare1"}; return convert_enum_idx(options, 4, value, "ant_info_common_s::ant_ports_count_e_"); @@ -4392,7 +4486,7 @@ bool ul_pwr_ctrl_common_scell_v1310_s::operator==(const ul_pwr_ctrl_common_scell delta_f_pucch_format5_minus13 == other.delta_f_pucch_format5_minus13); } -std::string ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format3_r12_opts::to_string() const +const char* ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format3_r12_opts::to_string() const { static const char* options[] = { "deltaF-1", "deltaF0", "deltaF1", "deltaF2", "deltaF3", "deltaF4", "deltaF5", "deltaF6"}; @@ -4404,7 +4498,7 @@ int8_t ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format3_r12_opts::to_numb return map_enum_number(options, 8, value, "ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format3_r12_e_"); } -std::string ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format1b_cs_r12_opts::to_string() const +const char* ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format1b_cs_r12_opts::to_string() const { static const char* options[] = {"deltaF1", "deltaF2", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format1b_cs_r12_e_"); @@ -4415,7 +4509,7 @@ uint8_t ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format1b_cs_r12_opts::to return map_enum_number(options, 2, value, "ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format1b_cs_r12_e_"); } -std::string ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const +const char* ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const { static const char* options[] = { "deltaF16", "deltaF15", "deltaF14", "deltaF13", "deltaF12", "deltaF11", "deltaF10", "spare1"}; @@ -4427,7 +4521,7 @@ uint8_t ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format4_r13_opts::to_num return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format4_r13_e_"); } -std::string ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const +const char* ul_pwr_ctrl_common_scell_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const { static const char* options[] = { "deltaF13", "deltaF12", "deltaF11", "deltaF10", "deltaF9", "deltaF8", "deltaF7", "spare1"}; @@ -5023,7 +5117,7 @@ bool rr_cfg_common_scell_r10_s::operator==(const rr_cfg_common_scell_r10_s& othe *ul_pwr_ctrl_common_scell_v1530 == *other.ul_pwr_ctrl_common_scell_v1530))); } -std::string rr_cfg_common_scell_r10_s::non_ul_cfg_r10_s_::dl_bw_r10_opts::to_string() const +const char* rr_cfg_common_scell_r10_s::non_ul_cfg_r10_s_::dl_bw_r10_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "rr_cfg_common_scell_r10_s::non_ul_cfg_r10_s_::dl_bw_r10_e_"); @@ -5034,7 +5128,7 @@ uint8_t rr_cfg_common_scell_r10_s::non_ul_cfg_r10_s_::dl_bw_r10_opts::to_number( return map_enum_number(options, 6, value, "rr_cfg_common_scell_r10_s::non_ul_cfg_r10_s_::dl_bw_r10_e_"); } -std::string rr_cfg_common_scell_r10_s::ul_cfg_r10_s_::ul_freq_info_r10_s_::ul_bw_r10_opts::to_string() const +const char* rr_cfg_common_scell_r10_s::ul_cfg_r10_s_::ul_freq_info_r10_s_::ul_bw_r10_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx( @@ -5047,7 +5141,7 @@ uint8_t rr_cfg_common_scell_r10_s::ul_cfg_r10_s_::ul_freq_info_r10_s_::ul_bw_r10 options, 6, value, "rr_cfg_common_scell_r10_s::ul_cfg_r10_s_::ul_freq_info_r10_s_::ul_bw_r10_e_"); } -std::string rr_cfg_common_scell_r10_s::ul_cfg_r14_s_::ul_freq_info_r14_s_::ul_bw_r14_opts::to_string() const +const char* rr_cfg_common_scell_r10_s::ul_cfg_r14_s_::ul_freq_info_r14_s_::ul_bw_r14_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx( @@ -5060,7 +5154,7 @@ uint8_t rr_cfg_common_scell_r10_s::ul_cfg_r14_s_::ul_freq_info_r14_s_::ul_bw_r14 options, 6, value, "rr_cfg_common_scell_r10_s::ul_cfg_r14_s_::ul_freq_info_r14_s_::ul_bw_r14_e_"); } -std::string rr_cfg_common_scell_r10_s::harq_ref_cfg_r14_opts::to_string() const +const char* rr_cfg_common_scell_r10_s::harq_ref_cfg_r14_opts::to_string() const { static const char* options[] = {"sa2", "sa4", "sa5"}; return convert_enum_idx(options, 3, value, "rr_cfg_common_scell_r10_s::harq_ref_cfg_r14_e_"); @@ -5112,7 +5206,7 @@ void ul_pwr_ctrl_common_v1310_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const +const char* ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const { static const char* options[] = { "deltaF16", "deltaF15", "deltaF14", "deltaF13", "deltaF12", "deltaF11", "deltaF10", "spare1"}; @@ -5124,7 +5218,7 @@ uint8_t ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_number() return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_e_"); } -std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const +const char* ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const { static const char* options[] = { "deltaF13", "deltaF12", "deltaF11", "deltaF10", "deltaF9", "deltaF8", "deltaF7", "spare1"}; @@ -5264,6 +5358,18 @@ prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_& prach_cfg_v1310_s::mpdcch_star return *this; } +prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_& +prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set_fdd_r13() +{ + set(types::fdd_r13); + return c.get(); +} +prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_e_& +prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::set_tdd_r13() +{ + set(types::tdd_r13); + return c.get(); +} void prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5314,7 +5420,7 @@ SRSASN_CODE prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::unpack(cbit_ref& b return SRSASN_SUCCESS; } -std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_string() const +const char* prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; return convert_enum_idx(options, 8, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); @@ -5324,13 +5430,13 @@ float prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_number( static const float options[] = {1.0, 1.5, 2.0, 2.5, 4.0, 5.0, 8.0, 10.0}; return map_enum_number(options, 8, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); } -std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_number_string() const +const char* prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_opts::to_number_string() const { static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; return convert_enum_idx(options, 8, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::fdd_r13_e_"); } -std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_opts::to_string() const +const char* prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_opts::to_string() const { static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20", "spare"}; return convert_enum_idx(options, 8, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::tdd_r13_e_"); diff --git a/lib/src/asn1/rrc/rr_ded.cc b/lib/src/asn1/rrc/rr_ded.cc index a77bb17a3..47dfb61dd 100644 --- a/lib/src/asn1/rrc/rr_ded.cc +++ b/lib/src/asn1/rrc/rr_ded.cc @@ -30,7 +30,7 @@ using namespace asn1::rrc; ******************************************************************************/ // PollByte-r14 ::= ENUMERATED -std::string poll_byte_r14_opts::to_string() const +const char* poll_byte_r14_opts::to_string() const { static const char* options[] = {"kB1", "kB2", "kB5", "kB8", "kB10", "kB15", "kB3500", "kB4000", "kB4500", "kB5000", "kB5500", "kB6000", "kB6500", "kB7000", @@ -48,7 +48,7 @@ uint16_t poll_byte_r14_opts::to_number() const } // PollPDU-r15 ::= ENUMERATED -std::string poll_pdu_r15_opts::to_string() const +const char* poll_pdu_r15_opts::to_string() const { static const char* options[] = {"p4", "p8", @@ -75,7 +75,7 @@ int16_t poll_pdu_r15_opts::to_number() const } // SN-FieldLength ::= ENUMERATED -std::string sn_field_len_opts::to_string() const +const char* sn_field_len_opts::to_string() const { static const char* options[] = {"size5", "size10"}; return convert_enum_idx(options, 2, value, "sn_field_len_e"); @@ -87,7 +87,7 @@ uint8_t sn_field_len_opts::to_number() const } // SN-FieldLength-r15 ::= ENUMERATED -std::string sn_field_len_r15_opts::to_string() const +const char* sn_field_len_r15_opts::to_string() const { static const char* options[] = {"size5", "size10", "size16-r15"}; return convert_enum_idx(options, 3, value, "sn_field_len_r15_e"); @@ -99,7 +99,7 @@ uint8_t sn_field_len_r15_opts::to_number() const } // T-PollRetransmit ::= ENUMERATED -std::string t_poll_retx_opts::to_string() const +const char* t_poll_retx_opts::to_string() const { static const char* options[] = { "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", "ms35", "ms40", @@ -122,7 +122,7 @@ uint16_t t_poll_retx_opts::to_number() const } // T-Reordering ::= ENUMERATED -std::string t_reordering_opts::to_string() const +const char* t_reordering_opts::to_string() const { static const char* options[] = {"ms0", "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", "ms35", "ms40", "ms45", "ms50", "ms55", "ms60", "ms65", "ms70", "ms75", @@ -138,7 +138,7 @@ uint16_t t_reordering_opts::to_number() const } // T-StatusProhibit ::= ENUMERATED -std::string t_status_prohibit_opts::to_string() const +const char* t_status_prohibit_opts::to_string() const { static const char* options[] = { "ms0", "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", @@ -221,7 +221,7 @@ bool dl_um_rlc_r15_s::operator==(const dl_um_rlc_r15_s& other) const } // PollByte ::= ENUMERATED -std::string poll_byte_opts::to_string() const +const char* poll_byte_opts::to_string() const { static const char* options[] = {"kB25", "kB50", @@ -248,7 +248,7 @@ int16_t poll_byte_opts::to_number() const } // PollPDU ::= ENUMERATED -std::string poll_pdu_opts::to_string() const +const char* poll_pdu_opts::to_string() const { static const char* options[] = {"p4", "p8", "p16", "p32", "p64", "p128", "p256", "pInfinity"}; return convert_enum_idx(options, 8, value, "poll_pdu_e"); @@ -297,7 +297,7 @@ bool ul_am_rlc_r15_s::operator==(const ul_am_rlc_r15_s& other) const extended_rlc_li_field_r15 == other.extended_rlc_li_field_r15; } -std::string ul_am_rlc_r15_s::max_retx_thres_r15_opts::to_string() const +const char* ul_am_rlc_r15_s::max_retx_thres_r15_opts::to_string() const { static const char* options[] = {"t1", "t2", "t3", "t4", "t6", "t8", "t16", "t32"}; return convert_enum_idx(options, 8, value, "ul_am_rlc_r15_s::max_retx_thres_r15_e_"); @@ -607,7 +607,7 @@ bool lc_ch_cfg_s::operator==(const lc_ch_cfg_s& other) const (not lch_cell_restrict_r15_present or lch_cell_restrict_r15 == other.lch_cell_restrict_r15))); } -std::string lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_string() const { static const char* options[] = {"kBps0", "kBps8", @@ -633,7 +633,7 @@ int16_t lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_number return map_enum_number(options, 11, value, "lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_e_"); } -std::string lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_string() const { static const char* options[] = {"ms50", "ms100", "ms150", "ms300", "ms500", "ms1000", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_e_"); @@ -644,7 +644,7 @@ uint16_t lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_number() c return map_enum_number(options, 6, value, "lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_e_"); } -std::string lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_opts::to_string() const +const char* lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_opts::to_string() const { static const char* options[] = {"s0", "s0dot4", "s0dot8", "s1dot6", "s3", "s6", "s12", "s30"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_e_"); @@ -654,7 +654,7 @@ float lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_opts::to_number() const static const float options[] = {0.0, 0.4, 0.8, 1.6, 3.0, 6.0, 12.0, 30.0}; return map_enum_number(options, 8, value, "lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_e_"); } -std::string lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_opts::to_number_string() const +const char* lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.8", "1.6", "3", "6", "12", "30"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::bit_rate_query_prohibit_timer_r14_e_"); @@ -664,6 +664,15 @@ void lc_ch_cfg_s::allowed_tti_lens_r15_c_::set(types::options e) { type_ = e; } +void lc_ch_cfg_s::allowed_tti_lens_r15_c_::set_release() +{ + set(types::release); +} +lc_ch_cfg_s::allowed_tti_lens_r15_c_::setup_s_& lc_ch_cfg_s::allowed_tti_lens_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void lc_ch_cfg_s::allowed_tti_lens_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -725,6 +734,15 @@ void lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::set(types::options e) { type_ = e; } +void lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::set_release() +{ + set(types::release); +} +lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_e_& lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -776,7 +794,7 @@ bool lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::operator==(const lc_ch_sr_restrict_r return type() == other.type() and c == other.c; } -std::string lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_opts::to_string() const +const char* lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_opts::to_string() const { static const char* options[] = {"spucch", "pucch"}; return convert_enum_idx(options, 2, value, "lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_e_"); @@ -786,6 +804,15 @@ void lc_ch_cfg_s::ch_access_prio_r15_c_::set(types::options e) { type_ = e; } +void lc_ch_cfg_s::ch_access_prio_r15_c_::set_release() +{ + set(types::release); +} +uint8_t& lc_ch_cfg_s::ch_access_prio_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void lc_ch_cfg_s::ch_access_prio_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -838,7 +865,7 @@ bool lc_ch_cfg_s::ch_access_prio_r15_c_::operator==(const ch_access_prio_r15_c_& } // P-a ::= ENUMERATED -std::string p_a_opts::to_string() const +const char* p_a_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "p_a_e"); @@ -848,14 +875,14 @@ float p_a_opts::to_number() const static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "p_a_e"); } -std::string p_a_opts::to_number_string() const +const char* p_a_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "p_a_e"); } // PollPDU-v1310 ::= ENUMERATED -std::string poll_pdu_v1310_opts::to_string() const +const char* poll_pdu_v1310_opts::to_string() const { static const char* options[] = {"p512", "p1024", "p2048", "p4096", "p6144", "p8192", "p12288", "p16384"}; return convert_enum_idx(options, 8, value, "poll_pdu_v1310_e"); @@ -998,6 +1025,26 @@ rlc_cfg_r15_s::mode_r15_c_& rlc_cfg_r15_s::mode_r15_c_::operator=(const rlc_cfg_ return *this; } +rlc_cfg_r15_s::mode_r15_c_::am_r15_s_& rlc_cfg_r15_s::mode_r15_c_::set_am_r15() +{ + set(types::am_r15); + return c.get(); +} +rlc_cfg_r15_s::mode_r15_c_::um_bi_dir_r15_s_& rlc_cfg_r15_s::mode_r15_c_::set_um_bi_dir_r15() +{ + set(types::um_bi_dir_r15); + return c.get(); +} +rlc_cfg_r15_s::mode_r15_c_::um_uni_dir_ul_r15_s_& rlc_cfg_r15_s::mode_r15_c_::set_um_uni_dir_ul_r15() +{ + set(types::um_uni_dir_ul_r15); + return c.get(); +} +rlc_cfg_r15_s::mode_r15_c_::um_uni_dir_dl_r15_s_& rlc_cfg_r15_s::mode_r15_c_::set_um_uni_dir_dl_r15() +{ + set(types::um_uni_dir_dl_r15); + return c.get(); +} void rlc_cfg_r15_s::mode_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1145,7 +1192,7 @@ bool ul_am_rlc_s::operator==(const ul_am_rlc_s& other) const max_retx_thres == other.max_retx_thres; } -std::string ul_am_rlc_s::max_retx_thres_opts::to_string() const +const char* ul_am_rlc_s::max_retx_thres_opts::to_string() const { static const char* options[] = {"t1", "t2", "t3", "t4", "t6", "t8", "t16", "t32"}; return convert_enum_idx(options, 8, value, "ul_am_rlc_s::max_retx_thres_e_"); @@ -1226,7 +1273,7 @@ void crs_assist_info_r11_s::to_json(json_writer& j) const j.end_obj(); } -std::string crs_assist_info_r11_s::ant_ports_count_r11_opts::to_string() const +const char* crs_assist_info_r11_s::ant_ports_count_r11_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "spare1"}; return convert_enum_idx(options, 4, value, "crs_assist_info_r11_s::ant_ports_count_r11_e_"); @@ -1326,7 +1373,7 @@ bool crs_assist_info_r13_s::operator==(const crs_assist_info_r13_s& other) const (not mbsfn_sf_cfg_list_v1430.is_present() or *mbsfn_sf_cfg_list_v1430 == *other.mbsfn_sf_cfg_list_v1430))); } -std::string crs_assist_info_r13_s::ant_ports_count_r13_opts::to_string() const +const char* crs_assist_info_r13_s::ant_ports_count_r13_opts::to_string() const { static const char* options[] = {"an1", "an2", "an4", "spare1"}; return convert_enum_idx(options, 4, value, "crs_assist_info_r13_s::ant_ports_count_r13_e_"); @@ -1435,7 +1482,7 @@ bool neigh_cells_info_r12_s::operator==(const neigh_cells_info_r12_s& other) con res_alloc_granularity_r12 == other.res_alloc_granularity_r12; } -std::string neigh_cells_info_r12_s::crs_ports_count_r12_opts::to_string() const +const char* neigh_cells_info_r12_s::crs_ports_count_r12_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "spare"}; return convert_enum_idx(options, 4, value, "neigh_cells_info_r12_s::crs_ports_count_r12_e_"); @@ -1749,7 +1796,7 @@ bool pdcp_cfg_s::operator==(const pdcp_cfg_s& other) const (not pdcp_dupl_cfg_r15.is_present() or *pdcp_dupl_cfg_r15 == *other.pdcp_dupl_cfg_r15))); } -std::string pdcp_cfg_s::discard_timer_opts::to_string() const +const char* pdcp_cfg_s::discard_timer_opts::to_string() const { static const char* options[] = {"ms50", "ms100", "ms150", "ms300", "ms500", "ms750", "ms1500", "infinity"}; return convert_enum_idx(options, 8, value, "pdcp_cfg_s::discard_timer_e_"); @@ -1760,7 +1807,7 @@ int16_t pdcp_cfg_s::discard_timer_opts::to_number() const return map_enum_number(options, 8, value, "pdcp_cfg_s::discard_timer_e_"); } -std::string pdcp_cfg_s::rlc_um_s_::pdcp_sn_size_opts::to_string() const +const char* pdcp_cfg_s::rlc_um_s_::pdcp_sn_size_opts::to_string() const { static const char* options[] = {"len7bits", "len12bits"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::rlc_um_s_::pdcp_sn_size_e_"); @@ -1775,6 +1822,15 @@ void pdcp_cfg_s::hdr_compress_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::hdr_compress_c_::set_not_used() +{ + set(types::not_used); +} +pdcp_cfg_s::hdr_compress_c_::rohc_s_& pdcp_cfg_s::hdr_compress_c_::set_rohc() +{ + set(types::rohc); + return c; +} void pdcp_cfg_s::hdr_compress_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1879,7 +1935,7 @@ bool pdcp_cfg_s::hdr_compress_c_::operator==(const hdr_compress_c_& other) const c.profiles.profile0x0104 == other.c.profiles.profile0x0104; } -std::string pdcp_cfg_s::t_reordering_r12_opts::to_string() const +const char* pdcp_cfg_s::t_reordering_r12_opts::to_string() const { static const char* options[] = {"ms0", "ms20", "ms40", "ms60", "ms80", "ms100", "ms120", "ms140", "ms160", "ms180", "ms200", "ms220", "ms240", "ms260", "ms280", "ms300", @@ -1898,6 +1954,15 @@ void pdcp_cfg_s::ul_data_split_thres_r13_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::ul_data_split_thres_r13_c_::set_release() +{ + set(types::release); +} +pdcp_cfg_s::ul_data_split_thres_r13_c_::setup_e_& pdcp_cfg_s::ul_data_split_thres_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pdcp_cfg_s::ul_data_split_thres_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1949,7 +2014,7 @@ bool pdcp_cfg_s::ul_data_split_thres_r13_c_::operator==(const ul_data_split_thre return type() == other.type() and c == other.c; } -std::string pdcp_cfg_s::ul_data_split_thres_r13_c_::setup_opts::to_string() const +const char* pdcp_cfg_s::ul_data_split_thres_r13_c_::setup_opts::to_string() const { static const char* options[] = {"b0", "b100", @@ -1980,6 +2045,15 @@ void pdcp_cfg_s::status_feedback_r13_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::status_feedback_r13_c_::set_release() +{ + set(types::release); +} +pdcp_cfg_s::status_feedback_r13_c_::setup_s_& pdcp_cfg_s::status_feedback_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void pdcp_cfg_s::status_feedback_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2087,7 +2161,7 @@ bool pdcp_cfg_s::status_feedback_r13_c_::operator==(const status_feedback_r13_c_ c.status_pdu_periodicity_offset_r13 == other.c.status_pdu_periodicity_offset_r13); } -std::string pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_type_for_polling_r13_opts::to_string() const +const char* pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_type_for_polling_r13_opts::to_string() const { static const char* options[] = {"type1", "type2"}; return convert_enum_idx( @@ -2100,7 +2174,7 @@ uint8_t pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_type_for_pollin options, 2, value, "pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_type_for_polling_r13_e_"); } -std::string pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type1_r13_opts::to_string() const +const char* pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type1_r13_opts::to_string() const { static const char* options[] = {"ms5", "ms10", "ms20", "ms30", "ms40", "ms50", "ms60", "ms70", "ms80", "ms90", "ms100", "ms150", "ms200", "ms300", @@ -2116,7 +2190,7 @@ uint16_t pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_ty options, 21, value, "pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type1_r13_e_"); } -std::string pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type2_r13_opts::to_string() const +const char* pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type2_r13_opts::to_string() const { static const char* options[] = {"ms5", "ms10", "ms20", "ms30", "ms40", "ms50", "ms60", "ms70", "ms80", "ms90", "ms100", "ms150", "ms200", "ms300", @@ -2132,7 +2206,7 @@ uint16_t pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_ty options, 21, value, "pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_type2_r13_e_"); } -std::string pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_offset_r13_opts::to_string() const +const char* pdcp_cfg_s::status_feedback_r13_c_::setup_s_::status_pdu_periodicity_offset_r13_opts::to_string() const { static const char* options[] = { "ms1", "ms2", "ms5", "ms10", "ms25", "ms50", "ms100", "ms250", "ms500", "ms2500", "ms5000", "ms25000"}; @@ -2150,6 +2224,15 @@ void pdcp_cfg_s::ul_lwa_cfg_r14_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::ul_lwa_cfg_r14_c_::set_release() +{ + set(types::release); +} +pdcp_cfg_s::ul_lwa_cfg_r14_c_::setup_s_& pdcp_cfg_s::ul_lwa_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void pdcp_cfg_s::ul_lwa_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2218,7 +2301,7 @@ bool pdcp_cfg_s::ul_lwa_cfg_r14_c_::operator==(const ul_lwa_cfg_r14_c_& other) c c.ul_lwa_data_split_thres_r14 == other.c.ul_lwa_data_split_thres_r14); } -std::string pdcp_cfg_s::ul_lwa_cfg_r14_c_::setup_s_::ul_lwa_data_split_thres_r14_opts::to_string() const +const char* pdcp_cfg_s::ul_lwa_cfg_r14_c_::setup_s_::ul_lwa_data_split_thres_r14_opts::to_string() const { static const char* options[] = {"b0", "b100", @@ -2249,6 +2332,15 @@ void pdcp_cfg_s::ul_only_hdr_compress_r14_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::ul_only_hdr_compress_r14_c_::set_not_used_r14() +{ + set(types::not_used_r14); +} +pdcp_cfg_s::ul_only_hdr_compress_r14_c_::rohc_r14_s_& pdcp_cfg_s::ul_only_hdr_compress_r14_c_::set_rohc_r14() +{ + set(types::rohc_r14); + return c; +} void pdcp_cfg_s::ul_only_hdr_compress_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2321,7 +2413,7 @@ bool pdcp_cfg_s::ul_only_hdr_compress_r14_c_::operator==(const ul_only_hdr_compr c.profiles_r14.profile0x0006_r14 == other.c.profiles_r14.profile0x0006_r14; } -std::string pdcp_cfg_s::ul_data_compress_r15_s_::buffer_size_r15_opts::to_string() const +const char* pdcp_cfg_s::ul_data_compress_r15_s_::buffer_size_r15_opts::to_string() const { static const char* options[] = {"kbyte2", "kbyte4", "kbyte8", "spare1"}; return convert_enum_idx(options, 4, value, "pdcp_cfg_s::ul_data_compress_r15_s_::buffer_size_r15_e_"); @@ -2332,7 +2424,7 @@ uint8_t pdcp_cfg_s::ul_data_compress_r15_s_::buffer_size_r15_opts::to_number() c return map_enum_number(options, 3, value, "pdcp_cfg_s::ul_data_compress_r15_s_::buffer_size_r15_e_"); } -std::string pdcp_cfg_s::ul_data_compress_r15_s_::dictionary_r15_opts::to_string() const +const char* pdcp_cfg_s::ul_data_compress_r15_s_::dictionary_r15_opts::to_string() const { static const char* options[] = {"sip-SDP", "operator"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::ul_data_compress_r15_s_::dictionary_r15_e_"); @@ -2342,6 +2434,15 @@ void pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::set_release() +{ + set(types::release); +} +pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::setup_s_& pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2396,7 +2497,7 @@ bool pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::operator==(const pdcp_dupl_cfg_r15_c_& ot return type() == other.type() and c.pdcp_dupl_r15 == other.c.pdcp_dupl_r15; } -std::string pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::setup_s_::pdcp_dupl_r15_opts::to_string() const +const char* pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::setup_s_::pdcp_dupl_r15_opts::to_string() const { static const char* options[] = {"configured", "activated"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::pdcp_dupl_cfg_r15_c_::setup_s_::pdcp_dupl_r15_e_"); @@ -2407,6 +2508,15 @@ void rlc_bearer_cfg_r15_c::set(types::options e) { type_ = e; } +void rlc_bearer_cfg_r15_c::set_release() +{ + set(types::release); +} +rlc_bearer_cfg_r15_c::setup_s_& rlc_bearer_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void rlc_bearer_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -2534,6 +2644,16 @@ rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_& rlc_bearer_cfg_r15_c::setup return *this; } +uint8_t& rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::set_lc_ch_id_r15() +{ + set(types::lc_ch_id_r15); + return c.get(); +} +uint8_t& rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::set_lc_ch_id_ext_r15() +{ + set(types::lc_ch_id_ext_r15); + return c.get(); +} void rlc_bearer_cfg_r15_c::setup_s_::lc_ch_id_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2691,6 +2811,26 @@ rlc_cfg_c& rlc_cfg_c::operator=(const rlc_cfg_c& other) return *this; } +rlc_cfg_c::am_s_& rlc_cfg_c::set_am() +{ + set(types::am); + return c.get(); +} +rlc_cfg_c::um_bi_dir_s_& rlc_cfg_c::set_um_bi_dir() +{ + set(types::um_bi_dir); + return c.get(); +} +rlc_cfg_c::um_uni_dir_ul_s_& rlc_cfg_c::set_um_uni_dir_ul() +{ + set(types::um_uni_dir_ul); + return c.get(); +} +rlc_cfg_c::um_uni_dir_dl_s_& rlc_cfg_c::set_um_uni_dir_dl() +{ + set(types::um_uni_dir_dl); + return c.get(); +} void rlc_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -2880,6 +3020,15 @@ void rlc_cfg_v1430_c::set(types::options e) { type_ = e; } +void rlc_cfg_v1430_c::set_release() +{ + set(types::release); +} +rlc_cfg_v1430_c::setup_s_& rlc_cfg_v1430_c::set_setup() +{ + set(types::setup); + return c; +} void rlc_cfg_v1430_c::to_json(json_writer& j) const { j.start_obj(); @@ -2959,6 +3108,14 @@ void rlc_cfg_v1530_c::set(types::options e) { type_ = e; } +void rlc_cfg_v1530_c::set_release() +{ + set(types::release); +} +void rlc_cfg_v1530_c::set_setup() +{ + set(types::setup); +} void rlc_cfg_v1530_c::to_json(json_writer& j) const { j.start_obj(); @@ -3004,7 +3161,7 @@ void sps_cfg_sl_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sps_cfg_sl_r14_s::semi_persist_sched_interv_sl_r14_opts::to_string() const +const char* sps_cfg_sl_r14_s::semi_persist_sched_interv_sl_r14_opts::to_string() const { static const char* options[] = {"sf20", "sf50", @@ -3035,6 +3192,15 @@ void sps_cfg_ul_c::set(types::options e) { type_ = e; } +void sps_cfg_ul_c::set_release() +{ + set(types::release); +} +sps_cfg_ul_c::setup_s_& sps_cfg_ul_c::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_ul_c::to_json(json_writer& j) const { j.start_obj(); @@ -3346,7 +3512,7 @@ bool sps_cfg_ul_c::setup_s_::operator==(const setup_s_& other) const (not sps_cfg_idx_r15_present or sps_cfg_idx_r15 == other.sps_cfg_idx_r15))); } -std::string sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -3372,7 +3538,7 @@ uint16_t sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_opts::to_number() return map_enum_number(options, 15, value, "sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_e_"); } -std::string sps_cfg_ul_c::setup_s_::implicit_release_after_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::implicit_release_after_opts::to_string() const { static const char* options[] = {"e2", "e3", "e4", "e8"}; return convert_enum_idx(options, 4, value, "sps_cfg_ul_c::setup_s_::implicit_release_after_e_"); @@ -3387,6 +3553,16 @@ void sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::set(types::options e) { type_ = e; } +void sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::set_release() +{ + set(types::release); +} +sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::setup_s_& +sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3446,7 +3622,7 @@ bool sps_cfg_ul_c::setup_s_::p0_persistent_sf_set2_r12_c_::operator==(const p0_p c.p0_ue_pusch_persistent_sf_set2_r12 == other.c.p0_ue_pusch_persistent_sf_set2_r12; } -std::string sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_v1430_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_v1430_opts::to_string() const { static const char* options[] = {"sf50", "sf100", @@ -3472,7 +3648,7 @@ uint16_t sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_v1430_opts::to_num return map_enum_number(options, 11, value, "sps_cfg_ul_c::setup_s_::semi_persist_sched_interv_ul_v1430_e_"); } -std::string sps_cfg_ul_c::setup_s_::cyclic_shift_sps_r15_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::cyclic_shift_sps_r15_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7"}; return convert_enum_idx(options, 8, value, "sps_cfg_ul_c::setup_s_::cyclic_shift_sps_r15_e_"); @@ -3483,7 +3659,7 @@ uint8_t sps_cfg_ul_c::setup_s_::cyclic_shift_sps_r15_opts::to_number() const return map_enum_number(options, 8, value, "sps_cfg_ul_c::setup_s_::cyclic_shift_sps_r15_e_"); } -std::string sps_cfg_ul_c::setup_s_::rv_sps_ul_repeats_r15_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::rv_sps_ul_repeats_r15_opts::to_string() const { static const char* options[] = {"ulrvseq1", "ulrvseq2", "ulrvseq3"}; return convert_enum_idx(options, 3, value, "sps_cfg_ul_c::setup_s_::rv_sps_ul_repeats_r15_e_"); @@ -3494,7 +3670,7 @@ uint8_t sps_cfg_ul_c::setup_s_::rv_sps_ul_repeats_r15_opts::to_number() const return map_enum_number(options, 3, value, "sps_cfg_ul_c::setup_s_::rv_sps_ul_repeats_r15_e_"); } -std::string sps_cfg_ul_c::setup_s_::total_num_pusch_sps_ul_repeats_r15_opts::to_string() const +const char* sps_cfg_ul_c::setup_s_::total_num_pusch_sps_ul_repeats_r15_opts::to_string() const { static const char* options[] = {"n2", "n3", "n4", "n6"}; return convert_enum_idx(options, 4, value, "sps_cfg_ul_c::setup_s_::total_num_pusch_sps_ul_repeats_r15_e_"); @@ -3510,6 +3686,15 @@ void sps_cfg_ul_stti_r15_c::set(types::options e) { type_ = e; } +void sps_cfg_ul_stti_r15_c::set_release() +{ + set(types::release); +} +sps_cfg_ul_stti_r15_c::setup_s_& sps_cfg_ul_stti_r15_c::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_ul_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -3745,7 +3930,7 @@ bool sps_cfg_ul_stti_r15_c::operator==(const sps_cfg_ul_stti_r15_c& other) const c.total_num_pusch_sps_stti_ul_repeats_r15 == other.c.total_num_pusch_sps_stti_ul_repeats_r15); } -std::string sps_cfg_ul_stti_r15_c::setup_s_::semi_persist_sched_interv_ul_stti_r15_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::semi_persist_sched_interv_ul_stti_r15_opts::to_string() const { static const char* options[] = {"sTTI1", "sTTI2", @@ -3773,7 +3958,7 @@ uint8_t sps_cfg_ul_stti_r15_c::setup_s_::semi_persist_sched_interv_ul_stti_r15_o options, 14, value, "sps_cfg_ul_stti_r15_c::setup_s_::semi_persist_sched_interv_ul_stti_r15_e_"); } -std::string sps_cfg_ul_stti_r15_c::setup_s_::implicit_release_after_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::implicit_release_after_opts::to_string() const { static const char* options[] = {"e2", "e3", "e4", "e8"}; return convert_enum_idx(options, 4, value, "sps_cfg_ul_stti_r15_c::setup_s_::implicit_release_after_e_"); @@ -3788,6 +3973,16 @@ void sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::set(types::o { type_ = e; } +void sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::set_release() +{ + set(types::release); +} +sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::setup_s_& +sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3848,7 +4043,7 @@ bool sps_cfg_ul_stti_r15_c::setup_s_::p0_persistent_sf_set2_r15_c_::operator==( c.p0_ue_spusch_persistent_sf_set2_r15 == other.c.p0_ue_spusch_persistent_sf_set2_r15; } -std::string sps_cfg_ul_stti_r15_c::setup_s_::cyclic_shift_sps_s_tti_r15_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::cyclic_shift_sps_s_tti_r15_opts::to_string() const { static const char* options[] = {"cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7"}; return convert_enum_idx(options, 8, value, "sps_cfg_ul_stti_r15_c::setup_s_::cyclic_shift_sps_s_tti_r15_e_"); @@ -3859,7 +4054,7 @@ uint8_t sps_cfg_ul_stti_r15_c::setup_s_::cyclic_shift_sps_s_tti_r15_opts::to_num return map_enum_number(options, 8, value, "sps_cfg_ul_stti_r15_c::setup_s_::cyclic_shift_sps_s_tti_r15_e_"); } -std::string sps_cfg_ul_stti_r15_c::setup_s_::rv_sps_stti_ul_repeats_r15_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::rv_sps_stti_ul_repeats_r15_opts::to_string() const { static const char* options[] = {"ulrvseq1", "ulrvseq2", "ulrvseq3"}; return convert_enum_idx(options, 3, value, "sps_cfg_ul_stti_r15_c::setup_s_::rv_sps_stti_ul_repeats_r15_e_"); @@ -3870,7 +4065,7 @@ uint8_t sps_cfg_ul_stti_r15_c::setup_s_::rv_sps_stti_ul_repeats_r15_opts::to_num return map_enum_number(options, 3, value, "sps_cfg_ul_stti_r15_c::setup_s_::rv_sps_stti_ul_repeats_r15_e_"); } -std::string sps_cfg_ul_stti_r15_c::setup_s_::tbs_scaling_factor_subslot_sps_ul_repeats_r15_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::tbs_scaling_factor_subslot_sps_ul_repeats_r15_opts::to_string() const { static const char* options[] = {"n6", "n12"}; return convert_enum_idx( @@ -3883,7 +4078,7 @@ uint8_t sps_cfg_ul_stti_r15_c::setup_s_::tbs_scaling_factor_subslot_sps_ul_repea options, 2, value, "sps_cfg_ul_stti_r15_c::setup_s_::tbs_scaling_factor_subslot_sps_ul_repeats_r15_e_"); } -std::string sps_cfg_ul_stti_r15_c::setup_s_::total_num_pusch_sps_stti_ul_repeats_r15_opts::to_string() const +const char* sps_cfg_ul_stti_r15_c::setup_s_::total_num_pusch_sps_stti_ul_repeats_r15_opts::to_string() const { static const char* options[] = {"n2", "n3", "n4", "n6"}; return convert_enum_idx( @@ -4259,13 +4454,13 @@ bool drb_to_add_mod_s::operator==(const drb_to_add_mod_s& other) const (not lc_ch_id_r15_present or lc_ch_id_r15 == other.lc_ch_id_r15))); } -std::string drb_to_add_mod_s::drb_type_lwip_r13_opts::to_string() const +const char* drb_to_add_mod_s::drb_type_lwip_r13_opts::to_string() const { static const char* options[] = {"lwip", "lwip-DL-only", "lwip-UL-only", "eutran"}; return convert_enum_idx(options, 4, value, "drb_to_add_mod_s::drb_type_lwip_r13_e_"); } -std::string drb_to_add_mod_s::lwa_wlan_ac_r14_opts::to_string() const +const char* drb_to_add_mod_s::lwa_wlan_ac_r14_opts::to_string() const { static const char* options[] = {"ac-bk", "ac-be", "ac-vi", "ac-vo"}; return convert_enum_idx(options, 4, value, "drb_to_add_mod_s::lwa_wlan_ac_r14_e_"); @@ -4276,6 +4471,15 @@ void drx_cfg_c::set(types::options e) { type_ = e; } +void drx_cfg_c::set_release() +{ + set(types::release); +} +drx_cfg_c::setup_s_& drx_cfg_c::set_setup() +{ + set(types::setup); + return c; +} void drx_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -4353,7 +4557,7 @@ SRSASN_CODE drx_cfg_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drx_cfg_c::setup_s_::on_dur_timer_opts::to_string() const +const char* drx_cfg_c::setup_s_::on_dur_timer_opts::to_string() const { static const char* options[] = {"psf1", "psf2", @@ -4379,7 +4583,7 @@ uint8_t drx_cfg_c::setup_s_::on_dur_timer_opts::to_number() const return map_enum_number(options, 16, value, "drx_cfg_c::setup_s_::on_dur_timer_e_"); } -std::string drx_cfg_c::setup_s_::drx_inactivity_timer_opts::to_string() const +const char* drx_cfg_c::setup_s_::drx_inactivity_timer_opts::to_string() const { static const char* options[] = {"psf1", "psf2", "psf3", "psf4", "psf5", "psf6", "psf8", "psf10", "psf20", "psf30", "psf40", "psf50", "psf60", "psf80", @@ -4395,7 +4599,7 @@ uint16_t drx_cfg_c::setup_s_::drx_inactivity_timer_opts::to_number() const return map_enum_number(options, 23, value, "drx_cfg_c::setup_s_::drx_inactivity_timer_e_"); } -std::string drx_cfg_c::setup_s_::drx_retx_timer_opts::to_string() const +const char* drx_cfg_c::setup_s_::drx_retx_timer_opts::to_string() const { static const char* options[] = {"psf1", "psf2", "psf4", "psf6", "psf8", "psf16", "psf24", "psf33"}; return convert_enum_idx(options, 8, value, "drx_cfg_c::setup_s_::drx_retx_timer_e_"); @@ -4535,6 +4739,86 @@ drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_& drx_cfg_c::setup_s_::long_d return *this; } +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf1280() +{ + set(types::sf1280); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::set_sf2560() +{ + set(types::sf2560); + return c.get(); +} void drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4711,7 +4995,7 @@ SRSASN_CODE drx_cfg_c::setup_s_::long_drx_cycle_start_offset_c_::unpack(cbit_ref return SRSASN_SUCCESS; } -std::string drx_cfg_c::setup_s_::short_drx_s_::short_drx_cycle_opts::to_string() const +const char* drx_cfg_c::setup_s_::short_drx_s_::short_drx_cycle_opts::to_string() const { static const char* options[] = {"sf2", "sf5", @@ -4789,7 +5073,7 @@ void drx_cfg_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string drx_cfg_r13_s::on_dur_timer_v1310_opts::to_string() const +const char* drx_cfg_r13_s::on_dur_timer_v1310_opts::to_string() const { static const char* options[] = {"psf300", "psf400", "psf500", "psf600", "psf800", "psf1000", "psf1200", "psf1600"}; return convert_enum_idx(options, 8, value, "drx_cfg_r13_s::on_dur_timer_v1310_e_"); @@ -4800,7 +5084,7 @@ uint16_t drx_cfg_r13_s::on_dur_timer_v1310_opts::to_number() const return map_enum_number(options, 8, value, "drx_cfg_r13_s::on_dur_timer_v1310_e_"); } -std::string drx_cfg_r13_s::drx_retx_timer_v1310_opts::to_string() const +const char* drx_cfg_r13_s::drx_retx_timer_v1310_opts::to_string() const { static const char* options[] = {"psf40", "psf64", "psf80", "psf96", "psf112", "psf128", "psf160", "psf320"}; return convert_enum_idx(options, 8, value, "drx_cfg_r13_s::drx_retx_timer_v1310_e_"); @@ -4811,7 +5095,7 @@ uint16_t drx_cfg_r13_s::drx_retx_timer_v1310_opts::to_number() const return map_enum_number(options, 8, value, "drx_cfg_r13_s::drx_retx_timer_v1310_e_"); } -std::string drx_cfg_r13_s::drx_ul_retx_timer_r13_opts::to_string() const +const char* drx_cfg_r13_s::drx_ul_retx_timer_r13_opts::to_string() const { static const char* options[] = {"psf0", "psf1", @@ -4879,7 +5163,7 @@ void drx_cfg_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string drx_cfg_r15_s::drx_retx_timer_short_tti_r15_opts::to_string() const +const char* drx_cfg_r15_s::drx_retx_timer_short_tti_r15_opts::to_string() const { static const char* options[] = { "tti10", "tti20", "tti40", "tti64", "tti80", "tti96", "tti112", "tti128", "tti160", "tti320"}; @@ -4891,7 +5175,7 @@ uint16_t drx_cfg_r15_s::drx_retx_timer_short_tti_r15_opts::to_number() const return map_enum_number(options, 10, value, "drx_cfg_r15_s::drx_retx_timer_short_tti_r15_e_"); } -std::string drx_cfg_r15_s::drx_ul_retx_timer_short_tti_r15_opts::to_string() const +const char* drx_cfg_r15_s::drx_ul_retx_timer_short_tti_r15_opts::to_string() const { static const char* options[] = {"tti0", "tti1", @@ -5004,6 +5288,16 @@ drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_& drx_cfg_v1130_s::long_drx return *this; } +uint8_t& drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::set_sf60_v1130() +{ + set(types::sf60_v1130); + return c.get(); +} +uint8_t& drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::set_sf70_v1130() +{ + set(types::sf70_v1130); + return c.get(); +} void drx_cfg_v1130_s::long_drx_cycle_start_offset_v1130_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5088,7 +5382,7 @@ void drx_cfg_v1310_s::to_json(json_writer& j) const } // DataInactivityTimer-r14 ::= ENUMERATED -std::string data_inactivity_timer_r14_opts::to_string() const +const char* data_inactivity_timer_r14_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s40", "s50", "s60", "s80", "s100", "s120", "s150", "s180"}; @@ -5101,7 +5395,7 @@ uint8_t data_inactivity_timer_r14_opts::to_number() const } // PeriodicBSR-Timer-r12 ::= ENUMERATED -std::string periodic_bsr_timer_r12_opts::to_string() const +const char* periodic_bsr_timer_r12_opts::to_string() const { static const char* options[] = {"sf5", "sf10", @@ -5128,7 +5422,7 @@ int16_t periodic_bsr_timer_r12_opts::to_number() const } // RetxBSR-Timer-r12 ::= ENUMERATED -std::string retx_bsr_timer_r12_opts::to_string() const +const char* retx_bsr_timer_r12_opts::to_string() const { static const char* options[] = {"sf320", "sf640", "sf1280", "sf2560", "sf5120", "sf10240", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "retx_bsr_timer_r12_e"); @@ -5144,6 +5438,15 @@ void sps_cfg_dl_c::set(types::options e) { type_ = e; } +void sps_cfg_dl_c::set_release() +{ + set(types::release); +} +sps_cfg_dl_c::setup_s_& sps_cfg_dl_c::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_dl_c::to_json(json_writer& j) const { j.start_obj(); @@ -5271,7 +5574,7 @@ bool sps_cfg_dl_c::setup_s_::operator==(const setup_s_& other) const (not two_ant_port_activ_r10.is_present() or *two_ant_port_activ_r10 == *other.two_ant_port_activ_r10))); } -std::string sps_cfg_dl_c::setup_s_::semi_persist_sched_interv_dl_opts::to_string() const +const char* sps_cfg_dl_c::setup_s_::semi_persist_sched_interv_dl_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -5301,6 +5604,16 @@ void sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::set(types::options e) { type_ = e; } +void sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::set_release() +{ + set(types::release); +} +sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::setup_s_& +sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_dl_c::setup_s_::two_ant_port_activ_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5365,6 +5678,15 @@ void sps_cfg_dl_stti_r15_c::set(types::options e) { type_ = e; } +void sps_cfg_dl_stti_r15_c::set_release() +{ + set(types::release); +} +sps_cfg_dl_stti_r15_c::setup_s_& sps_cfg_dl_stti_r15_c::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_dl_stti_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -5447,7 +5769,7 @@ SRSASN_CODE sps_cfg_dl_stti_r15_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sps_cfg_dl_stti_r15_c::setup_s_::semi_persist_sched_interv_dl_stti_r15_opts::to_string() const +const char* sps_cfg_dl_stti_r15_c::setup_s_::semi_persist_sched_interv_dl_stti_r15_opts::to_string() const { static const char* options[] = {"sTTI1", "sTTI2", @@ -5479,6 +5801,16 @@ void sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::set(types::opti { type_ = e; } +void sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::set_release() +{ + set(types::release); +} +sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::setup_s_& +sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void sps_cfg_dl_stti_r15_c::setup_s_::two_ant_port_activ_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5694,6 +6026,15 @@ void srb_to_add_mod_s::rlc_cfg_c_::set(types::options e) { type_ = e; } +rlc_cfg_c& srb_to_add_mod_s::rlc_cfg_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void srb_to_add_mod_s::rlc_cfg_c_::set_default_value() +{ + set(types::default_value); +} void srb_to_add_mod_s::rlc_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5750,6 +6091,15 @@ void srb_to_add_mod_s::lc_ch_cfg_c_::set(types::options e) { type_ = e; } +lc_ch_cfg_s& srb_to_add_mod_s::lc_ch_cfg_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void srb_to_add_mod_s::lc_ch_cfg_c_::set_default_value() +{ + set(types::default_value); +} void srb_to_add_mod_s::lc_ch_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6248,7 +6598,7 @@ void mac_main_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string mac_main_cfg_s::ul_sch_cfg_s_::max_harq_tx_opts::to_string() const +const char* mac_main_cfg_s::ul_sch_cfg_s_::max_harq_tx_opts::to_string() const { static const char* options[] = { "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n10", "n12", "n16", "n20", "n24", "n28", "spare2", "spare1"}; @@ -6264,6 +6614,15 @@ void mac_main_cfg_s::phr_cfg_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::phr_cfg_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::phr_cfg_c_::setup_s_& mac_main_cfg_s::phr_cfg_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::phr_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6320,7 +6679,7 @@ SRSASN_CODE mac_main_cfg_s::phr_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_s::phr_cfg_c_::setup_s_::periodic_phr_timer_opts::to_string() const +const char* mac_main_cfg_s::phr_cfg_c_::setup_s_::periodic_phr_timer_opts::to_string() const { static const char* options[] = {"sf10", "sf20", "sf50", "sf100", "sf200", "sf500", "sf1000", "infinity"}; return convert_enum_idx(options, 8, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::periodic_phr_timer_e_"); @@ -6331,7 +6690,7 @@ int16_t mac_main_cfg_s::phr_cfg_c_::setup_s_::periodic_phr_timer_opts::to_number return map_enum_number(options, 8, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::periodic_phr_timer_e_"); } -std::string mac_main_cfg_s::phr_cfg_c_::setup_s_::prohibit_phr_timer_opts::to_string() const +const char* mac_main_cfg_s::phr_cfg_c_::setup_s_::prohibit_phr_timer_opts::to_string() const { static const char* options[] = {"sf0", "sf10", "sf20", "sf50", "sf100", "sf200", "sf500", "sf1000"}; return convert_enum_idx(options, 8, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::prohibit_phr_timer_e_"); @@ -6342,7 +6701,7 @@ uint16_t mac_main_cfg_s::phr_cfg_c_::setup_s_::prohibit_phr_timer_opts::to_numbe return map_enum_number(options, 8, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::prohibit_phr_timer_e_"); } -std::string mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_opts::to_string() const +const char* mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_opts::to_string() const { static const char* options[] = {"dB1", "dB3", "dB6", "infinity"}; return convert_enum_idx(options, 4, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_e_"); @@ -6353,7 +6712,7 @@ int8_t mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_opts::to_number( return map_enum_number(options, 4, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_e_"); } -std::string mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_opts::to_string() const +const char* mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_opts::to_string() const { static const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "spare"}; return convert_enum_idx(options, 8, value, "mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_e_"); @@ -6368,6 +6727,15 @@ void mac_main_cfg_s::dual_connect_phr_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::dual_connect_phr_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::dual_connect_phr_c_::setup_s_& mac_main_cfg_s::dual_connect_phr_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::dual_connect_phr_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6418,7 +6786,7 @@ SRSASN_CODE mac_main_cfg_s::dual_connect_phr_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_s::dual_connect_phr_c_::setup_s_::phr_mode_other_cg_r12_opts::to_string() const +const char* mac_main_cfg_s::dual_connect_phr_c_::setup_s_::phr_mode_other_cg_r12_opts::to_string() const { static const char* options[] = {"real", "virtual"}; return convert_enum_idx(options, 2, value, "mac_main_cfg_s::dual_connect_phr_c_::setup_s_::phr_mode_other_cg_r12_e_"); @@ -6428,6 +6796,15 @@ void mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::setup_s_& mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6478,7 +6855,7 @@ SRSASN_CODE mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::setup_s_::lc_ch_sr_prohibit_timer_r12_opts::to_string() const +const char* mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::setup_s_::lc_ch_sr_prohibit_timer_r12_opts::to_string() const { static const char* options[] = {"sf20", "sf40", "sf64", "sf128", "sf512", "sf1024", "sf2560", "spare1"}; return convert_enum_idx( @@ -6495,6 +6872,16 @@ void mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_& +mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6589,6 +6976,16 @@ mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::operator=( return *this; } +uint8_t& mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::set_sf5120() +{ + set(types::sf5120); + return c.get(); +} +uint8_t& mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::set_sf10240() +{ + set(types::sf10240); + return c.get(); +} void mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6643,6 +7040,15 @@ void mac_main_cfg_s::drx_cfg_r13_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::drx_cfg_r13_c_::set_release() +{ + set(types::release); +} +drx_cfg_r13_s& mac_main_cfg_s::drx_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::drx_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6695,6 +7101,15 @@ void mac_main_cfg_s::skip_ul_tx_r14_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::skip_ul_tx_r14_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::skip_ul_tx_r14_c_::setup_s_& mac_main_cfg_s::skip_ul_tx_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::skip_ul_tx_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6756,6 +7171,16 @@ void mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::setup_s_& +mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::data_inactivity_timer_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6810,6 +7235,15 @@ void mac_main_cfg_s::short_tti_and_spt_r15_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::short_tti_and_spt_r15_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_& mac_main_cfg_s::short_tti_and_spt_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::short_tti_and_spt_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6902,7 +7336,7 @@ SRSASN_CODE mac_main_cfg_s::short_tti_and_spt_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::periodic_bsr_timer_r15_opts::to_string() const +const char* mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::periodic_bsr_timer_r15_opts::to_string() const { static const char* options[] = {"sf1", "sf5", @@ -6930,7 +7364,7 @@ int16_t mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::periodic_bsr_timer_r options, 16, value, "mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::periodic_bsr_timer_r15_e_"); } -std::string mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::proc_timeline_r15_opts::to_string() const +const char* mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::proc_timeline_r15_opts::to_string() const { static const char* options[] = {"nplus4set1", "nplus6set1", "nplus6set2", "nplus8set2"}; return convert_enum_idx( @@ -6941,6 +7375,15 @@ void mac_main_cfg_s::dormant_state_timers_r15_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_s::dormant_state_timers_r15_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_& mac_main_cfg_s::dormant_state_timers_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_s::dormant_state_timers_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7010,7 +7453,7 @@ SRSASN_CODE mac_main_cfg_s::dormant_state_timers_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_opts::to_string() const +const char* mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_opts::to_string() const { static const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "spare"}; return convert_enum_idx( @@ -7023,7 +7466,7 @@ uint8_t mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation options, 7, value, "mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_e_"); } -std::string +const char* mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::dormant_scell_deactivation_timer_r15_opts::to_string() const { static const char* options[] = {"rf2", @@ -7064,6 +7507,15 @@ void meas_sf_pattern_pcell_r10_c::set(types::options e) { type_ = e; } +void meas_sf_pattern_pcell_r10_c::set_release() +{ + set(types::release); +} +meas_sf_pattern_r10_c& meas_sf_pattern_pcell_r10_c::set_setup() +{ + set(types::setup); + return c; +} void meas_sf_pattern_pcell_r10_c::to_json(json_writer& j) const { j.start_obj(); @@ -7117,6 +7569,15 @@ void naics_assist_info_r12_c::set(types::options e) { type_ = e; } +void naics_assist_info_r12_c::set_release() +{ + set(types::release); +} +naics_assist_info_r12_c::setup_s_& naics_assist_info_r12_c::set_setup() +{ + set(types::setup); + return c; +} void naics_assist_info_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -7222,6 +7683,15 @@ void neigh_cells_crs_info_r11_c::set(types::options e) { type_ = e; } +void neigh_cells_crs_info_r11_c::set_release() +{ + set(types::release); +} +crs_assist_info_list_r11_l& neigh_cells_crs_info_r11_c::set_setup() +{ + set(types::setup); + return c; +} void neigh_cells_crs_info_r11_c::to_json(json_writer& j) const { j.start_obj(); @@ -7278,6 +7748,15 @@ void neigh_cells_crs_info_r13_c::set(types::options e) { type_ = e; } +void neigh_cells_crs_info_r13_c::set_release() +{ + set(types::release); +} +crs_assist_info_list_r13_l& neigh_cells_crs_info_r13_c::set_setup() +{ + set(types::setup); + return c; +} void neigh_cells_crs_info_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -7338,6 +7817,15 @@ void neigh_cells_crs_info_r15_c::set(types::options e) { type_ = e; } +void neigh_cells_crs_info_r15_c::set_release() +{ + set(types::release); +} +crs_assist_info_list_r15_l& neigh_cells_crs_info_r15_c::set_setup() +{ + set(types::setup); + return c; +} void neigh_cells_crs_info_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -7398,6 +7886,15 @@ void rlf_timers_and_consts_r13_c::set(types::options e) { type_ = e; } +void rlf_timers_and_consts_r13_c::set_release() +{ + set(types::release); +} +rlf_timers_and_consts_r13_c::setup_s_& rlf_timers_and_consts_r13_c::set_setup() +{ + set(types::setup); + return c; +} void rlf_timers_and_consts_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -7499,7 +7996,7 @@ void rlf_timers_and_consts_r13_c::setup_s_::to_json(json_writer& j) const j.end_obj(); } -std::string rlf_timers_and_consts_r13_c::setup_s_::t301_v1310_opts::to_string() const +const char* rlf_timers_and_consts_r13_c::setup_s_::t301_v1310_opts::to_string() const { static const char* options[] = {"ms2500", "ms3000", "ms3500", "ms4000", "ms5000", "ms6000", "ms8000", "ms10000"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_r13_c::setup_s_::t301_v1310_e_"); @@ -7510,7 +8007,7 @@ uint16_t rlf_timers_and_consts_r13_c::setup_s_::t301_v1310_opts::to_number() con return map_enum_number(options, 8, value, "rlf_timers_and_consts_r13_c::setup_s_::t301_v1310_e_"); } -std::string rlf_timers_and_consts_r13_c::setup_s_::t310_v1330_opts::to_string() const +const char* rlf_timers_and_consts_r13_c::setup_s_::t310_v1330_opts::to_string() const { static const char* options[] = {"ms4000", "ms6000"}; return convert_enum_idx(options, 2, value, "rlf_timers_and_consts_r13_c::setup_s_::t310_v1330_e_"); @@ -7526,6 +8023,15 @@ void rlf_timers_and_consts_r9_c::set(types::options e) { type_ = e; } +void rlf_timers_and_consts_r9_c::set_release() +{ + set(types::release); +} +rlf_timers_and_consts_r9_c::setup_s_& rlf_timers_and_consts_r9_c::set_setup() +{ + set(types::setup); + return c; +} void rlf_timers_and_consts_r9_c::to_json(json_writer& j) const { j.start_obj(); @@ -7590,7 +8096,7 @@ SRSASN_CODE rlf_timers_and_consts_r9_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlf_timers_and_consts_r9_c::setup_s_::t301_r9_opts::to_string() const +const char* rlf_timers_and_consts_r9_c::setup_s_::t301_r9_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_r9_c::setup_s_::t301_r9_e_"); @@ -7601,7 +8107,7 @@ uint16_t rlf_timers_and_consts_r9_c::setup_s_::t301_r9_opts::to_number() const return map_enum_number(options, 8, value, "rlf_timers_and_consts_r9_c::setup_s_::t301_r9_e_"); } -std::string rlf_timers_and_consts_r9_c::setup_s_::t310_r9_opts::to_string() const +const char* rlf_timers_and_consts_r9_c::setup_s_::t310_r9_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms500", "ms1000", "ms2000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_r9_c::setup_s_::t310_r9_e_"); @@ -7612,7 +8118,7 @@ uint16_t rlf_timers_and_consts_r9_c::setup_s_::t310_r9_opts::to_number() const return map_enum_number(options, 7, value, "rlf_timers_and_consts_r9_c::setup_s_::t310_r9_e_"); } -std::string rlf_timers_and_consts_r9_c::setup_s_::n310_r9_opts::to_string() const +const char* rlf_timers_and_consts_r9_c::setup_s_::n310_r9_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_r9_c::setup_s_::n310_r9_e_"); @@ -7623,7 +8129,7 @@ uint8_t rlf_timers_and_consts_r9_c::setup_s_::n310_r9_opts::to_number() const return map_enum_number(options, 8, value, "rlf_timers_and_consts_r9_c::setup_s_::n310_r9_e_"); } -std::string rlf_timers_and_consts_r9_c::setup_s_::t311_r9_opts::to_string() const +const char* rlf_timers_and_consts_r9_c::setup_s_::t311_r9_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_r9_c::setup_s_::t311_r9_e_"); @@ -7634,7 +8140,7 @@ uint16_t rlf_timers_and_consts_r9_c::setup_s_::t311_r9_opts::to_number() const return map_enum_number(options, 7, value, "rlf_timers_and_consts_r9_c::setup_s_::t311_r9_e_"); } -std::string rlf_timers_and_consts_r9_c::setup_s_::n311_r9_opts::to_string() const +const char* rlf_timers_and_consts_r9_c::setup_s_::n311_r9_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_r9_c::setup_s_::n311_r9_e_"); @@ -8384,6 +8890,15 @@ void rr_cfg_ded_s::mac_main_cfg_c_::set(types::options e) { type_ = e; } +mac_main_cfg_s& rr_cfg_ded_s::mac_main_cfg_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void rr_cfg_ded_s::mac_main_cfg_c_::set_default_value() +{ + set(types::default_value); +} void rr_cfg_ded_s::mac_main_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8436,6 +8951,15 @@ void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::set(types::options e) { type_ = e; } +void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::set_release() +{ + set(types::release); +} +rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_& rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8488,6 +9012,16 @@ void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::set(types::options e) { type_ = e; } +void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::set_crs_intf_mitig_enabled() +{ + set(types::crs_intf_mitig_enabled); +} +rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_e_& +rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::set_crs_intf_mitig_num_prbs() +{ + set(types::crs_intf_mitig_num_prbs); + return c; +} void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8535,7 +9069,7 @@ SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_opts::to_string() const +const char* rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_opts::to_string() const { static const char* options[] = {"n6", "n24"}; return convert_enum_idx( @@ -8549,7 +9083,7 @@ uint8_t rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_pr } // PDCCH-CandidateReductionValue-r14 ::= ENUMERATED -std::string pdcch_candidate_reduction_value_r14_opts::to_string() const +const char* pdcch_candidate_reduction_value_r14_opts::to_string() const { static const char* options[] = {"n0", "n50", "n100", "n150"}; return convert_enum_idx(options, 4, value, "pdcch_candidate_reduction_value_r14_e"); @@ -8565,6 +9099,15 @@ void pdcch_candidate_reductions_laa_ul_r14_c::set(types::options e) { type_ = e; } +void pdcch_candidate_reductions_laa_ul_r14_c::set_release() +{ + set(types::release); +} +pdcch_candidate_reductions_laa_ul_r14_c::setup_s_& pdcch_candidate_reductions_laa_ul_r14_c::set_setup() +{ + set(types::setup); + return c; +} void pdcch_candidate_reductions_laa_ul_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -8640,6 +9183,15 @@ void aul_cfg_r15_c::set(types::options e) { type_ = e; } +void aul_cfg_r15_c::set_release() +{ + set(types::release); +} +aul_cfg_r15_c::setup_s_& aul_cfg_r15_c::set_setup() +{ + set(types::setup); + return c; +} void aul_cfg_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8737,7 +9289,7 @@ bool aul_cfg_r15_c::operator==(const aul_cfg_r15_c& other) const c.contention_win_size_timer_r15 == other.c.contention_win_size_timer_r15; } -std::string aul_cfg_r15_c::setup_s_::tx_mode_ul_aul_r15_opts::to_string() const +const char* aul_cfg_r15_c::setup_s_::tx_mode_ul_aul_r15_opts::to_string() const { static const char* options[] = {"tm1", "tm2"}; return convert_enum_idx(options, 2, value, "aul_cfg_r15_c::setup_s_::tx_mode_ul_aul_r15_e_"); @@ -8748,7 +9300,7 @@ uint8_t aul_cfg_r15_c::setup_s_::tx_mode_ul_aul_r15_opts::to_number() const return map_enum_number(options, 2, value, "aul_cfg_r15_c::setup_s_::tx_mode_ul_aul_r15_e_"); } -std::string aul_cfg_r15_c::setup_s_::aul_start_partial_bw_inside_mcot_r15_opts::to_string() const +const char* aul_cfg_r15_c::setup_s_::aul_start_partial_bw_inside_mcot_r15_opts::to_string() const { static const char* options[] = {"o34", "o43", "o52", "o61", "oOS1"}; return convert_enum_idx(options, 5, value, "aul_cfg_r15_c::setup_s_::aul_start_partial_bw_inside_mcot_r15_e_"); @@ -8759,7 +9311,7 @@ uint8_t aul_cfg_r15_c::setup_s_::aul_start_partial_bw_inside_mcot_r15_opts::to_n return map_enum_number(options, 5, value, "aul_cfg_r15_c::setup_s_::aul_start_partial_bw_inside_mcot_r15_e_"); } -std::string aul_cfg_r15_c::setup_s_::aul_start_partial_bw_outside_mcot_r15_opts::to_string() const +const char* aul_cfg_r15_c::setup_s_::aul_start_partial_bw_outside_mcot_r15_opts::to_string() const { static const char* options[] = {"o16", "o25", "o34", "o43", "o52", "o61", "oOS1"}; return convert_enum_idx(options, 7, value, "aul_cfg_r15_c::setup_s_::aul_start_partial_bw_outside_mcot_r15_e_"); @@ -8770,7 +9322,7 @@ uint8_t aul_cfg_r15_c::setup_s_::aul_start_partial_bw_outside_mcot_r15_opts::to_ return map_enum_number(options, 7, value, "aul_cfg_r15_c::setup_s_::aul_start_partial_bw_outside_mcot_r15_e_"); } -std::string aul_cfg_r15_c::setup_s_::aul_retx_timer_r15_opts::to_string() const +const char* aul_cfg_r15_c::setup_s_::aul_retx_timer_r15_opts::to_string() const { static const char* options[] = {"psf4", "psf5", @@ -8797,7 +9349,7 @@ uint16_t aul_cfg_r15_c::setup_s_::aul_retx_timer_r15_opts::to_number() const return map_enum_number(options, 17, value, "aul_cfg_r15_c::setup_s_::aul_retx_timer_r15_e_"); } -std::string aul_cfg_r15_c::setup_s_::contention_win_size_timer_r15_opts::to_string() const +const char* aul_cfg_r15_c::setup_s_::contention_win_size_timer_r15_opts::to_string() const { static const char* options[] = {"n0", "n5", "n10"}; return convert_enum_idx(options, 3, value, "aul_cfg_r15_c::setup_s_::contention_win_size_timer_r15_e_"); @@ -8813,6 +9365,15 @@ void cqi_report_periodic_scell_r15_c::set(types::options e) { type_ = e; } +void cqi_report_periodic_scell_r15_c::set_release() +{ + set(types::release); +} +cqi_report_periodic_scell_r15_c::setup_s_& cqi_report_periodic_scell_r15_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_scell_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -8914,6 +9475,16 @@ void cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::s { type_ = e; } +void cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::set_release() +{ + set(types::release); +} +cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::setup_s_& +cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void cqi_report_periodic_scell_r15_c::setup_s_::csi_sf_pattern_dormant_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9045,6 +9616,18 @@ cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::operat return *this; } +cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::wideband_cqi_r15_s_& +cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::set_wideband_cqi_r15() +{ + set(types::wideband_cqi_r15); + return c.get(); +} +cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::subband_cqi_r15_s_& +cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::set_subband_cqi_r15() +{ + set(types::subband_cqi_r15); + return c.get(); +} void cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9134,7 +9717,7 @@ bool cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::o return true; } -std::string cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::wideband_cqi_r15_s_:: +const char* cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::wideband_cqi_r15_s_:: csi_report_mode_r15_opts::to_string() const { static const char* options[] = {"submode1", "submode2"}; @@ -9155,7 +9738,7 @@ uint8_t cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_ "::csi_report_mode_r15_e_"); } -std::string cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::subband_cqi_r15_s_:: +const char* cqi_report_periodic_scell_r15_c::setup_s_::cqi_format_ind_dormant_r15_c_::subband_cqi_r15_s_:: periodicity_factor_r15_opts::to_string() const { static const char* options[] = {"n2", "n4"}; @@ -9247,6 +9830,16 @@ lbt_cfg_r14_c& lbt_cfg_r14_c::operator=(const lbt_cfg_r14_c& other) return *this; } +int8_t& lbt_cfg_r14_c::set_max_energy_detection_thres_r14() +{ + set(types::max_energy_detection_thres_r14); + return c.get(); +} +int8_t& lbt_cfg_r14_c::set_energy_detection_thres_offset_r14() +{ + set(types::energy_detection_thres_offset_r14); + return c.get(); +} void lbt_cfg_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -9434,7 +10027,7 @@ bool pdcch_cfg_laa_r14_s::operator==(const pdcch_cfg_laa_r14_s& other) const pdcch_candidate_reductions_format4_b_r14 == other.pdcch_candidate_reductions_format4_b_r14); } -std::string pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format0_b_r14_opts::to_string() const +const char* pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format0_b_r14_opts::to_string() const { static const char* options[] = {"sf2", "sf3", "sf4"}; return convert_enum_idx(options, 3, value, "pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format0_b_r14_e_"); @@ -9445,7 +10038,7 @@ uint8_t pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format0_b_r14_opts::to_number() c return map_enum_number(options, 3, value, "pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format0_b_r14_e_"); } -std::string pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format4_b_r14_opts::to_string() const +const char* pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format4_b_r14_opts::to_string() const { static const char* options[] = {"sf2", "sf3", "sf4"}; return convert_enum_idx(options, 3, value, "pdcch_cfg_laa_r14_s::max_nof_sched_sfs_format4_b_r14_e_"); @@ -9492,6 +10085,15 @@ void srs_ul_cfg_ded_aperiodic_v1430_c::set(types::options e) { type_ = e; } +void srs_ul_cfg_ded_aperiodic_v1430_c::set_release() +{ + set(types::release); +} +srs_ul_cfg_ded_aperiodic_v1430_c::setup_s_& srs_ul_cfg_ded_aperiodic_v1430_c::set_setup() +{ + set(types::setup); + return c; +} void srs_ul_cfg_ded_aperiodic_v1430_c::to_json(json_writer& j) const { j.start_obj(); @@ -9667,7 +10269,7 @@ bool cqi_report_cfg_scell_r15_s::operator==(const cqi_report_cfg_scell_r15_s& ot alt_cqi_table_minus1024_qam_r15 == other.alt_cqi_table_minus1024_qam_r15); } -std::string cqi_report_cfg_scell_r15_s::alt_cqi_table_minus1024_qam_r15_opts::to_string() const +const char* cqi_report_cfg_scell_r15_s::alt_cqi_table_minus1024_qam_r15_opts::to_string() const { static const char* options[] = {"allSubframes", "csi-SubframeSet1", "csi-SubframeSet2", "spare1"}; return convert_enum_idx(options, 4, value, "cqi_report_cfg_scell_r15_s::alt_cqi_table_minus1024_qam_r15_e_"); @@ -9690,6 +10292,15 @@ void cqi_short_cfg_scell_r15_c::set(types::options e) { type_ = e; } +void cqi_short_cfg_scell_r15_c::set_release() +{ + set(types::release); +} +cqi_short_cfg_scell_r15_c::setup_s_& cqi_short_cfg_scell_r15_c::set_setup() +{ + set(types::setup); + return c; +} void cqi_short_cfg_scell_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -9841,6 +10452,18 @@ cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::operator=( return *this; } +cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::wideband_cqi_short_r15_s_& +cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::set_wideband_cqi_short_r15() +{ + set(types::wideband_cqi_short_r15); + return c.get(); +} +cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::subband_cqi_short_r15_s_& +cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::set_subband_cqi_short_r15() +{ + set(types::subband_cqi_short_r15); + return c.get(); +} void cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9931,7 +10554,7 @@ bool cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::operator= return true; } -std::string cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::wideband_cqi_short_r15_s_:: +const char* cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::wideband_cqi_short_r15_s_:: csi_report_mode_short_r15_opts::to_string() const { static const char* options[] = {"submode1", "submode2"}; @@ -9952,7 +10575,7 @@ uint8_t cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::wideba "csi_report_mode_short_r15_e_"); } -std::string cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::subband_cqi_short_r15_s_:: +const char* cqi_short_cfg_scell_r15_c::setup_s_::cqi_format_ind_short_r15_c_::subband_cqi_short_r15_s_:: periodicity_factor_r15_opts::to_string() const { static const char* options[] = {"n2", "n4"}; @@ -10067,6 +10690,18 @@ cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_& cross_carrier_sched_cfg_r return *this; } +cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::own_r10_s_& +cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::set_own_r10() +{ + set(types::own_r10); + return c.get(); +} +cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::other_r10_s_& +cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::set_other_r10() +{ + set(types::other_r10); + return c.get(); +} void cross_carrier_sched_cfg_r10_s::sched_cell_info_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10236,6 +10871,18 @@ cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_& cross_carrier_sched_cfg_r return *this; } +cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::own_r13_s_& +cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::set_own_r13() +{ + set(types::own_r13); + return c.get(); +} +cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::other_r13_s_& +cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::set_other_r13() +{ + set(types::other_r13); + return c.get(); +} void cross_carrier_sched_cfg_r13_s::sched_cell_info_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10342,7 +10989,7 @@ bool laa_scell_cfg_r13_s::operator==(const laa_scell_cfg_r13_s& other) const return sf_start_position_r13 == other.sf_start_position_r13 and laa_scell_sf_cfg_r13 == other.laa_scell_sf_cfg_r13; } -std::string laa_scell_cfg_r13_s::sf_start_position_r13_opts::to_string() const +const char* laa_scell_cfg_r13_s::sf_start_position_r13_opts::to_string() const { static const char* options[] = {"s0", "s07"}; return convert_enum_idx(options, 2, value, "laa_scell_cfg_r13_s::sf_start_position_r13_e_"); @@ -10352,7 +10999,7 @@ float laa_scell_cfg_r13_s::sf_start_position_r13_opts::to_number() const static const float options[] = {0.0, 0.7}; return map_enum_number(options, 2, value, "laa_scell_cfg_r13_s::sf_start_position_r13_e_"); } -std::string laa_scell_cfg_r13_s::sf_start_position_r13_opts::to_number_string() const +const char* laa_scell_cfg_r13_s::sf_start_position_r13_opts::to_number_string() const { static const char* options[] = {"0", "0.7"}; return convert_enum_idx(options, 2, value, "laa_scell_cfg_r13_s::sf_start_position_r13_e_"); @@ -10448,6 +11095,16 @@ void laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::set(types::option { type_ = e; } +void laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::set_release() +{ + set(types::release); +} +laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::setup_s_& +laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void laa_scell_cfg_v1430_s::cross_carrier_sched_cfg_ul_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10635,6 +11292,15 @@ void pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::set(types::options e) { type_ = e; } +void pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::set_release() +{ + set(types::release); +} +pucch_format3_conf_r13_s& pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v1370_s::pucch_format_v1370_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10784,6 +11450,16 @@ void pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::set(types::options e) { type_ = e; } +void pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::set_release() +{ + set(types::release); +} +pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::setup_s_& +pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void pusch_cfg_ded_scell_v1530_s::uci_on_pusch_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10843,6 +11519,15 @@ void sched_request_cfg_scell_r13_c::set(types::options e) { type_ = e; } +void sched_request_cfg_scell_r13_c::set_release() +{ + set(types::release); +} +sched_request_cfg_scell_r13_c::setup_s_& sched_request_cfg_scell_r13_c::set_setup() +{ + set(types::setup); + return c; +} void sched_request_cfg_scell_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -10917,7 +11602,7 @@ bool sched_request_cfg_scell_r13_c::operator==(const sched_request_cfg_scell_r13 c.sr_cfg_idx_r13 == other.c.sr_cfg_idx_r13 and c.dsr_trans_max_r13 == other.c.dsr_trans_max_r13; } -std::string sched_request_cfg_scell_r13_c::setup_s_::dsr_trans_max_r13_opts::to_string() const +const char* sched_request_cfg_scell_r13_c::setup_s_::dsr_trans_max_r13_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sched_request_cfg_scell_r13_c::setup_s_::dsr_trans_max_r13_e_"); @@ -11021,6 +11706,15 @@ void tpc_pdcch_cfg_scell_r13_c::set(types::options e) { type_ = e; } +void tpc_pdcch_cfg_scell_r13_c::set_release() +{ + set(types::release); +} +tpc_pdcch_cfg_scell_r13_c::setup_s_& tpc_pdcch_cfg_scell_r13_c::set_setup() +{ + set(types::setup); + return c; +} void tpc_pdcch_cfg_scell_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -11194,7 +11888,7 @@ bool ul_pwr_ctrl_ded_scell_r10_s::operator==(const ul_pwr_ctrl_ded_scell_r10_s& pathloss_ref_linking_r10 == other.pathloss_ref_linking_r10; } -std::string ul_pwr_ctrl_ded_scell_r10_s::delta_mcs_enabled_r10_opts::to_string() const +const char* ul_pwr_ctrl_ded_scell_r10_s::delta_mcs_enabled_r10_opts::to_string() const { static const char* options[] = {"en0", "en1"}; return convert_enum_idx(options, 2, value, "ul_pwr_ctrl_ded_scell_r10_s::delta_mcs_enabled_r10_e_"); @@ -11205,7 +11899,7 @@ uint8_t ul_pwr_ctrl_ded_scell_r10_s::delta_mcs_enabled_r10_opts::to_number() con return map_enum_number(options, 2, value, "ul_pwr_ctrl_ded_scell_r10_s::delta_mcs_enabled_r10_e_"); } -std::string ul_pwr_ctrl_ded_scell_r10_s::pathloss_ref_linking_r10_opts::to_string() const +const char* ul_pwr_ctrl_ded_scell_r10_s::pathloss_ref_linking_r10_opts::to_string() const { static const char* options[] = {"pCell", "sCell"}; return convert_enum_idx(options, 2, value, "ul_pwr_ctrl_ded_scell_r10_s::pathloss_ref_linking_r10_e_"); @@ -12606,6 +13300,15 @@ void phys_cfg_ded_scell_r10_s::pucch_scell_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_scell_r10_s::pucch_scell_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_r10_s::pucch_scell_c_::setup_s_& phys_cfg_ded_scell_r10_s::pucch_scell_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_r10_s::pucch_scell_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12731,6 +13434,15 @@ void phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_& phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12798,7 +13510,7 @@ bool phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::operator==(const must_cfg_r14_c_ (not c.p_a_must_r14_present or c.p_a_must_r14 == other.c.p_a_must_r14); } -std::string phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_string() const +const char* phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_string() const { static const char* options[] = {"l1", "l3"}; return convert_enum_idx(options, 2, value, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::k_max_r14_e_"); @@ -12809,7 +13521,7 @@ uint8_t phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::k_max_r14_opts::to_ return map_enum_number(options, 2, value, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::k_max_r14_e_"); } -std::string phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_string() const +const char* phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", "dB-3", "dB-1dot77", "dB0", "dB1", "dB2", "dB3"}; return convert_enum_idx(options, 8, value, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); @@ -12819,7 +13531,7 @@ float phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to static const float options[] = {-6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 2.0, 3.0}; return map_enum_number(options, 8, value, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); } -std::string phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_number_string() const +const char* phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_opts::to_number_string() const { static const char* options[] = {"-6", "-4.77", "-3", "-1.77", "0", "1", "2", "3"}; return convert_enum_idx(options, 8, value, "phys_cfg_ded_scell_r10_s::must_cfg_r14_c_::setup_s_::p_a_must_r14_e_"); @@ -12829,6 +13541,16 @@ void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_& +phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12951,6 +13673,16 @@ phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::operator=( return *this; } +cfi_cfg_r15_s& phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::set_cfi_cfg_r15() +{ + set(types::cfi_cfg_r15); + return c.get(); +} +cfi_pattern_cfg_r15_s& phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::set_cfi_pattern_cfg_r15() +{ + set(types::cfi_pattern_cfg_r15); + return c.get(); +} void phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13022,6 +13754,16 @@ void phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::set(types::options { type_ = e; } +void phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_& +phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13196,7 +13938,7 @@ bool phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::operator==( c.mcs_restrict_slot_subslot_pdsch_repeats_r15 == other.c.mcs_restrict_slot_subslot_pdsch_repeats_r15); } -std::string +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n4", "n6"}; @@ -13217,7 +13959,7 @@ phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pd "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_sf_pdsch_repeats_r15_e_"); } -std::string phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_:: +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_:: max_num_slot_subslot_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n4", "n6"}; @@ -13238,7 +13980,7 @@ uint8_t phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_n "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::max_num_slot_subslot_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"dlrvseq1", "dlrvseq2"}; @@ -13259,7 +14001,7 @@ phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_r "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_sf_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot_pdsch_repeats_r15_opts::to_string() const { @@ -13282,7 +14024,7 @@ phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::rv_slotsublot_pdsch_repeats_r15_e_"); } -std::string +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_sf_pdsch_repeats_r15_opts::to_string() const { @@ -13305,7 +14047,7 @@ phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_ "phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_::mcs_restrict_sf_pdsch_repeats_r15_e_"); } -std::string phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_:: +const char* phys_cfg_ded_scell_r10_s::blind_pdsch_repeat_cfg_r15_c_::setup_s_:: mcs_restrict_slot_subslot_pdsch_repeats_r15_opts::to_string() const { static const char* options[] = {"n0", "n1"}; @@ -13355,6 +14097,16 @@ void phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::setup_s_& +phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_v1370_s::pucch_scell_v1370_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13454,7 +14206,7 @@ bool ant_info_ded_v10i0_s::operator==(const ant_info_ded_v10i0_s& other) const (not max_layers_mimo_r10_present or max_layers_mimo_r10 == other.max_layers_mimo_r10); } -std::string ant_info_ded_v10i0_s::max_layers_mimo_r10_opts::to_string() const +const char* ant_info_ded_v10i0_s::max_layers_mimo_r10_opts::to_string() const { static const char* options[] = {"twoLayers", "fourLayers", "eightLayers"}; return convert_enum_idx(options, 3, value, "ant_info_ded_v10i0_s::max_layers_mimo_r10_e_"); @@ -13779,6 +14531,16 @@ void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::set(types: { type_ = e; } +void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::set_release() +{ + set(types::release); +} +pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::setup_s_& +pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::set_setup() +{ + set(types::setup); + return c; +} void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14028,6 +14790,15 @@ void drb_to_add_mod_scg_r12_s::drb_type_r12_c_::set(types::options e) { type_ = e; } +void drb_to_add_mod_scg_r12_s::drb_type_r12_c_::set_split_r12() +{ + set(types::split_r12); +} +drb_to_add_mod_scg_r12_s::drb_type_r12_c_::scg_r12_s_& drb_to_add_mod_scg_r12_s::drb_type_r12_c_::set_scg_r12() +{ + set(types::scg_r12); + return c; +} void drb_to_add_mod_scg_r12_s::drb_type_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14147,6 +14918,15 @@ void rlf_timers_and_consts_scg_r12_c::set(types::options e) { type_ = e; } +void rlf_timers_and_consts_scg_r12_c::set_release() +{ + set(types::release); +} +rlf_timers_and_consts_scg_r12_c::setup_s_& rlf_timers_and_consts_scg_r12_c::set_setup() +{ + set(types::setup); + return c; +} void rlf_timers_and_consts_scg_r12_c::to_json(json_writer& j) const { j.start_obj(); @@ -14205,7 +14985,7 @@ SRSASN_CODE rlf_timers_and_consts_scg_r12_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlf_timers_and_consts_scg_r12_c::setup_s_::t313_r12_opts::to_string() const +const char* rlf_timers_and_consts_scg_r12_c::setup_s_::t313_r12_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms500", "ms1000", "ms2000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::t313_r12_e_"); @@ -14216,7 +14996,7 @@ uint16_t rlf_timers_and_consts_scg_r12_c::setup_s_::t313_r12_opts::to_number() c return map_enum_number(options, 7, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::t313_r12_e_"); } -std::string rlf_timers_and_consts_scg_r12_c::setup_s_::n313_r12_opts::to_string() const +const char* rlf_timers_and_consts_scg_r12_c::setup_s_::n313_r12_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::n313_r12_e_"); @@ -14227,7 +15007,7 @@ uint8_t rlf_timers_and_consts_scg_r12_c::setup_s_::n313_r12_opts::to_number() co return map_enum_number(options, 8, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::n313_r12_e_"); } -std::string rlf_timers_and_consts_scg_r12_c::setup_s_::n314_r12_opts::to_string() const +const char* rlf_timers_and_consts_scg_r12_c::setup_s_::n314_r12_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::n314_r12_e_"); @@ -14418,7 +15198,7 @@ bool scell_to_add_mod_r10_s::operator==(const scell_to_add_mod_r10_s& other) con (not scell_state_r15_present or scell_state_r15 == other.scell_state_r15))); } -std::string scell_to_add_mod_r10_s::scell_state_r15_opts::to_string() const +const char* scell_to_add_mod_r10_s::scell_state_r15_opts::to_string() const { static const char* options[] = {"activated", "dormant"}; return convert_enum_idx(options, 2, value, "scell_to_add_mod_r10_s::scell_state_r15_e_"); @@ -14519,7 +15299,7 @@ void scell_to_add_mod_ext_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string scell_to_add_mod_ext_v1430_s::scell_state_r15_opts::to_string() const +const char* scell_to_add_mod_ext_v1430_s::scell_state_r15_opts::to_string() const { static const char* options[] = {"activated", "dormant"}; return convert_enum_idx(options, 2, value, "scell_to_add_mod_ext_v1430_s::scell_state_r15_e_"); @@ -14718,6 +15498,16 @@ void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::set(types::options e) { type_ = e; } +void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::set_release() +{ + set(types::release); +} +phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::setup_s_& +phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::set_setup() +{ + set(types::setup); + return c; +} void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/security.cc b/lib/src/asn1/rrc/security.cc index 82290b600..ce556ccd7 100644 --- a/lib/src/asn1/rrc/security.cc +++ b/lib/src/asn1/rrc/security.cc @@ -52,7 +52,7 @@ void security_algorithm_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string security_algorithm_cfg_s::integrity_prot_algorithm_opts::to_string() const +const char* security_algorithm_cfg_s::integrity_prot_algorithm_opts::to_string() const { static const char* options[] = {"eia0-v920", "eia1", "eia2", "eia3-v1130", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "security_algorithm_cfg_s::integrity_prot_algorithm_e_"); @@ -167,6 +167,24 @@ security_cfg_ho_v1530_s::handov_type_v1530_c_::operator=(const security_cfg_ho_v return *this; } +security_cfg_ho_v1530_s::handov_type_v1530_c_::intra5_gc_r15_s_& +security_cfg_ho_v1530_s::handov_type_v1530_c_::set_intra5_gc_r15() +{ + set(types::intra5_gc_r15); + return c.get(); +} +security_cfg_ho_v1530_s::handov_type_v1530_c_::fivegc_to_epc_r15_s_& +security_cfg_ho_v1530_s::handov_type_v1530_c_::set_fivegc_to_epc_r15() +{ + set(types::fivegc_to_epc_r15); + return c.get(); +} +security_cfg_ho_v1530_s::handov_type_v1530_c_::epc_to5_gc_r15_s_& +security_cfg_ho_v1530_s::handov_type_v1530_c_::set_epc_to5_gc_r15() +{ + set(types::epc_to5_gc_r15); + return c.get(); +} void security_cfg_ho_v1530_s::handov_type_v1530_c_::to_json(json_writer& j) const { j.start_obj(); @@ -363,6 +381,16 @@ security_cfg_ho_s::handov_type_c_::operator=(const security_cfg_ho_s::handov_typ return *this; } +security_cfg_ho_s::handov_type_c_::intra_lte_s_& security_cfg_ho_s::handov_type_c_::set_intra_lte() +{ + set(types::intra_lte); + return c.get(); +} +security_cfg_ho_s::handov_type_c_::inter_rat_s_& security_cfg_ho_s::handov_type_c_::set_inter_rat() +{ + set(types::inter_rat); + return c.get(); +} void security_cfg_ho_s::handov_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -561,6 +589,15 @@ void security_mode_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_cmd_s::crit_exts_c_::c1_c_& security_mode_cmd_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void security_mode_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -613,6 +650,23 @@ void security_mode_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +security_mode_cmd_r8_ies_s& security_mode_cmd_s::crit_exts_c_::c1_c_::set_security_mode_cmd_r8() +{ + set(types::security_mode_cmd_r8); + return c; +} +void security_mode_cmd_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void security_mode_cmd_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void security_mode_cmd_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void security_mode_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -837,6 +891,15 @@ void security_mode_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_complete_r8_ies_s& security_mode_complete_s::crit_exts_c_::set_security_mode_complete_r8() +{ + set(types::security_mode_complete_r8); + return c; +} +void security_mode_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -913,6 +976,15 @@ void security_mode_fail_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_fail_r8_ies_s& security_mode_fail_s::crit_exts_c_::set_security_mode_fail_r8() +{ + set(types::security_mode_fail_r8); + return c; +} +void security_mode_fail_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/si.cc b/lib/src/asn1/rrc/si.cc index 7acb43e28..0ccdce4dc 100644 --- a/lib/src/asn1/rrc/si.cc +++ b/lib/src/asn1/rrc/si.cc @@ -65,7 +65,7 @@ void mib_s::to_json(json_writer& j) const j.end_obj(); } -std::string mib_s::dl_bw_opts::to_string() const +const char* mib_s::dl_bw_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "mib_s::dl_bw_e_"); @@ -98,7 +98,7 @@ void gnss_id_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string gnss_id_r15_s::gnss_id_r15_opts::to_string() const +const char* gnss_id_r15_s::gnss_id_r15_opts::to_string() const { static const char* options[] = {"gps", "sbas", "qzss", "galileo", "glonass", "bds"}; return convert_enum_idx(options, 6, value, "gnss_id_r15_s::gnss_id_r15_e_"); @@ -126,7 +126,7 @@ void sbas_id_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string sbas_id_r15_s::sbas_id_r15_opts::to_string() const +const char* sbas_id_r15_s::sbas_id_r15_opts::to_string() const { static const char* options[] = {"waas", "egnos", "msas", "gagan"}; return convert_enum_idx(options, 4, value, "sbas_id_r15_s::sbas_id_r15_e_"); @@ -185,7 +185,7 @@ void pos_sib_type_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string pos_sib_type_r15_s::pos_sib_type_r15_opts::to_string() const +const char* pos_sib_type_r15_s::pos_sib_type_r15_opts::to_string() const { static const char* options[] = { "posSibType1-1", "posSibType1-2", "posSibType1-3", "posSibType1-4", "posSibType1-5", "posSibType1-6", @@ -216,7 +216,7 @@ void plmn_id_info_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string plmn_id_info_v1530_s::cell_reserved_for_oper_crs_r15_opts::to_string() const +const char* plmn_id_info_v1530_s::cell_reserved_for_oper_crs_r15_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_v1530_s::cell_reserved_for_oper_crs_r15_e_"); @@ -249,7 +249,7 @@ void pos_sched_info_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string pos_sched_info_r15_s::pos_si_periodicity_r15_opts::to_string() const +const char* pos_sched_info_r15_s::pos_si_periodicity_r15_opts::to_string() const { static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; return convert_enum_idx(options, 7, value, "pos_sched_info_r15_s::pos_si_periodicity_r15_e_"); @@ -280,7 +280,7 @@ void cell_sel_info_ce_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_sel_info_ce_v1530_s::pwr_class14dbm_offset_r15_opts::to_string() const +const char* cell_sel_info_ce_v1530_s::pwr_class14dbm_offset_r15_opts::to_string() const { static const char* options[] = {"dB-6", "dB-3", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 6, value, "cell_sel_info_ce_v1530_s::pwr_class14dbm_offset_r15_e_"); @@ -454,6 +454,16 @@ void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::set(types::options e) { type_ = e; } +void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::set_crs_intf_mitig_enabled() +{ + set(types::crs_intf_mitig_enabled); +} +sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_e_& +sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::set_crs_intf_mitig_num_prbs() +{ + set(types::crs_intf_mitig_num_prbs); + return c; +} void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -501,7 +511,7 @@ SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::unpack(cbit_ref& b return SRSASN_SUCCESS; } -std::string sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_opts::to_string() const +const char* sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_opts::to_string() const { static const char* options[] = {"n6", "n24"}; return convert_enum_idx( @@ -514,13 +524,13 @@ uint8_t sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prb options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_e_"); } -std::string sib_type1_v1530_ies_s::cell_barred_crs_r15_opts::to_string() const +const char* sib_type1_v1530_ies_s::cell_barred_crs_r15_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; return convert_enum_idx(options, 2, value, "sib_type1_v1530_ies_s::cell_barred_crs_r15_e_"); } -std::string +const char* sib_type1_v1530_ies_s::cell_access_related_info_minus5_gc_r15_s_::cell_barred_minus5_gc_r15_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; @@ -531,7 +541,7 @@ sib_type1_v1530_ies_s::cell_access_related_info_minus5_gc_r15_s_::cell_barred_mi "sib_type1_v1530_ies_s::cell_access_related_info_minus5_gc_r15_s_::cell_barred_minus5_gc_r15_e_"); } -std::string +const char* sib_type1_v1530_ies_s::cell_access_related_info_minus5_gc_r15_s_::cell_barred_minus5_gc_crs_r15_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; @@ -797,7 +807,7 @@ void sched_info_br_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sched_info_br_r13_s::si_tbs_r13_opts::to_string() const +const char* sched_info_br_r13_s::si_tbs_r13_opts::to_string() const { static const char* options[] = {"b152", "b208", "b256", "b328", "b408", "b504", "b600", "b712", "b808", "b936"}; return convert_enum_idx(options, 10, value, "sched_info_br_r13_s::si_tbs_r13_e_"); @@ -890,7 +900,7 @@ void barr_per_acdc_category_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_opts::to_string() const +const char* barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_opts::to_string() const { static const char* options[] = { "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; @@ -903,7 +913,7 @@ float barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_opt return map_enum_number( options, 16, value, "barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_e_"); } -std::string barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_opts::to_number_string() const +const char* barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_opts::to_number_string() const { static const char* options[] = { "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; @@ -911,7 +921,7 @@ std::string barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r options, 16, value, "barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_factor_r13_e_"); } -std::string barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_time_r13_opts::to_string() const +const char* barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_time_r13_opts::to_string() const { static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; return convert_enum_idx(options, 8, value, "barr_per_acdc_category_r13_s::acdc_barr_cfg_r13_s_::ac_barr_time_r13_e_"); @@ -1043,7 +1053,7 @@ void sib_type1_v1320_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::mpdcch_pdsch_hop_nb_r13_opts::to_string() const +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::mpdcch_pdsch_hop_nb_r13_opts::to_string() const { static const char* options[] = {"nb2", "nb4"}; return convert_enum_idx( @@ -1105,6 +1115,18 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ return *this; } +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_e_& +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::interv_tdd_r13_e_& +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::to_json( json_writer& j) const { @@ -1161,7 +1183,7 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ return SRSASN_SUCCESS; } -std::string sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int2", "int4", "int8"}; @@ -1182,7 +1204,7 @@ uint8_t sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_comm "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_::interv_fdd_r13_e_"); } -std::string sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_a_r13_c_:: interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int1", "int5", "int10", "int20"}; @@ -1252,6 +1274,18 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ return *this; } +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_e_& +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::set_interv_fdd_r13() +{ + set(types::interv_fdd_r13); + return c.get(); +} +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::interv_tdd_r13_e_& +sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::set_interv_tdd_r13() +{ + set(types::interv_tdd_r13); + return c.get(); +} void sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::to_json( json_writer& j) const { @@ -1308,7 +1342,7 @@ sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_ return SRSASN_SUCCESS; } -std::string sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: interv_fdd_r13_opts::to_string() const { static const char* options[] = {"int2", "int4", "int8", "int16"}; @@ -1329,7 +1363,7 @@ uint8_t sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_comm "sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_::interv_fdd_r13_e_"); } -std::string sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: +const char* sib_type1_v1320_ies_s::freq_hop_params_dl_r13_s_::interv_dl_hop_cfg_common_mode_b_r13_c_:: interv_tdd_r13_opts::to_string() const { static const char* options[] = {"int5", "int10", "int20", "int40"}; @@ -1376,7 +1410,7 @@ void ac_barr_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string ac_barr_cfg_s::ac_barr_factor_opts::to_string() const +const char* ac_barr_cfg_s::ac_barr_factor_opts::to_string() const { static const char* options[] = { "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; @@ -1387,14 +1421,14 @@ float ac_barr_cfg_s::ac_barr_factor_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5}; return map_enum_number(options, 16, value, "ac_barr_cfg_s::ac_barr_factor_e_"); } -std::string ac_barr_cfg_s::ac_barr_factor_opts::to_number_string() const +const char* ac_barr_cfg_s::ac_barr_factor_opts::to_number_string() const { static const char* options[] = { "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; return convert_enum_idx(options, 16, value, "ac_barr_cfg_s::ac_barr_factor_e_"); } -std::string ac_barr_cfg_s::ac_barr_time_opts::to_string() const +const char* ac_barr_cfg_s::ac_barr_time_opts::to_string() const { static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; return convert_enum_idx(options, 8, value, "ac_barr_cfg_s::ac_barr_time_e_"); @@ -1568,7 +1602,7 @@ void sib_type1_v1310_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_win_len_br_r13_opts::to_string() const +const char* sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_win_len_br_r13_opts::to_string() const { static const char* options[] = {"ms20", "ms40", "ms60", "ms80", "ms120", "ms160", "ms200", "spare"}; return convert_enum_idx( @@ -1581,7 +1615,7 @@ uint8_t sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_win_len options, 7, value, "sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_win_len_br_r13_e_"); } -std::string sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_repeat_pattern_r13_opts::to_string() const +const char* sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_repeat_pattern_r13_opts::to_string() const { static const char* options[] = {"everyRF", "every2ndRF", "every4thRF", "every8thRF"}; return convert_enum_idx( @@ -1678,6 +1712,18 @@ sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_b return *this; } +fixed_bitstring<10>& +sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::set_sf_pattern10_r13() +{ + set(types::sf_pattern10_r13); + return c.get >(); +} +fixed_bitstring<40>& +sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::set_sf_pattern40_r13() +{ + set(types::sf_pattern40_r13); + return c.get >(); +} void sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::to_json( json_writer& j) const { @@ -1734,7 +1780,7 @@ sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_b return SRSASN_SUCCESS; } -std::string sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_hop_cfg_common_r13_opts::to_string() const +const char* sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::si_hop_cfg_common_r13_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx( @@ -1776,7 +1822,7 @@ void udt_restricting_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string udt_restricting_r13_s::udt_restricting_time_r13_opts::to_string() const +const char* udt_restricting_r13_s::udt_restricting_time_r13_opts::to_string() const { static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; return convert_enum_idx(options, 8, value, "udt_restricting_r13_s::udt_restricting_time_r13_e_"); @@ -2003,7 +2049,7 @@ void plmn_info_r15_s::to_json(json_writer& j) const } // SIB-Type ::= ENUMERATED -std::string sib_type_opts::to_string() const +const char* sib_type_opts::to_string() const { static const char* options[] = { "sibType3", "sibType4", "sibType5", "sibType6", "sibType7", "sibType8", @@ -2169,7 +2215,7 @@ void cell_sel_info_v920_s::to_json(json_writer& j) const } // SI-Periodicity-r12 ::= ENUMERATED -std::string si_periodicity_r12_opts::to_string() const +const char* si_periodicity_r12_opts::to_string() const { static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; return convert_enum_idx(options, 7, value, "si_periodicity_r12_e"); @@ -2356,7 +2402,7 @@ void ue_timers_and_consts_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_timers_and_consts_s::t300_opts::to_string() const +const char* ue_timers_and_consts_s::t300_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t300_e_"); @@ -2367,7 +2413,7 @@ uint16_t ue_timers_and_consts_s::t300_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t300_e_"); } -std::string ue_timers_and_consts_s::t301_opts::to_string() const +const char* ue_timers_and_consts_s::t301_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t301_e_"); @@ -2378,7 +2424,7 @@ uint16_t ue_timers_and_consts_s::t301_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t301_e_"); } -std::string ue_timers_and_consts_s::t310_opts::to_string() const +const char* ue_timers_and_consts_s::t310_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms500", "ms1000", "ms2000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_s::t310_e_"); @@ -2389,7 +2435,7 @@ uint16_t ue_timers_and_consts_s::t310_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_s::t310_e_"); } -std::string ue_timers_and_consts_s::n310_opts::to_string() const +const char* ue_timers_and_consts_s::n310_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::n310_e_"); @@ -2400,7 +2446,7 @@ uint8_t ue_timers_and_consts_s::n310_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::n310_e_"); } -std::string ue_timers_and_consts_s::t311_opts::to_string() const +const char* ue_timers_and_consts_s::t311_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_s::t311_e_"); @@ -2411,7 +2457,7 @@ uint16_t ue_timers_and_consts_s::t311_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_s::t311_e_"); } -std::string ue_timers_and_consts_s::n311_opts::to_string() const +const char* ue_timers_and_consts_s::n311_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::n311_e_"); @@ -2422,7 +2468,7 @@ uint8_t ue_timers_and_consts_s::n311_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::n311_e_"); } -std::string ue_timers_and_consts_s::t300_v1310_opts::to_string() const +const char* ue_timers_and_consts_s::t300_v1310_opts::to_string() const { static const char* options[] = {"ms2500", "ms3000", "ms3500", "ms4000", "ms5000", "ms6000", "ms8000", "ms10000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t300_v1310_e_"); @@ -2433,7 +2479,7 @@ uint16_t ue_timers_and_consts_s::t300_v1310_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t300_v1310_e_"); } -std::string ue_timers_and_consts_s::t301_v1310_opts::to_string() const +const char* ue_timers_and_consts_s::t301_v1310_opts::to_string() const { static const char* options[] = {"ms2500", "ms3000", "ms3500", "ms4000", "ms5000", "ms6000", "ms8000", "ms10000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t301_v1310_e_"); @@ -2444,7 +2490,7 @@ uint16_t ue_timers_and_consts_s::t301_v1310_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t301_v1310_e_"); } -std::string ue_timers_and_consts_s::t310_v1330_opts::to_string() const +const char* ue_timers_and_consts_s::t310_v1330_opts::to_string() const { static const char* options[] = {"ms4000", "ms6000"}; return convert_enum_idx(options, 2, value, "ue_timers_and_consts_s::t310_v1330_e_"); @@ -2455,7 +2501,7 @@ uint16_t ue_timers_and_consts_s::t310_v1330_opts::to_number() const return map_enum_number(options, 2, value, "ue_timers_and_consts_s::t310_v1330_e_"); } -std::string ue_timers_and_consts_s::t300_r15_opts::to_string() const +const char* ue_timers_and_consts_s::t300_r15_opts::to_string() const { static const char* options[] = {"ms4000", "ms6000", "ms8000", "ms10000", "ms15000", "ms25000", "ms40000", "ms60000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t300_r15_e_"); @@ -3023,7 +3069,7 @@ void sib_type2_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type2_s::freq_info_s_::ul_bw_opts::to_string() const +const char* sib_type2_s::freq_info_s_::ul_bw_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "sib_type2_s::freq_info_s_::ul_bw_e_"); @@ -3199,19 +3245,19 @@ void sib_type1_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_s::cell_access_related_info_s_::cell_barred_opts::to_string() const +const char* sib_type1_s::cell_access_related_info_s_::cell_barred_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; return convert_enum_idx(options, 2, value, "sib_type1_s::cell_access_related_info_s_::cell_barred_e_"); } -std::string sib_type1_s::cell_access_related_info_s_::intra_freq_resel_opts::to_string() const +const char* sib_type1_s::cell_access_related_info_s_::intra_freq_resel_opts::to_string() const { static const char* options[] = {"allowed", "notAllowed"}; return convert_enum_idx(options, 2, value, "sib_type1_s::cell_access_related_info_s_::intra_freq_resel_e_"); } -std::string sib_type1_s::si_win_len_opts::to_string() const +const char* sib_type1_s::si_win_len_opts::to_string() const { static const char* options[] = {"ms1", "ms2", "ms5", "ms10", "ms15", "ms20", "ms40"}; return convert_enum_idx(options, 7, value, "sib_type1_s::si_win_len_e_"); diff --git a/lib/src/asn1/rrc/uecap.cc b/lib/src/asn1/rrc/uecap.cc index eded04c3c..4718c554c 100644 --- a/lib/src/asn1/rrc/uecap.cc +++ b/lib/src/asn1/rrc/uecap.cc @@ -30,7 +30,7 @@ using namespace asn1::rrc; ******************************************************************************/ // CA-BandwidthClass-r10 ::= ENUMERATED -std::string ca_bw_class_r10_opts::to_string() const +const char* ca_bw_class_r10_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f"}; return convert_enum_idx(options, 6, value, "ca_bw_class_r10_e"); @@ -355,7 +355,7 @@ void ue_cap_enquiry_v1310_ies_s::to_json(json_writer& j) const } // RAT-Type ::= ENUMERATED -std::string rat_type_opts::to_string() const +const char* rat_type_opts::to_string() const { static const char* options[] = { "eutra", "utra", "geran-cs", "geran-ps", "cdma2000-1XRTT", "nr", "eutra-nr", "spare1"}; @@ -524,6 +524,15 @@ void ue_cap_enquiry_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_enquiry_s::crit_exts_c_::c1_c_& ue_cap_enquiry_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_cap_enquiry_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -576,6 +585,23 @@ void ue_cap_enquiry_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_cap_enquiry_r8_ies_s& ue_cap_enquiry_s::crit_exts_c_::c1_c_::set_ue_cap_enquiry_r8() +{ + set(types::ue_cap_enquiry_r8); + return c; +} +void ue_cap_enquiry_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_cap_enquiry_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_cap_enquiry_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_cap_enquiry_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -750,7 +776,7 @@ void ue_radio_paging_info_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_r15_opts::to_string() const +const char* ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms240", "ms1000", "ms2000"}; return convert_enum_idx(options, 4, value, "ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_r15_e_"); @@ -761,7 +787,7 @@ uint16_t ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_r15_opts::to_n return map_enum_number(options, 4, value, "ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_r15_e_"); } -std::string ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_tdd_r15_opts::to_string() const +const char* ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_tdd_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms240", "ms1000", "ms2000"}; return convert_enum_idx(options, 4, value, "ue_radio_paging_info_r12_s::wake_up_signal_min_gap_e_drx_tdd_r15_e_"); @@ -941,6 +967,15 @@ void ue_cap_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_info_s::crit_exts_c_::c1_c_& ue_cap_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_cap_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -993,6 +1028,39 @@ void ue_cap_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_cap_info_r8_ies_s& ue_cap_info_s::crit_exts_c_::c1_c_::set_ue_cap_info_r8() +{ + set(types::ue_cap_info_r8); + return c; +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_cap_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_cap_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1159,7 +1227,7 @@ void band_info_eutra_s::to_json(json_writer& j) const } // MIMO-CapabilityDL-r10 ::= ENUMERATED -std::string mimo_cap_dl_r10_opts::to_string() const +const char* mimo_cap_dl_r10_opts::to_string() const { static const char* options[] = {"twoLayers", "fourLayers", "eightLayers"}; return convert_enum_idx(options, 3, value, "mimo_cap_dl_r10_e"); @@ -1171,7 +1239,7 @@ uint8_t mimo_cap_dl_r10_opts::to_number() const } // MIMO-CapabilityUL-r10 ::= ENUMERATED -std::string mimo_cap_ul_r10_opts::to_string() const +const char* mimo_cap_ul_r10_opts::to_string() const { static const char* options[] = {"twoLayers", "fourLayers"}; return convert_enum_idx(options, 2, value, "mimo_cap_ul_r10_e"); @@ -1363,7 +1431,7 @@ void band_params_r11_s::to_json(json_writer& j) const j.end_obj(); } -std::string band_params_r11_s::supported_csi_proc_r11_opts::to_string() const +const char* band_params_r11_s::supported_csi_proc_r11_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "band_params_r11_s::supported_csi_proc_r11_e_"); @@ -1473,7 +1541,7 @@ void intra_band_contiguous_cc_info_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string intra_band_contiguous_cc_info_r12_s::supported_csi_proc_r12_opts::to_string() const +const char* intra_band_contiguous_cc_info_r12_s::supported_csi_proc_r12_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "intra_band_contiguous_cc_info_r12_s::supported_csi_proc_r12_e_"); @@ -1586,7 +1654,7 @@ void band_params_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string band_params_r13_s::supported_csi_proc_r13_opts::to_string() const +const char* band_params_r13_s::supported_csi_proc_r13_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "band_params_r13_s::supported_csi_proc_r13_e_"); @@ -1785,6 +1853,24 @@ band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_ return *this; } +fixed_bitstring<3>& +band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::set_three_entries_r13() +{ + set(types::three_entries_r13); + return c.get >(); +} +fixed_bitstring<7>& +band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::set_four_entries_r13() +{ + set(types::four_entries_r13); + return c.get >(); +} +fixed_bitstring<15>& +band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::set_five_entries_r13() +{ + set(types::five_entries_r13); + return c.get >(); +} void band_combination_params_r13_s::dc_support_r13_s_::supported_cell_grouping_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1976,7 +2062,7 @@ void band_params_v1130_s::to_json(json_writer& j) const j.end_obj(); } -std::string band_params_v1130_s::supported_csi_proc_r11_opts::to_string() const +const char* band_params_v1130_s::supported_csi_proc_r11_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "band_params_v1130_s::supported_csi_proc_r11_e_"); @@ -2189,6 +2275,24 @@ band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_ return *this; } +fixed_bitstring<3>& +band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::set_three_entries_r12() +{ + set(types::three_entries_r12); + return c.get >(); +} +fixed_bitstring<7>& +band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::set_four_entries_r12() +{ + set(types::four_entries_r12); + return c.get >(); +} +fixed_bitstring<15>& +band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::set_five_entries_r12() +{ + set(types::five_entries_r12); + return c.get >(); +} void band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2745,7 +2849,7 @@ void srs_cap_per_band_pair_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_opts::to_string() const +const char* srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_opts::to_string() const { static const char* options[] = {"n0", "n0dot5", @@ -2772,7 +2876,7 @@ float srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_opt return map_enum_number( options, 15, value, "srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_e_"); } -std::string srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_opts::to_number_string() const +const char* srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_opts::to_number_string() const { static const char* options[] = { "0", "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5", "5.5", "6", "6.5", "7"}; @@ -2780,7 +2884,7 @@ std::string srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r options, 16, value, "srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_dl_r14_e_"); } -std::string srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_opts::to_string() const +const char* srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_opts::to_string() const { static const char* options[] = {"n0", "n0dot5", @@ -2807,7 +2911,7 @@ float srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_opt return map_enum_number( options, 15, value, "srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_e_"); } -std::string srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_opts::to_number_string() const +const char* srs_cap_per_band_pair_r14_s::retuning_info_s_::rf_retuning_time_ul_r14_opts::to_number_string() const { static const char* options[] = { "0", "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5", "5.5", "6", "6.5", "7"}; @@ -3096,7 +3200,7 @@ void mimo_ca_params_per_bo_bc_per_tm_v1470_s::to_json(json_writer& j) const j.end_obj(); } -std::string mimo_ca_params_per_bo_bc_per_tm_v1470_s::csi_report_advanced_max_ports_r14_opts::to_string() const +const char* mimo_ca_params_per_bo_bc_per_tm_v1470_s::csi_report_advanced_max_ports_r14_opts::to_string() const { static const char* options[] = {"n8", "n12", "n16", "n20", "n24", "n28"}; return convert_enum_idx( @@ -3645,7 +3749,7 @@ void stti_spt_band_params_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_opts::to_string() const +const char* stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_e_"); @@ -3835,7 +3939,7 @@ void band_combination_params_ext_r10_s::to_json(json_writer& j) const } // V2X-BandwidthClass-r14 ::= ENUMERATED -std::string v2x_bw_class_r14_opts::to_string() const +const char* v2x_bw_class_r14_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f", "c1-v1530"}; return convert_enum_idx(options, 7, value, "v2x_bw_class_r14_e"); @@ -3962,7 +4066,7 @@ void feature_set_dl_per_cc_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string feature_set_dl_per_cc_r15_s::supported_csi_proc_r15_opts::to_string() const +const char* feature_set_dl_per_cc_r15_s::supported_csi_proc_r15_opts::to_string() const { static const char* options[] = {"n1", "n3", "n4"}; return convert_enum_idx(options, 3, value, "feature_set_dl_per_cc_r15_s::supported_csi_proc_r15_e_"); @@ -4345,13 +4449,13 @@ void irat_params_cdma2000_minus1_xrtt_s::to_json(json_writer& j) const j.end_obj(); } -std::string irat_params_cdma2000_minus1_xrtt_s::tx_cfg1_xrtt_opts::to_string() const +const char* irat_params_cdma2000_minus1_xrtt_s::tx_cfg1_xrtt_opts::to_string() const { static const char* options[] = {"single", "dual"}; return convert_enum_idx(options, 2, value, "irat_params_cdma2000_minus1_xrtt_s::tx_cfg1_xrtt_e_"); } -std::string irat_params_cdma2000_minus1_xrtt_s::rx_cfg1_xrtt_opts::to_string() const +const char* irat_params_cdma2000_minus1_xrtt_s::rx_cfg1_xrtt_opts::to_string() const { static const char* options[] = {"single", "dual"}; return convert_enum_idx(options, 2, value, "irat_params_cdma2000_minus1_xrtt_s::rx_cfg1_xrtt_e_"); @@ -4387,20 +4491,20 @@ void irat_params_cdma2000_hrpd_s::to_json(json_writer& j) const j.end_obj(); } -std::string irat_params_cdma2000_hrpd_s::tx_cfg_hrpd_opts::to_string() const +const char* irat_params_cdma2000_hrpd_s::tx_cfg_hrpd_opts::to_string() const { static const char* options[] = {"single", "dual"}; return convert_enum_idx(options, 2, value, "irat_params_cdma2000_hrpd_s::tx_cfg_hrpd_e_"); } -std::string irat_params_cdma2000_hrpd_s::rx_cfg_hrpd_opts::to_string() const +const char* irat_params_cdma2000_hrpd_s::rx_cfg_hrpd_opts::to_string() const { static const char* options[] = {"single", "dual"}; return convert_enum_idx(options, 2, value, "irat_params_cdma2000_hrpd_s::rx_cfg_hrpd_e_"); } // SupportedBandGERAN ::= ENUMERATED -std::string supported_band_geran_opts::to_string() const +const char* supported_band_geran_opts::to_string() const { static const char* options[] = {"gsm450", "gsm480", @@ -4602,7 +4706,7 @@ void irat_params_nr_v1540_s::to_json(json_writer& j) const } // SupportedBandUTRA-FDD ::= ENUMERATED -std::string supported_band_utra_fdd_opts::to_string() const +const char* supported_band_utra_fdd_opts::to_string() const { static const char* options[] = {"bandI", "bandII", "bandIII", "bandIV", "bandV", "bandVI", "bandVII", "bandVIII", "bandIX", "bandX", @@ -4639,7 +4743,7 @@ void irat_params_utra_fdd_s::to_json(json_writer& j) const } // SupportedBandUTRA-TDD128 ::= ENUMERATED -std::string supported_band_utra_tdd128_opts::to_string() const +const char* supported_band_utra_tdd128_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"}; return convert_enum_idx(options, 16, value, "supported_band_utra_tdd128_e"); @@ -4670,7 +4774,7 @@ void irat_params_utra_tdd128_s::to_json(json_writer& j) const } // SupportedBandUTRA-TDD384 ::= ENUMERATED -std::string supported_band_utra_tdd384_opts::to_string() const +const char* supported_band_utra_tdd384_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"}; return convert_enum_idx(options, 16, value, "supported_band_utra_tdd384_e"); @@ -4701,7 +4805,7 @@ void irat_params_utra_tdd384_s::to_json(json_writer& j) const } // SupportedBandUTRA-TDD768 ::= ENUMERATED -std::string supported_band_utra_tdd768_opts::to_string() const +const char* supported_band_utra_tdd768_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"}; return convert_enum_idx(options, 16, value, "supported_band_utra_tdd768_e"); @@ -4766,7 +4870,7 @@ void irat_params_wlan_r13_s::to_json(json_writer& j) const } // ProcessingTimelineSet-r15 ::= ENUMERATED -std::string processing_timeline_set_r15_opts::to_string() const +const char* processing_timeline_set_r15_opts::to_string() const { static const char* options[] = {"set1", "set2"}; return convert_enum_idx(options, 2, value, "processing_timeline_set_r15_e"); @@ -5153,7 +5257,7 @@ void mimo_ue_params_per_tm_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_opts::to_string() const +const char* mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_opts::to_string() const { static const char* options[] = {"ffs1", "ffs2", "ffs3", "ffs4"}; return convert_enum_idx( @@ -5166,7 +5270,7 @@ uint8_t mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_re options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_e_"); } -std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_opts::to_string() const +const char* mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_opts::to_string() const { static const char* options[] = {"ffs1", "ffs2", "ffs3", "ffs4"}; return convert_enum_idx( @@ -5252,7 +5356,7 @@ void mimo_ue_params_per_tm_v1470_s::to_json(json_writer& j) const j.end_obj(); } -std::string mimo_ue_params_per_tm_v1470_s::csi_report_advanced_max_ports_r14_opts::to_string() const +const char* mimo_ue_params_per_tm_v1470_s::csi_report_advanced_max_ports_r14_opts::to_string() const { static const char* options[] = {"n8", "n12", "n16", "n20", "n24", "n28"}; return convert_enum_idx(options, 6, value, "mimo_ue_params_per_tm_v1470_s::csi_report_advanced_max_ports_r14_e_"); @@ -5361,7 +5465,7 @@ void naics_cap_entry_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string naics_cap_entry_r12_s::nof_aggregated_prb_r12_opts::to_string() const +const char* naics_cap_entry_r12_s::nof_aggregated_prb_r12_opts::to_string() const { static const char* options[] = {"n50", "n75", @@ -5489,7 +5593,7 @@ void pdcp_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_params_s::max_num_rohc_context_sessions_opts::to_string() const +const char* pdcp_params_s::max_num_rohc_context_sessions_opts::to_string() const { static const char* options[] = {"cs2", "cs4", @@ -5676,7 +5780,7 @@ void pdcp_params_nr_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_params_nr_r15_s::rohc_context_max_sessions_r15_opts::to_string() const +const char* pdcp_params_nr_r15_s::rohc_context_max_sessions_r15_opts::to_string() const { static const char* options[] = {"cs2", "cs4", @@ -6090,7 +6194,7 @@ void phy_layer_params_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_layer_params_v1430_s::ce_pdsch_pusch_max_bw_r14_opts::to_string() const +const char* phy_layer_params_v1430_s::ce_pdsch_pusch_max_bw_r14_opts::to_string() const { static const char* options[] = {"bw5", "bw20"}; return convert_enum_idx(options, 2, value, "phy_layer_params_v1430_s::ce_pdsch_pusch_max_bw_r14_e_"); @@ -6101,7 +6205,7 @@ uint8_t phy_layer_params_v1430_s::ce_pdsch_pusch_max_bw_r14_opts::to_number() co return map_enum_number(options, 2, value, "phy_layer_params_v1430_s::ce_pdsch_pusch_max_bw_r14_e_"); } -std::string phy_layer_params_v1430_s::ce_retuning_symbols_r14_opts::to_string() const +const char* phy_layer_params_v1430_s::ce_retuning_symbols_r14_opts::to_string() const { static const char* options[] = {"n0", "n1"}; return convert_enum_idx(options, 2, value, "phy_layer_params_v1430_s::ce_retuning_symbols_r14_e_"); @@ -6646,7 +6750,7 @@ void phy_layer_params_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_string() const +const char* phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_string() const { static const char* options[] = {"oneLayer", "twoLayers", "fourLayers"}; return convert_enum_idx( @@ -6659,7 +6763,7 @@ uint8_t phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslo options, 3, value, "phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_e_"); } -std::string phy_layer_params_v1530_s::stti_spt_cap_r15_s_::sps_stti_r15_opts::to_string() const +const char* phy_layer_params_v1530_s::stti_spt_cap_r15_s_::sps_stti_r15_opts::to_string() const { static const char* options[] = {"slot", "subslot", "slotAndSubslot"}; return convert_enum_idx(options, 3, value, "phy_layer_params_v1530_s::stti_spt_cap_r15_s_::sps_stti_r15_e_"); @@ -7268,7 +7372,7 @@ void supported_band_eutra_v1320_s::to_json(json_writer& j) const j.end_obj(); } -std::string supported_band_eutra_v1320_s::ue_pwr_class_n_r13_opts::to_string() const +const char* supported_band_eutra_v1320_s::ue_pwr_class_n_r13_opts::to_string() const { static const char* options[] = {"class1", "class2", "class4"}; return convert_enum_idx(options, 3, value, "supported_band_eutra_v1320_s::ue_pwr_class_n_r13_e_"); @@ -8039,7 +8143,7 @@ void sl_params_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_params_r12_s::disc_supported_proc_r12_opts::to_string() const +const char* sl_params_r12_s::disc_supported_proc_r12_opts::to_string() const { static const char* options[] = {"n50", "n400"}; return convert_enum_idx(options, 2, value, "sl_params_r12_s::disc_supported_proc_r12_e_"); @@ -8300,7 +8404,7 @@ void sl_params_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_params_v1530_s::slss_supported_tx_freq_r15_opts::to_string() const +const char* sl_params_v1530_s::slss_supported_tx_freq_r15_opts::to_string() const { static const char* options[] = {"single", "multiple"}; return convert_enum_idx(options, 2, value, "sl_params_v1530_s::slss_supported_tx_freq_r15_e_"); @@ -8568,7 +8672,7 @@ void rf_params_v1570_s::to_json(json_writer& j) const j.end_obj(); } -std::string rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_opts::to_string() const +const char* rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_opts::to_string() const { static const char* options[] = {"v1", "v1dot2", "v1dot25"}; return convert_enum_idx(options, 3, value, "rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_e_"); @@ -8578,7 +8682,7 @@ float rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_opts::to_number() c static const float options[] = {1.0, 1.2, 1.25}; return map_enum_number(options, 3, value, "rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_e_"); } -std::string rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_opts::to_number_string() const +const char* rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_opts::to_number_string() const { static const char* options[] = {"1", "1.2", "1.25"}; return convert_enum_idx(options, 3, value, "rf_params_v1570_s::dl_minus1024_qam_scaling_factor_r15_e_"); @@ -10173,7 +10277,7 @@ void laa_params_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string laa_params_v1430_s::two_step_sched_timing_info_r14_opts::to_string() const +const char* laa_params_v1430_s::two_step_sched_timing_info_r14_opts::to_string() const { static const char* options[] = {"nPlus1", "nPlus2", "nPlus3"}; return convert_enum_idx(options, 3, value, "laa_params_v1430_s::two_step_sched_timing_info_r14_e_"); @@ -10477,7 +10581,7 @@ void pdcp_params_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_params_v1430_s::max_num_rohc_context_sessions_r14_opts::to_string() const +const char* pdcp_params_v1430_s::max_num_rohc_context_sessions_r14_opts::to_string() const { static const char* options[] = {"cs2", "cs4", @@ -10899,7 +11003,7 @@ void ue_eutra_cap_v1430_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_eutra_cap_v1430_ies_s::ue_category_ul_v1430_opts::to_string() const +const char* ue_eutra_cap_v1430_ies_s::ue_category_ul_v1430_opts::to_string() const { static const char* options[] = {"n16", "n17", "n18", "n19", "n20", "m2"}; return convert_enum_idx(options, 6, value, "ue_eutra_cap_v1430_ies_s::ue_category_ul_v1430_e_"); @@ -12083,7 +12187,7 @@ void ue_eutra_cap_v1310_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_eutra_cap_v1310_ies_s::ue_category_dl_v1310_opts::to_string() const +const char* ue_eutra_cap_v1310_ies_s::ue_category_dl_v1310_opts::to_string() const { static const char* options[] = {"n17", "m1"}; return convert_enum_idx(options, 2, value, "ue_eutra_cap_v1310_ies_s::ue_category_dl_v1310_e_"); @@ -12094,7 +12198,7 @@ uint8_t ue_eutra_cap_v1310_ies_s::ue_category_dl_v1310_opts::to_number() const return map_enum_number(options, 2, value, "ue_eutra_cap_v1310_ies_s::ue_category_dl_v1310_e_"); } -std::string ue_eutra_cap_v1310_ies_s::ue_category_ul_v1310_opts::to_string() const +const char* ue_eutra_cap_v1310_ies_s::ue_category_ul_v1310_opts::to_string() const { static const char* options[] = {"n14", "m1"}; return convert_enum_idx(options, 2, value, "ue_eutra_cap_v1310_ies_s::ue_category_ul_v1310_e_"); @@ -13898,7 +14002,7 @@ void ue_eutra_cap_v940_ies_s::to_json(json_writer& j) const } // AccessStratumRelease ::= ENUMERATED -std::string access_stratum_release_opts::to_string() const +const char* access_stratum_release_opts::to_string() const { static const char* options[] = {"rel8", "rel9", "rel10", "rel11", "rel12", "rel13", "rel14", "rel15"}; return convert_enum_idx(options, 8, value, "access_stratum_release_e"); @@ -14272,6 +14376,15 @@ void mbms_params_v1470_s::mbms_max_bw_r14_c_::set(types::options e) { type_ = e; } +void mbms_params_v1470_s::mbms_max_bw_r14_c_::set_implicit_value() +{ + set(types::implicit_value); +} +uint8_t& mbms_params_v1470_s::mbms_max_bw_r14_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} void mbms_params_v1470_s::mbms_max_bw_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14319,7 +14432,7 @@ SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_string() const +const char* mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_string() const { static const char* options[] = {"n3", "n6", "n9", "n12"}; return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); @@ -14330,7 +14443,7 @@ uint8_t mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_number() con return map_enum_number(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); } -std::string mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_string() const +const char* mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4"}; return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_e_"); @@ -15703,6 +15816,15 @@ void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_s::crit_exts_c_::c1_c_& ue_radio_access_cap_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_access_cap_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15755,6 +15877,39 @@ void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_ue_radio_access_cap_info_r8() +{ + set(types::ue_radio_access_cap_info_r8); + return c; +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/ul_ccch_msg.cc b/lib/src/asn1/rrc/ul_ccch_msg.cc index 3fcdb6a4a..9adbf9f5e 100644 --- a/lib/src/asn1/rrc/ul_ccch_msg.cc +++ b/lib/src/asn1/rrc/ul_ccch_msg.cc @@ -30,7 +30,7 @@ using namespace asn1::rrc; ******************************************************************************/ // EstablishmentCause ::= ENUMERATED -std::string establishment_cause_opts::to_string() const +const char* establishment_cause_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -44,7 +44,7 @@ std::string establishment_cause_opts::to_string() const } // EstablishmentCause-5GC ::= ENUMERATED -std::string establishment_cause_minus5_gc_opts::to_string() const +const char* establishment_cause_minus5_gc_opts::to_string() const { static const char* options[] = { "emergency", "highPriorityAccess", "mt-Access", "mo-Signalling", "mo-Data", "mo-VoiceCall", "spare2", "spare1"}; @@ -119,6 +119,16 @@ init_ue_id_c& init_ue_id_c::operator=(const init_ue_id_c& other) return *this; } +s_tmsi_s& init_ue_id_c::set_s_tmsi() +{ + set(types::s_tmsi); + return c.get(); +} +fixed_bitstring<40>& init_ue_id_c::set_random_value() +{ + set(types::random_value); + return c.get >(); +} void init_ue_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -238,6 +248,16 @@ init_ue_id_minus5_gc_c& init_ue_id_minus5_gc_c::operator=(const init_ue_id_minus return *this; } +fixed_bitstring<40>& init_ue_id_minus5_gc_c::set_ng_minus5_g_s_tmsi_part1() +{ + set(types::ng_minus5_g_s_tmsi_part1); + return c.get >(); +} +fixed_bitstring<40>& init_ue_id_minus5_gc_c::set_random_value() +{ + set(types::random_value); + return c.get >(); +} void init_ue_id_minus5_gc_c::to_json(json_writer& j) const { j.start_obj(); @@ -352,14 +372,14 @@ void reestab_ue_id_s::to_json(json_writer& j) const } // ReestablishmentCause ::= ENUMERATED -std::string reest_cause_opts::to_string() const +const char* reest_cause_opts::to_string() const { static const char* options[] = {"reconfigurationFailure", "handoverFailure", "otherFailure", "spare1"}; return convert_enum_idx(options, 4, value, "reest_cause_e"); } // ResumeCause ::= ENUMERATED -std::string resume_cause_opts::to_string() const +const char* resume_cause_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -373,7 +393,7 @@ std::string resume_cause_opts::to_string() const } // ResumeCause-r15 ::= ENUMERATED -std::string resume_cause_r15_opts::to_string() const +const char* resume_cause_r15_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -567,6 +587,16 @@ rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::operator=( return *this; } +fixed_bitstring<40>& rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::set_full_i_rnti_r15() +{ + set(types::full_i_rnti_r15); + return c.get >(); +} +fixed_bitstring<24>& rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::set_short_i_rnti_r15() +{ + set(types::short_i_rnti_r15); + return c.get >(); +} void rrc_conn_resume_request_minus5_gc_r15_ies_s::resume_id_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -716,6 +746,16 @@ rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_& rrc_conn_resume_request_r13 return *this; } +fixed_bitstring<40>& rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::set_resume_id_r13() +{ + set(types::resume_id_r13); + return c.get >(); +} +fixed_bitstring<24>& rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::set_truncated_resume_id_r13() +{ + set(types::truncated_resume_id_r13); + return c.get >(); +} void rrc_conn_resume_request_r13_ies_s::resume_id_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -807,7 +847,7 @@ void rrc_early_data_request_r15_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_early_data_request_r15_ies_s::establishment_cause_r15_opts::to_string() const +const char* rrc_early_data_request_r15_ies_s::establishment_cause_r15_opts::to_string() const { static const char* options[] = {"mo-Data", "delayTolerantAccess"}; return convert_enum_idx(options, 2, value, "rrc_early_data_request_r15_ies_s::establishment_cause_r15_e_"); @@ -838,6 +878,15 @@ void rrc_conn_reest_request_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_s::crit_exts_c_::set_rrc_conn_reest_request_r8() +{ + set(types::rrc_conn_reest_request_r8); + return c; +} +void rrc_conn_reest_request_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -975,6 +1024,16 @@ rrc_conn_request_s::crit_exts_c_::operator=(const rrc_conn_request_s::crit_exts_ return *this; } +rrc_conn_request_r8_ies_s& rrc_conn_request_s::crit_exts_c_::set_rrc_conn_request_r8() +{ + set(types::rrc_conn_request_r8); + return c.get(); +} +rrc_conn_request_minus5_gc_r15_ies_s& rrc_conn_request_s::crit_exts_c_::set_rrc_conn_request_r15() +{ + set(types::rrc_conn_request_r15); + return c.get(); +} void rrc_conn_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1116,6 +1175,17 @@ rrc_conn_resume_request_r13_s::crit_exts_c_::operator=(const rrc_conn_resume_req return *this; } +rrc_conn_resume_request_r13_ies_s& rrc_conn_resume_request_r13_s::crit_exts_c_::set_rrc_conn_resume_request_r13() +{ + set(types::rrc_conn_resume_request_r13); + return c.get(); +} +rrc_conn_resume_request_minus5_gc_r15_ies_s& +rrc_conn_resume_request_r13_s::crit_exts_c_::set_rrc_conn_resume_request_r15() +{ + set(types::rrc_conn_resume_request_r15); + return c.get(); +} void rrc_conn_resume_request_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1193,6 +1263,15 @@ void rrc_early_data_request_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15_s::crit_exts_c_::set_rrc_early_data_request_r15() +{ + set(types::rrc_early_data_request_r15); + return c; +} +void rrc_early_data_request_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_early_data_request_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1309,6 +1388,16 @@ ul_ccch_msg_type_c& ul_ccch_msg_type_c::operator=(const ul_ccch_msg_type_c& othe return *this; } +ul_ccch_msg_type_c::c1_c_& ul_ccch_msg_type_c::set_c1() +{ + set(types::c1); + return c.get(); +} +ul_ccch_msg_type_c::msg_class_ext_c_& ul_ccch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); + return c.get(); +} void ul_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -1428,6 +1517,16 @@ ul_ccch_msg_type_c::c1_c_& ul_ccch_msg_type_c::c1_c_::operator=(const ul_ccch_ms return *this; } +rrc_conn_reest_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_conn_reest_request() +{ + set(types::rrc_conn_reest_request); + return c.get(); +} +rrc_conn_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_conn_request() +{ + set(types::rrc_conn_request); + return c.get(); +} void ul_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1548,6 +1647,17 @@ ul_ccch_msg_type_c::msg_class_ext_c_::operator=(const ul_ccch_msg_type_c::msg_cl return *this; } +ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_& ul_ccch_msg_type_c::msg_class_ext_c_::set_c2() +{ + set(types::c2); + return c.get(); +} +ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& +ul_ccch_msg_type_c::msg_class_ext_c_::set_msg_class_ext_future_r13() +{ + set(types::msg_class_ext_future_r13); + return c.get(); +} void ul_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1622,6 +1732,16 @@ void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::set(type { type_ = e; } +ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_& +ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::set_c3() +{ + set(types::c3); + return c; +} +void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::set_msg_class_ext_future_r15() +{ + set(types::msg_class_ext_future_r15); +} void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1674,6 +1794,24 @@ void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::s { type_ = e; } +rrc_early_data_request_r15_s& +ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::set_rrc_early_data_request_r15() +{ + set(types::rrc_early_data_request_r15); + return c; +} +void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::set_spare3() +{ + set(types::spare3); +} +void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::set_spare2() +{ + set(types::spare2); +} +void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::set_spare1() +{ + set(types::spare1); +} void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::c3_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc/ul_dcch_msg.cc b/lib/src/asn1/rrc/ul_dcch_msg.cc index 8618a6b8f..e11254a37 100644 --- a/lib/src/asn1/rrc/ul_dcch_msg.cc +++ b/lib/src/asn1/rrc/ul_dcch_msg.cc @@ -116,6 +116,16 @@ tmgi_r9_s::plmn_id_r9_c_& tmgi_r9_s::plmn_id_r9_c_::operator=(const tmgi_r9_s::p return *this; } +uint8_t& tmgi_r9_s::plmn_id_r9_c_::set_plmn_idx_r9() +{ + set(types::plmn_idx_r9); + return c.get(); +} +plmn_id_s& tmgi_r9_s::plmn_id_r9_c_::set_explicit_value_r9() +{ + set(types::explicit_value_r9); + return c.get(); +} void tmgi_r9_s::plmn_id_r9_c_::to_json(json_writer& j) const { j.start_obj(); @@ -243,7 +253,7 @@ void rrc_conn_setup_complete_v1540_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_setup_complete_v1540_ies_s::guami_type_r15_opts::to_string() const +const char* rrc_conn_setup_complete_v1540_ies_s::guami_type_r15_opts::to_string() const { static const char* options[] = {"native", "mapped"}; return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_v1540_ies_s::guami_type_r15_e_"); @@ -351,6 +361,16 @@ s_nssai_r15_c& s_nssai_r15_c::operator=(const s_nssai_r15_c& other) return *this; } +fixed_bitstring<8>& s_nssai_r15_c::set_sst() +{ + set(types::sst); + return c.get >(); +} +fixed_bitstring<32>& s_nssai_r15_c::set_sst_sd() +{ + set(types::sst_sd); + return c.get >(); +} void s_nssai_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -566,6 +586,17 @@ rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::operator=( return *this; } +fixed_bitstring<48>& rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::set_ng_minus5_g_s_tmsi_r15() +{ + set(types::ng_minus5_g_s_tmsi_r15); + return c.get >(); +} +fixed_bitstring<8>& +rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::set_ng_minus5_g_s_tmsi_part2_r15() +{ + set(types::ng_minus5_g_s_tmsi_part2_r15); + return c.get >(); +} void rrc_conn_setup_complete_v1530_ies_s::ng_minus5_g_s_tmsi_bits_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -709,7 +740,7 @@ void per_cc_gap_ind_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string per_cc_gap_ind_r14_s::gap_ind_r14_opts::to_string() const +const char* per_cc_gap_ind_r14_s::gap_ind_r14_opts::to_string() const { static const char* options[] = {"gap", "ncsg", "nogap-noNcsg"}; return convert_enum_idx(options, 3, value, "per_cc_gap_ind_r14_s::gap_ind_r14_e_"); @@ -948,6 +979,17 @@ visited_cell_info_r12_s::visited_cell_id_r12_c_::operator=(const visited_cell_in return *this; } +cell_global_id_eutra_s& visited_cell_info_r12_s::visited_cell_id_r12_c_::set_cell_global_id_r12() +{ + set(types::cell_global_id_r12); + return c.get(); +} +visited_cell_info_r12_s::visited_cell_id_r12_c_::pci_arfcn_r12_s_& +visited_cell_info_r12_s::visited_cell_id_r12_c_::set_pci_arfcn_r12() +{ + set(types::pci_arfcn_r12); + return c.get(); +} void visited_cell_info_r12_s::visited_cell_id_r12_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1114,7 +1156,7 @@ void affected_carrier_freq_comb_info_mrdc_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string affected_carrier_freq_comb_info_mrdc_r15_s::interference_direction_mrdc_r15_opts::to_string() const +const char* affected_carrier_freq_comb_info_mrdc_r15_s::interference_direction_mrdc_r15_opts::to_string() const { static const char* options[] = { "eutra-nr", "nr", "other", "eutra-nr-other", "nr-other", "spare3", "spare2", "spare1"}; @@ -2066,7 +2108,7 @@ void rrc_conn_setup_complete_v1250_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_setup_complete_v1250_ies_s::mob_state_r12_opts::to_string() const +const char* rrc_conn_setup_complete_v1250_ies_s::mob_state_r12_opts::to_string() const { static const char* options[] = {"normal", "medium", "high", "spare"}; return convert_enum_idx(options, 4, value, "rrc_conn_setup_complete_v1250_ies_s::mob_state_r12_e_"); @@ -2242,6 +2284,16 @@ idc_sf_pattern_r11_c& idc_sf_pattern_r11_c::operator=(const idc_sf_pattern_r11_c return *this; } +fixed_bitstring<4>& idc_sf_pattern_r11_c::set_sf_pattern_fdd_r11() +{ + set(types::sf_pattern_fdd_r11); + return c.get >(); +} +idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_& idc_sf_pattern_r11_c::set_sf_pattern_tdd_r11() +{ + set(types::sf_pattern_tdd_r11); + return c.get(); +} void idc_sf_pattern_r11_c::to_json(json_writer& j) const { j.start_obj(); @@ -2374,6 +2426,21 @@ idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::operator=(const idc_sf_pattern_r11_ return *this; } +fixed_bitstring<70>& idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::set_sf_cfg0_r11() +{ + set(types::sf_cfg0_r11); + return c.get >(); +} +fixed_bitstring<10>& idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::set_sf_cfg1_minus5_r11() +{ + set(types::sf_cfg1_minus5_r11); + return c.get >(); +} +fixed_bitstring<60>& idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::set_sf_cfg6_r11() +{ + set(types::sf_cfg6_r11); + return c.get >(); +} void idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2495,7 +2562,7 @@ void mbms_rom_info_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_opts::to_string() const +const char* mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_opts::to_string() const { static const char* options[] = {"kHz15", "kHz7dot5", "kHz1dot25"}; return convert_enum_idx(options, 3, value, "mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_e_"); @@ -2505,13 +2572,13 @@ float mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_opts::to_number() con static const float options[] = {15.0, 7.5, 1.25}; return map_enum_number(options, 3, value, "mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_e_"); } -std::string mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_opts::to_number_string() const +const char* mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_opts::to_number_string() const { static const char* options[] = {"15", "7.5", "1.25"}; return convert_enum_idx(options, 3, value, "mbms_rom_info_r15_s::mbms_rom_subcarrier_spacing_r15_e_"); } -std::string mbms_rom_info_r15_s::mbms_bw_r15_opts::to_string() const +const char* mbms_rom_info_r15_s::mbms_bw_r15_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "mbms_rom_info_r15_s::mbms_bw_r15_e_"); @@ -3018,7 +3085,7 @@ void sl_disc_sys_info_report_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sl_disc_sys_info_report_r13_s::cell_resel_info_r13_s_::q_hyst_r13_opts::to_string() const +const char* sl_disc_sys_info_report_r13_s::cell_resel_info_r13_s_::q_hyst_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB1", @@ -3044,7 +3111,7 @@ uint8_t sl_disc_sys_info_report_r13_s::cell_resel_info_r13_s_::q_hyst_r13_opts:: return map_enum_number(options, 16, value, "sl_disc_sys_info_report_r13_s::cell_resel_info_r13_s_::q_hyst_r13_e_"); } -std::string sl_disc_sys_info_report_r13_s::freq_info_r13_s_::ul_bw_r13_opts::to_string() const +const char* sl_disc_sys_info_report_r13_s::freq_info_r13_s_::ul_bw_r13_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100"}; return convert_enum_idx(options, 6, value, "sl_disc_sys_info_report_r13_s::freq_info_r13_s_::ul_bw_r13_e_"); @@ -3216,7 +3283,7 @@ void traffic_pattern_info_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string traffic_pattern_info_r14_s::traffic_periodicity_r14_opts::to_string() const +const char* traffic_pattern_info_r14_s::traffic_periodicity_r14_opts::to_string() const { static const char* options[] = { "sf20", "sf50", "sf100", "sf200", "sf300", "sf400", "sf500", "sf600", "sf700", "sf800", "sf900", "sf1000"}; @@ -3338,7 +3405,7 @@ void affected_carrier_freq_r11_s::to_json(json_writer& j) const j.end_obj(); } -std::string affected_carrier_freq_r11_s::interference_direction_r11_opts::to_string() const +const char* affected_carrier_freq_r11_s::interference_direction_r11_opts::to_string() const { static const char* options[] = {"eutra", "other", "both", "spare"}; return convert_enum_idx(options, 4, value, "affected_carrier_freq_r11_s::interference_direction_r11_e_"); @@ -3385,7 +3452,7 @@ void bw_pref_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string bw_pref_r14_s::dl_pref_r14_opts::to_string() const +const char* bw_pref_r14_s::dl_pref_r14_opts::to_string() const { static const char* options[] = {"mhz1dot4", "mhz5", "mhz20"}; return convert_enum_idx(options, 3, value, "bw_pref_r14_s::dl_pref_r14_e_"); @@ -3395,13 +3462,13 @@ float bw_pref_r14_s::dl_pref_r14_opts::to_number() const static const float options[] = {1.4, 5.0, 20.0}; return map_enum_number(options, 3, value, "bw_pref_r14_s::dl_pref_r14_e_"); } -std::string bw_pref_r14_s::dl_pref_r14_opts::to_number_string() const +const char* bw_pref_r14_s::dl_pref_r14_opts::to_number_string() const { static const char* options[] = {"1.4", "5", "20"}; return convert_enum_idx(options, 3, value, "bw_pref_r14_s::dl_pref_r14_e_"); } -std::string bw_pref_r14_s::ul_pref_r14_opts::to_string() const +const char* bw_pref_r14_s::ul_pref_r14_opts::to_string() const { static const char* options[] = {"mhz1dot4", "mhz5"}; return convert_enum_idx(options, 2, value, "bw_pref_r14_s::ul_pref_r14_e_"); @@ -3411,7 +3478,7 @@ float bw_pref_r14_s::ul_pref_r14_opts::to_number() const static const float options[] = {1.4, 5.0}; return map_enum_number(options, 2, value, "bw_pref_r14_s::ul_pref_r14_e_"); } -std::string bw_pref_r14_s::ul_pref_r14_opts::to_number_string() const +const char* bw_pref_r14_s::ul_pref_r14_opts::to_number_string() const { static const char* options[] = {"1.4", "5"}; return convert_enum_idx(options, 2, value, "bw_pref_r14_s::ul_pref_r14_e_"); @@ -3524,6 +3591,16 @@ delay_budget_report_r14_c& delay_budget_report_r14_c::operator=(const delay_budg return *this; } +delay_budget_report_r14_c::type1_e_& delay_budget_report_r14_c::set_type1() +{ + set(types::type1); + return c.get(); +} +delay_budget_report_r14_c::type2_e_& delay_budget_report_r14_c::set_type2() +{ + set(types::type2); + return c.get(); +} void delay_budget_report_r14_c::to_json(json_writer& j) const { j.start_obj(); @@ -3574,7 +3651,7 @@ SRSASN_CODE delay_budget_report_r14_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string delay_budget_report_r14_c::type1_opts::to_string() const +const char* delay_budget_report_r14_c::type1_opts::to_string() const { static const char* options[] = {"msMinus1280", "msMinus640", @@ -3602,7 +3679,7 @@ int16_t delay_budget_report_r14_c::type1_opts::to_number() const return map_enum_number(options, 17, value, "delay_budget_report_r14_c::type1_e_"); } -std::string delay_budget_report_r14_c::type2_opts::to_string() const +const char* delay_budget_report_r14_c::type2_opts::to_string() const { static const char* options[] = {"msMinus192", "msMinus168", @@ -3889,13 +3966,13 @@ void rrc_conn_setup_complete_v1020_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_setup_complete_v1020_ies_s::gummei_type_r10_opts::to_string() const +const char* rrc_conn_setup_complete_v1020_ies_s::gummei_type_r10_opts::to_string() const { static const char* options[] = {"native", "mapped"}; return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_v1020_ies_s::gummei_type_r10_e_"); } -std::string rrc_conn_setup_complete_v1020_ies_s::rn_sf_cfg_req_r10_opts::to_string() const +const char* rrc_conn_setup_complete_v1020_ies_s::rn_sf_cfg_req_r10_opts::to_string() const { static const char* options[] = {"required", "notRequired"}; return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_v1020_ies_s::rn_sf_cfg_req_r10_e_"); @@ -4140,6 +4217,111 @@ rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_& rstd_inter_freq_info_r10_s:: return *this; } +uint8_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd0_r15() +{ + set(types::rstd0_r15); + return c.get(); +} +uint8_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd1_r15() +{ + set(types::rstd1_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd2_r15() +{ + set(types::rstd2_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd3_r15() +{ + set(types::rstd3_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd4_r15() +{ + set(types::rstd4_r15); + return c.get(); +} +uint8_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd5_r15() +{ + set(types::rstd5_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd6_r15() +{ + set(types::rstd6_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd7_r15() +{ + set(types::rstd7_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd8_r15() +{ + set(types::rstd8_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd9_r15() +{ + set(types::rstd9_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd10_r15() +{ + set(types::rstd10_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd11_r15() +{ + set(types::rstd11_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd12_r15() +{ + set(types::rstd12_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd13_r15() +{ + set(types::rstd13_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd14_r15() +{ + set(types::rstd14_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd15_r15() +{ + set(types::rstd15_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd16_r15() +{ + set(types::rstd16_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd17_r15() +{ + set(types::rstd17_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd18_r15() +{ + set(types::rstd18_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd19_r15() +{ + set(types::rstd19_r15); + return c.get(); +} +uint16_t& rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::set_rstd20_r15() +{ + set(types::rstd20_r15); + return c.get(); +} void rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4551,7 +4733,7 @@ void ue_info_resp_v1020_ies_s::to_json(json_writer& j) const } // WLAN-Status-v1430 ::= ENUMERATED -std::string wlan_status_v1430_opts::to_string() const +const char* wlan_status_v1430_opts::to_string() const { static const char* options[] = {"suspended", "resumed"}; return convert_enum_idx(options, 2, value, "wlan_status_v1430_e"); @@ -4686,7 +4868,7 @@ void fail_report_scg_nr_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string fail_report_scg_nr_r15_s::fail_type_r15_opts::to_string() const +const char* fail_report_scg_nr_r15_s::fail_type_r15_opts::to_string() const { static const char* options[] = {"t310-Expiry", "randomAccessProblem", @@ -4815,7 +4997,7 @@ void fail_report_scg_r12_s::to_json(json_writer& j) const j.end_obj(); } -std::string fail_report_scg_r12_s::fail_type_r12_opts::to_string() const +const char* fail_report_scg_r12_s::fail_type_r12_opts::to_string() const { static const char* options[] = {"t313-Expiry", "randomAccessProblem", "rlc-MaxNumRetx", "scg-ChangeFailure"}; return convert_enum_idx(options, 4, value, "fail_report_scg_r12_s::fail_type_r12_e_"); @@ -5559,6 +5741,16 @@ rlf_report_r9_s::failed_pcell_id_r10_c_::operator=(const rlf_report_r9_s::failed return *this; } +cell_global_id_eutra_s& rlf_report_r9_s::failed_pcell_id_r10_c_::set_cell_global_id_r10() +{ + set(types::cell_global_id_r10); + return c.get(); +} +rlf_report_r9_s::failed_pcell_id_r10_c_::pci_arfcn_r10_s_& rlf_report_r9_s::failed_pcell_id_r10_c_::set_pci_arfcn_r10() +{ + set(types::pci_arfcn_r10); + return c.get(); +} void rlf_report_r9_s::failed_pcell_id_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5616,13 +5808,13 @@ SRSASN_CODE rlf_report_r9_s::failed_pcell_id_r10_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlf_report_r9_s::conn_fail_type_r10_opts::to_string() const +const char* rlf_report_r9_s::conn_fail_type_r10_opts::to_string() const { static const char* options[] = {"rlf", "hof"}; return convert_enum_idx(options, 2, value, "rlf_report_r9_s::conn_fail_type_r10_e_"); } -std::string rlf_report_r9_s::basic_fields_r11_s_::rlf_cause_r11_opts::to_string() const +const char* rlf_report_r9_s::basic_fields_r11_s_::rlf_cause_r11_opts::to_string() const { static const char* options[] = {"t310-Expiry", "randomAccessProblem", "rlc-MaxNumRetx", "t312-Expiry-r12"}; return convert_enum_idx(options, 4, value, "rlf_report_r9_s::basic_fields_r11_s_::rlf_cause_r11_e_"); @@ -5685,6 +5877,16 @@ rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_& rlf_report_r9_s::prev_utr return *this; } +uint16_t& rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::set_fdd_r11() +{ + set(types::fdd_r11); + return c.get(); +} +uint8_t& rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::set_tdd_r11() +{ + set(types::tdd_r11); + return c.get(); +} void rlf_report_r9_s::prev_utra_cell_id_r11_s_::pci_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5780,6 +5982,16 @@ rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_& rlf_report_r9_s::sel_utra_ return *this; } +uint16_t& rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::set_fdd_r11() +{ + set(types::fdd_r11); + return c.get(); +} +uint8_t& rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::set_tdd_r11() +{ + set(types::tdd_r11); + return c.get(); +} void rlf_report_r9_s::sel_utra_cell_id_r11_s_::pci_r11_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6280,7 +6492,7 @@ void sidelink_ue_info_v1310_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string sidelink_ue_info_v1310_ies_s::comm_tx_res_info_req_relay_r13_s_::ue_type_r13_opts::to_string() const +const char* sidelink_ue_info_v1310_ies_s::comm_tx_res_info_req_relay_r13_s_::ue_type_r13_opts::to_string() const { static const char* options[] = {"relayUE", "remoteUE"}; return convert_enum_idx( @@ -6355,6 +6567,16 @@ tdm_assist_info_r11_c& tdm_assist_info_r11_c::operator=(const tdm_assist_info_r1 return *this; } +tdm_assist_info_r11_c::drx_assist_info_r11_s_& tdm_assist_info_r11_c::set_drx_assist_info_r11() +{ + set(types::drx_assist_info_r11); + return c.get(); +} +idc_sf_pattern_list_r11_l& tdm_assist_info_r11_c::set_idc_sf_pattern_list_r11() +{ + set(types::idc_sf_pattern_list_r11); + return c.get(); +} void tdm_assist_info_r11_c::to_json(json_writer& j) const { j.start_obj(); @@ -6426,7 +6648,7 @@ SRSASN_CODE tdm_assist_info_r11_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_cycle_len_r11_opts::to_string() const +const char* tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_cycle_len_r11_opts::to_string() const { static const char* options[] = {"sf40", "sf64", "sf80", "sf128", "sf160", "sf256", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_cycle_len_r11_e_"); @@ -6437,7 +6659,7 @@ uint16_t tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_cycle_len_r11_opts:: return map_enum_number(options, 6, value, "tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_cycle_len_r11_e_"); } -std::string tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_active_time_r11_opts::to_string() const +const char* tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_active_time_r11_opts::to_string() const { static const char* options[] = {"sf20", "sf30", "sf40", "sf60", "sf80", "sf100", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "tdm_assist_info_r11_c::drx_assist_info_r11_s_::drx_active_time_r11_e_"); @@ -6569,13 +6791,13 @@ void ueassist_info_v1430_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string ueassist_info_v1430_ies_s::rlm_report_r14_s_::rlm_event_r14_opts::to_string() const +const char* ueassist_info_v1430_ies_s::rlm_report_r14_s_::rlm_event_r14_opts::to_string() const { static const char* options[] = {"earlyOutOfSync", "earlyInSync"}; return convert_enum_idx(options, 2, value, "ueassist_info_v1430_ies_s::rlm_report_r14_s_::rlm_event_r14_e_"); } -std::string ueassist_info_v1430_ies_s::rlm_report_r14_s_::excess_rep_mpdcch_r14_opts::to_string() const +const char* ueassist_info_v1430_ies_s::rlm_report_r14_s_::excess_rep_mpdcch_r14_opts::to_string() const { static const char* options[] = {"excessRep1", "excessRep2"}; return convert_enum_idx(options, 2, value, "ueassist_info_v1430_ies_s::rlm_report_r14_s_::excess_rep_mpdcch_r14_e_"); @@ -6703,7 +6925,7 @@ void ul_info_transfer_v8a0_ies_s::to_json(json_writer& j) const } // WLAN-Status-r13 ::= ENUMERATED -std::string wlan_status_r13_opts::to_string() const +const char* wlan_status_r13_opts::to_string() const { static const char* options[] = { "successfulAssociation", "failureWlanRadioLink", "failureWlanUnavailable", "failureTimeout"}; @@ -6856,13 +7078,13 @@ void failed_lc_ch_info_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string failed_lc_ch_info_r15_s::failed_lc_ch_id_r15_s_::cell_group_ind_r15_opts::to_string() const +const char* failed_lc_ch_info_r15_s::failed_lc_ch_id_r15_s_::cell_group_ind_r15_opts::to_string() const { static const char* options[] = {"mn", "sn"}; return convert_enum_idx(options, 2, value, "failed_lc_ch_info_r15_s::failed_lc_ch_id_r15_s_::cell_group_ind_r15_e_"); } -std::string failed_lc_ch_info_r15_s::fail_type_opts::to_string() const +const char* failed_lc_ch_info_r15_s::fail_type_opts::to_string() const { static const char* options[] = {"duplication", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "failed_lc_ch_info_r15_s::fail_type_e_"); @@ -6982,6 +7204,16 @@ void inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::set(types:: { type_ = e; } +inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::start_s_& +inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::set_start() +{ + set(types::start); + return c; +} +void inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::set_stop() +{ + set(types::stop); +} void inter_freq_rstd_meas_ind_r10_ies_s::rstd_inter_freq_ind_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7214,7 +7446,7 @@ void meas_report_app_layer_r15_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_report_app_layer_r15_ies_s::service_type_r15_opts::to_string() const +const char* meas_report_app_layer_r15_ies_s::service_type_r15_opts::to_string() const { static const char* options[] = {"qoe", "qoemtsi", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "meas_report_app_layer_r15_ies_s::service_type_r15_e_"); @@ -7258,7 +7490,7 @@ void proximity_ind_r9_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string proximity_ind_r9_ies_s::type_r9_opts::to_string() const +const char* proximity_ind_r9_ies_s::type_r9_opts::to_string() const { static const char* options[] = {"entering", "leaving"}; return convert_enum_idx(options, 2, value, "proximity_ind_r9_ies_s::type_r9_e_"); @@ -7314,6 +7546,21 @@ proximity_ind_r9_ies_s::carrier_freq_r9_c_::operator=(const proximity_ind_r9_ies return *this; } +uint32_t& proximity_ind_r9_ies_s::carrier_freq_r9_c_::set_eutra_r9() +{ + set(types::eutra_r9); + return c.get(); +} +uint16_t& proximity_ind_r9_ies_s::carrier_freq_r9_c_::set_utra_r9() +{ + set(types::utra_r9); + return c.get(); +} +uint32_t& proximity_ind_r9_ies_s::carrier_freq_r9_c_::set_eutra2_v9e0() +{ + set(types::eutra2_v9e0); + return c.get(); +} void proximity_ind_r9_ies_s::carrier_freq_r9_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7574,7 +7821,7 @@ void rrc_conn_resume_complete_r13_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_conn_resume_complete_r13_ies_s::mob_state_r13_opts::to_string() const +const char* rrc_conn_resume_complete_r13_ies_s::mob_state_r13_opts::to_string() const { static const char* options[] = {"normal", "medium", "high", "spare"}; return convert_enum_idx(options, 4, value, "rrc_conn_resume_complete_r13_ies_s::mob_state_r13_e_"); @@ -7849,7 +8096,7 @@ void ueassist_info_r11_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string ueassist_info_r11_ies_s::pwr_pref_ind_r11_opts::to_string() const +const char* ueassist_info_r11_ies_s::pwr_pref_ind_r11_opts::to_string() const { static const char* options[] = {"normal", "lowPowerConsumption"}; return convert_enum_idx(options, 2, value, "ueassist_info_r11_ies_s::pwr_pref_ind_r11_e_"); @@ -8078,6 +8325,21 @@ ul_info_transfer_r8_ies_s::ded_info_type_c_::operator=(const ul_info_transfer_r8 return *this; } +dyn_octstring& ul_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_nas() +{ + set(types::ded_info_nas); + return c.get(); +} +dyn_octstring& ul_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_cdma2000_minus1_xrtt() +{ + set(types::ded_info_cdma2000_minus1_xrtt); + return c.get(); +} +dyn_octstring& ul_info_transfer_r8_ies_s::ded_info_type_c_::set_ded_info_cdma2000_hrpd() +{ + set(types::ded_info_cdma2000_hrpd); + return c.get(); +} void ul_info_transfer_r8_ies_s::ded_info_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8255,6 +8517,16 @@ void csfb_params_request_cdma2000_s::crit_exts_c_::set(types::options e) { type_ = e; } +csfb_params_request_cdma2000_r8_ies_s& +csfb_params_request_cdma2000_s::crit_exts_c_::set_csfb_params_request_cdma2000_r8() +{ + set(types::csfb_params_request_cdma2000_r8); + return c; +} +void csfb_params_request_cdma2000_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void csfb_params_request_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8331,6 +8603,15 @@ void counter_check_resp_s::crit_exts_c_::set(types::options e) { type_ = e; } +counter_check_resp_r8_ies_s& counter_check_resp_s::crit_exts_c_::set_counter_check_resp_r8() +{ + set(types::counter_check_resp_r8); + return c; +} +void counter_check_resp_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8435,6 +8716,15 @@ void in_dev_coex_ind_r11_s::crit_exts_c_::set(types::options e) { type_ = e; } +in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_& in_dev_coex_ind_r11_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void in_dev_coex_ind_r11_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void in_dev_coex_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8487,6 +8777,23 @@ void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +in_dev_coex_ind_r11_ies_s& in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set_in_dev_coex_ind_r11() +{ + set(types::in_dev_coex_ind_r11); + return c; +} +void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void in_dev_coex_ind_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8572,6 +8879,15 @@ void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::set(types::options e) { type_ = e; } +inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_& inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8624,6 +8940,24 @@ void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +inter_freq_rstd_meas_ind_r10_ies_s& +inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set_inter_freq_rstd_meas_ind_r10() +{ + set(types::inter_freq_rstd_meas_ind_r10); + return c; +} +void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8709,6 +9043,15 @@ void mbms_count_resp_r10_s::crit_exts_c_::set(types::options e) { type_ = e; } +mbms_count_resp_r10_s::crit_exts_c_::c1_c_& mbms_count_resp_r10_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void mbms_count_resp_r10_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void mbms_count_resp_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8761,6 +9104,23 @@ void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +mbms_count_resp_r10_ies_s& mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set_count_resp_r10() +{ + set(types::count_resp_r10); + return c; +} +void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void mbms_count_resp_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8846,6 +9206,15 @@ void mbms_interest_ind_r11_s::crit_exts_c_::set(types::options e) { type_ = e; } +mbms_interest_ind_r11_s::crit_exts_c_::c1_c_& mbms_interest_ind_r11_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void mbms_interest_ind_r11_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void mbms_interest_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8898,6 +9267,23 @@ void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +mbms_interest_ind_r11_ies_s& mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set_interest_ind_r11() +{ + set(types::interest_ind_r11); + return c; +} +void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void mbms_interest_ind_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8983,6 +9369,15 @@ void meas_report_app_layer_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15_s::crit_exts_c_::set_meas_report_app_layer_r15() +{ + set(types::meas_report_app_layer_r15); + return c; +} +void meas_report_app_layer_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void meas_report_app_layer_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9056,6 +9451,15 @@ void proximity_ind_r9_s::crit_exts_c_::set(types::options e) { type_ = e; } +proximity_ind_r9_s::crit_exts_c_::c1_c_& proximity_ind_r9_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void proximity_ind_r9_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void proximity_ind_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9108,6 +9512,23 @@ void proximity_ind_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +proximity_ind_r9_ies_s& proximity_ind_r9_s::crit_exts_c_::c1_c_::set_proximity_ind_r9() +{ + set(types::proximity_ind_r9); + return c; +} +void proximity_ind_r9_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void proximity_ind_r9_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void proximity_ind_r9_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void proximity_ind_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9196,6 +9617,15 @@ void rn_recfg_complete_r10_s::crit_exts_c_::set(types::options e) { type_ = e; } +rn_recfg_complete_r10_s::crit_exts_c_::c1_c_& rn_recfg_complete_r10_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rn_recfg_complete_r10_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rn_recfg_complete_r10_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9248,6 +9678,23 @@ void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rn_recfg_complete_r10_ies_s& rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set_rn_recfg_complete_r10() +{ + set(types::rn_recfg_complete_r10); + return c; +} +void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rn_recfg_complete_r10_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9336,6 +9783,15 @@ void rrc_conn_recfg_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_s::crit_exts_c_::set_rrc_conn_recfg_complete_r8() +{ + set(types::rrc_conn_recfg_complete_r8); + return c; +} +void rrc_conn_recfg_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9412,6 +9868,15 @@ void rrc_conn_reest_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_s::crit_exts_c_::set_rrc_conn_reest_complete_r8() +{ + set(types::rrc_conn_reest_complete_r8); + return c; +} +void rrc_conn_reest_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9488,6 +9953,15 @@ void rrc_conn_resume_complete_r13_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13_s::crit_exts_c_::set_rrc_conn_resume_complete_r13() +{ + set(types::rrc_conn_resume_complete_r13); + return c; +} +void rrc_conn_resume_complete_r13_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_resume_complete_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9564,6 +10038,15 @@ void rrc_conn_setup_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_complete_s::crit_exts_c_::c1_c_& rrc_conn_setup_complete_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_setup_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9616,6 +10099,23 @@ void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_complete_r8_ies_s& rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set_rrc_conn_setup_complete_r8() +{ + set(types::rrc_conn_setup_complete_r8); + return c; +} +void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_setup_complete_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9701,6 +10201,15 @@ void scg_fail_info_r12_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_fail_info_r12_s::crit_exts_c_::c1_c_& scg_fail_info_r12_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void scg_fail_info_r12_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_fail_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9753,6 +10262,23 @@ void scg_fail_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +scg_fail_info_r12_ies_s& scg_fail_info_r12_s::crit_exts_c_::c1_c_::set_scg_fail_info_r12() +{ + set(types::scg_fail_info_r12); + return c; +} +void scg_fail_info_r12_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void scg_fail_info_r12_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void scg_fail_info_r12_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void scg_fail_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9838,6 +10364,15 @@ void scg_fail_info_nr_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_& scg_fail_info_nr_r15_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void scg_fail_info_nr_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_fail_info_nr_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9890,6 +10425,23 @@ void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +scg_fail_info_nr_r15_ies_s& scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set_scg_fail_info_nr_r15() +{ + set(types::scg_fail_info_nr_r15); + return c; +} +void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void scg_fail_info_nr_r15_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9975,6 +10527,15 @@ void sidelink_ue_info_r12_s::crit_exts_c_::set(types::options e) { type_ = e; } +sidelink_ue_info_r12_s::crit_exts_c_::c1_c_& sidelink_ue_info_r12_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void sidelink_ue_info_r12_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void sidelink_ue_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10027,6 +10588,23 @@ void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +sidelink_ue_info_r12_ies_s& sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set_sidelink_ue_info_r12() +{ + set(types::sidelink_ue_info_r12); + return c; +} +void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void sidelink_ue_info_r12_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10112,6 +10690,15 @@ void ueassist_info_r11_s::crit_exts_c_::set(types::options e) { type_ = e; } +ueassist_info_r11_s::crit_exts_c_::c1_c_& ueassist_info_r11_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ueassist_info_r11_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ueassist_info_r11_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10164,6 +10751,23 @@ void ueassist_info_r11_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ueassist_info_r11_ies_s& ueassist_info_r11_s::crit_exts_c_::c1_c_::set_ue_assist_info_r11() +{ + set(types::ue_assist_info_r11); + return c; +} +void ueassist_info_r11_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ueassist_info_r11_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ueassist_info_r11_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ueassist_info_r11_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10252,6 +10856,15 @@ void ue_info_resp_r9_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_info_resp_r9_s::crit_exts_c_::c1_c_& ue_info_resp_r9_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_info_resp_r9_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_info_resp_r9_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10304,6 +10917,23 @@ void ue_info_resp_r9_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_info_resp_r9_ies_s& ue_info_resp_r9_s::crit_exts_c_::c1_c_::set_ue_info_resp_r9() +{ + set(types::ue_info_resp_r9); + return c; +} +void ue_info_resp_r9_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_info_resp_r9_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_info_resp_r9_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_info_resp_r9_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10389,6 +11019,15 @@ void ul_ho_prep_transfer_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_ho_prep_transfer_s::crit_exts_c_::c1_c_& ul_ho_prep_transfer_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ul_ho_prep_transfer_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_ho_prep_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10441,6 +11080,23 @@ void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ul_ho_prep_transfer_r8_ies_s& ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set_ul_ho_prep_transfer_r8() +{ + set(types::ul_ho_prep_transfer_r8); + return c; +} +void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_ho_prep_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10526,6 +11182,15 @@ void ul_info_transfer_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_info_transfer_s::crit_exts_c_::c1_c_& ul_info_transfer_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ul_info_transfer_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10578,6 +11243,23 @@ void ul_info_transfer_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ul_info_transfer_r8_ies_s& ul_info_transfer_s::crit_exts_c_::c1_c_::set_ul_info_transfer_r8() +{ + set(types::ul_info_transfer_r8); + return c; +} +void ul_info_transfer_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_info_transfer_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_info_transfer_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_info_transfer_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10663,6 +11345,15 @@ void ul_info_transfer_mrdc_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_& ul_info_transfer_mrdc_r15_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ul_info_transfer_mrdc_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_info_transfer_mrdc_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10715,6 +11406,23 @@ void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ul_info_transfer_mrdc_r15_ies_s& ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set_ul_info_transfer_mrdc_r15() +{ + set(types::ul_info_transfer_mrdc_r15); + return c; +} +void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_info_transfer_mrdc_r15_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10800,6 +11508,15 @@ void wlan_conn_status_report_r13_s::crit_exts_c_::set(types::options e) { type_ = e; } +wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_& wlan_conn_status_report_r13_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void wlan_conn_status_report_r13_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void wlan_conn_status_report_r13_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10852,6 +11569,23 @@ void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +wlan_conn_status_report_r13_ies_s& wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set_wlan_conn_status_report_r13() +{ + set(types::wlan_conn_status_report_r13); + return c; +} +void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void wlan_conn_status_report_r13_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10980,6 +11714,16 @@ ul_dcch_msg_type_c& ul_dcch_msg_type_c::operator=(const ul_dcch_msg_type_c& othe return *this; } +ul_dcch_msg_type_c::c1_c_& ul_dcch_msg_type_c::set_c1() +{ + set(types::c1); + return c.get(); +} +ul_dcch_msg_type_c::msg_class_ext_c_& ul_dcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); + return c.get(); +} void ul_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -11267,6 +12011,86 @@ ul_dcch_msg_type_c::c1_c_& ul_dcch_msg_type_c::c1_c_::operator=(const ul_dcch_ms return *this; } +csfb_params_request_cdma2000_s& ul_dcch_msg_type_c::c1_c_::set_csfb_params_request_cdma2000() +{ + set(types::csfb_params_request_cdma2000); + return c.get(); +} +meas_report_s& ul_dcch_msg_type_c::c1_c_::set_meas_report() +{ + set(types::meas_report); + return c.get(); +} +rrc_conn_recfg_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_conn_recfg_complete() +{ + set(types::rrc_conn_recfg_complete); + return c.get(); +} +rrc_conn_reest_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_conn_reest_complete() +{ + set(types::rrc_conn_reest_complete); + return c.get(); +} +rrc_conn_setup_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_conn_setup_complete() +{ + set(types::rrc_conn_setup_complete); + return c.get(); +} +security_mode_complete_s& ul_dcch_msg_type_c::c1_c_::set_security_mode_complete() +{ + set(types::security_mode_complete); + return c.get(); +} +security_mode_fail_s& ul_dcch_msg_type_c::c1_c_::set_security_mode_fail() +{ + set(types::security_mode_fail); + return c.get(); +} +ue_cap_info_s& ul_dcch_msg_type_c::c1_c_::set_ue_cap_info() +{ + set(types::ue_cap_info); + return c.get(); +} +ul_ho_prep_transfer_s& ul_dcch_msg_type_c::c1_c_::set_ul_ho_prep_transfer() +{ + set(types::ul_ho_prep_transfer); + return c.get(); +} +ul_info_transfer_s& ul_dcch_msg_type_c::c1_c_::set_ul_info_transfer() +{ + set(types::ul_info_transfer); + return c.get(); +} +counter_check_resp_s& ul_dcch_msg_type_c::c1_c_::set_counter_check_resp() +{ + set(types::counter_check_resp); + return c.get(); +} +ue_info_resp_r9_s& ul_dcch_msg_type_c::c1_c_::set_ue_info_resp_r9() +{ + set(types::ue_info_resp_r9); + return c.get(); +} +proximity_ind_r9_s& ul_dcch_msg_type_c::c1_c_::set_proximity_ind_r9() +{ + set(types::proximity_ind_r9); + return c.get(); +} +rn_recfg_complete_r10_s& ul_dcch_msg_type_c::c1_c_::set_rn_recfg_complete_r10() +{ + set(types::rn_recfg_complete_r10); + return c.get(); +} +mbms_count_resp_r10_s& ul_dcch_msg_type_c::c1_c_::set_mbms_count_resp_r10() +{ + set(types::mbms_count_resp_r10); + return c.get(); +} +inter_freq_rstd_meas_ind_r10_s& ul_dcch_msg_type_c::c1_c_::set_inter_freq_rstd_meas_ind_r10() +{ + set(types::inter_freq_rstd_meas_ind_r10); + return c.get(); +} void ul_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11463,6 +12287,15 @@ void ul_dcch_msg_type_c::msg_class_ext_c_::set(types::options e) { type_ = e; } +ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_& ul_dcch_msg_type_c::msg_class_ext_c_::set_c2() +{ + set(types::c2); + return c; +} +void ul_dcch_msg_type_c::msg_class_ext_c_::set_msg_class_ext_future_r11() +{ + set(types::msg_class_ext_future_r11); +} void ul_dcch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11717,6 +12550,81 @@ ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::operator=(const ul_dcch_msg_type_c: return *this; } +ueassist_info_r11_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_ue_assist_info_r11() +{ + set(types::ue_assist_info_r11); + return c.get(); +} +in_dev_coex_ind_r11_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_in_dev_coex_ind_r11() +{ + set(types::in_dev_coex_ind_r11); + return c.get(); +} +mbms_interest_ind_r11_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_mbms_interest_ind_r11() +{ + set(types::mbms_interest_ind_r11); + return c.get(); +} +scg_fail_info_r12_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_scg_fail_info_r12() +{ + set(types::scg_fail_info_r12); + return c.get(); +} +sidelink_ue_info_r12_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_sidelink_ue_info_r12() +{ + set(types::sidelink_ue_info_r12); + return c.get(); +} +wlan_conn_status_report_r13_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_wlan_conn_status_report_r13() +{ + set(types::wlan_conn_status_report_r13); + return c.get(); +} +rrc_conn_resume_complete_r13_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_rrc_conn_resume_complete_r13() +{ + set(types::rrc_conn_resume_complete_r13); + return c.get(); +} +ul_info_transfer_mrdc_r15_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_ul_info_transfer_mrdc_r15() +{ + set(types::ul_info_transfer_mrdc_r15); + return c.get(); +} +scg_fail_info_nr_r15_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_scg_fail_info_nr_r15() +{ + set(types::scg_fail_info_nr_r15); + return c.get(); +} +meas_report_app_layer_r15_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_meas_report_app_layer_r15() +{ + set(types::meas_report_app_layer_r15); + return c.get(); +} +fail_info_r15_s& ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_fail_info_r15() +{ + set(types::fail_info_r15); + return c.get(); +} +void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare5() +{ + set(types::spare5); +} +void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare4() +{ + set(types::spare4); +} +void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare3() +{ + set(types::spare3); +} +void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare2() +{ + set(types::spare2); +} +void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::set_spare1() +{ + set(types::spare1); +} void ul_dcch_msg_type_c::msg_class_ext_c_::c2_c_::to_json(json_writer& j) const { j.start_obj(); diff --git a/lib/src/asn1/rrc_nbiot.cc b/lib/src/asn1/rrc_nbiot.cc index ee6770ed5..cf36bbfe0 100644 --- a/lib/src/asn1/rrc_nbiot.cc +++ b/lib/src/asn1/rrc_nbiot.cc @@ -62,7 +62,7 @@ void ab_cfg_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ab_cfg_nb_r13_s::ab_category_r13_opts::to_string() const +const char* ab_cfg_nb_r13_s::ab_category_r13_opts::to_string() const { static const char* options[] = {"a", "b", "c"}; return convert_enum_idx(options, 3, value, "ab_cfg_nb_r13_s::ab_category_r13_e_"); @@ -100,7 +100,7 @@ void ab_cfg_plmn_nb_r13_s::to_json(json_writer& j) const } // T-PollRetransmit-NB-r13 ::= ENUMERATED -std::string t_poll_retx_nb_r13_opts::to_string() const +const char* t_poll_retx_nb_r13_opts::to_string() const { static const char* options[] = {"ms250", "ms500", @@ -160,7 +160,7 @@ void carrier_freq_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_string() const +const char* carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_string() const { static const char* options[] = {"v-10", "v-9", "v-8", "v-7", "v-6", "v-5", "v-4", "v-3", "v-2", "v-1", "v-0dot5", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9"}; @@ -172,7 +172,7 @@ float carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_number() const 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; return map_enum_number(options, 21, value, "carrier_freq_nb_r13_s::carrier_freq_offset_r13_e_"); } -std::string carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_number_string() const +const char* carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_number_string() const { static const char* options[] = {"-10", "-9", "-8", "-7", "-6", "-5", "-4", "-3", "-2", "-1", "-0.5", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; @@ -199,7 +199,7 @@ void carrier_freq_nb_v1550_s::to_json(json_writer& j) const j.end_obj(); } -std::string carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_string() const +const char* carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_string() const { static const char* options[] = {"v-8dot5", "v-4dot5", "v3dot5", "v7dot5"}; return convert_enum_idx(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_"); @@ -209,7 +209,7 @@ float carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_number() const static const float options[] = {-8.5, -4.5, 3.5, 7.5}; return map_enum_number(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_"); } -std::string carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_number_string() const +const char* carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_number_string() const { static const char* options[] = {"-8.5", "-4.5", "3.5", "7.5"}; return convert_enum_idx(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_"); @@ -305,6 +305,16 @@ dl_bitmap_nb_r13_c& dl_bitmap_nb_r13_c::operator=(const dl_bitmap_nb_r13_c& othe return *this; } +fixed_bitstring<10>& dl_bitmap_nb_r13_c::set_sf_pattern10_r13() +{ + set(types::sf_pattern10_r13); + return c.get >(); +} +fixed_bitstring<40>& dl_bitmap_nb_r13_c::set_sf_pattern40_r13() +{ + set(types::sf_pattern40_r13); + return c.get >(); +} void dl_bitmap_nb_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -355,7 +365,7 @@ SRSASN_CODE dl_bitmap_nb_r13_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_bitmap_nb_r13_c::types_opts::to_string() const +const char* dl_bitmap_nb_r13_c::types_opts::to_string() const { static const char* options[] = {"subframePattern10-r13", "subframePattern40-r13"}; return convert_enum_idx(options, 2, value, "dl_bitmap_nb_r13_c::types"); @@ -392,7 +402,7 @@ void dl_gap_cfg_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string dl_gap_cfg_nb_r13_s::dl_gap_thres_r13_opts::to_string() const +const char* dl_gap_cfg_nb_r13_s::dl_gap_thres_r13_opts::to_string() const { static const char* options[] = {"n32", "n64", "n128", "n256"}; return convert_enum_idx(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_thres_r13_e_"); @@ -403,7 +413,7 @@ uint16_t dl_gap_cfg_nb_r13_s::dl_gap_thres_r13_opts::to_number() const return map_enum_number(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_thres_r13_e_"); } -std::string dl_gap_cfg_nb_r13_s::dl_gap_periodicity_r13_opts::to_string() const +const char* dl_gap_cfg_nb_r13_s::dl_gap_periodicity_r13_opts::to_string() const { static const char* options[] = {"sf64", "sf128", "sf256", "sf512"}; return convert_enum_idx(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_periodicity_r13_e_"); @@ -414,7 +424,7 @@ uint16_t dl_gap_cfg_nb_r13_s::dl_gap_periodicity_r13_opts::to_number() const return map_enum_number(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_periodicity_r13_e_"); } -std::string dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_opts::to_string() const +const char* dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_opts::to_string() const { static const char* options[] = {"oneEighth", "oneFourth", "threeEighth", "oneHalf"}; return convert_enum_idx(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_e_"); @@ -424,7 +434,7 @@ float dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_opts::to_number() const static const float options[] = {0.125, 0.25, 0.375, 0.5}; return map_enum_number(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_e_"); } -std::string dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_opts::to_number_string() const +const char* dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_opts::to_number_string() const { static const char* options[] = {"1/8", "1/4", "3/8", "1/2"}; return convert_enum_idx(options, 4, value, "dl_gap_cfg_nb_r13_s::dl_gap_dur_coeff_r13_e_"); @@ -447,7 +457,7 @@ void dl_gap_cfg_nb_v1530_s::to_json(json_writer& j) const } // TDD-UL-DL-AlignmentOffset-NB-r15 ::= ENUMERATED -std::string tdd_ul_dl_align_offset_nb_r15_opts::to_string() const +const char* tdd_ul_dl_align_offset_nb_r15_opts::to_string() const { static const char* options[] = {"khz-7dot5", "khz0", "khz7dot5"}; return convert_enum_idx(options, 3, value, "tdd_ul_dl_align_offset_nb_r15_e"); @@ -457,7 +467,7 @@ float tdd_ul_dl_align_offset_nb_r15_opts::to_number() const static const float options[] = {-7.5, 0.0, 7.5}; return map_enum_number(options, 3, value, "tdd_ul_dl_align_offset_nb_r15_e"); } -std::string tdd_ul_dl_align_offset_nb_r15_opts::to_number_string() const +const char* tdd_ul_dl_align_offset_nb_r15_opts::to_number_string() const { static const char* options[] = {"-7.5", "0", "7.5"}; return convert_enum_idx(options, 3, value, "tdd_ul_dl_align_offset_nb_r15_e"); @@ -486,7 +496,7 @@ void ul_am_rlc_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_am_rlc_nb_r13_s::max_retx_thres_r13_opts::to_string() const +const char* ul_am_rlc_nb_r13_s::max_retx_thres_r13_opts::to_string() const { static const char* options[] = {"t1", "t2", "t3", "t4", "t6", "t8", "t16", "t32"}; return convert_enum_idx(options, 8, value, "ul_am_rlc_nb_r13_s::max_retx_thres_r13_e_"); @@ -498,7 +508,7 @@ uint8_t ul_am_rlc_nb_r13_s::max_retx_thres_r13_opts::to_number() const } // ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED -std::string ack_nack_num_repeats_nb_r13_opts::to_string() const +const char* ack_nack_num_repeats_nb_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128"}; return convert_enum_idx(options, 8, value, "ack_nack_num_repeats_nb_r13_e"); @@ -666,6 +676,23 @@ void dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::set(types::option { type_ = e; } +void dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::set_use_no_bitmap_r13() +{ + set(types::use_no_bitmap_r13); +} +void dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::set_use_anchor_bitmap_r13() +{ + set(types::use_anchor_bitmap_r13); +} +dl_bitmap_nb_r13_c& dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::set_explicit_bitmap_cfg_r13() +{ + set(types::explicit_bitmap_cfg_r13); + return c; +} +void dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::set_spare() +{ + set(types::spare); +} void dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -726,7 +753,7 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::unpack(cbi return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::types_opts::to_string() const +const char* dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::types_opts::to_string() const { static const char* options[] = {"useNoBitmap-r13", "useAnchorBitmap-r13", "explicitBitmapConfiguration-r13", "spare"}; return convert_enum_idx(options, 4, value, "dl_carrier_cfg_ded_nb_r13_s::dl_bitmap_non_anchor_r13_c_::types"); @@ -736,6 +763,23 @@ void dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::set(types::options e { type_ = e; } +void dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::set_use_no_gap_r13() +{ + set(types::use_no_gap_r13); +} +void dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::set_use_anchor_gap_cfg_r13() +{ + set(types::use_anchor_gap_cfg_r13); +} +dl_gap_cfg_nb_r13_s& dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::set_explicit_gap_cfg_r13() +{ + set(types::explicit_gap_cfg_r13); + return c; +} +void dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::set_spare() +{ + set(types::spare); +} void dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -796,7 +840,7 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::unpack(cbit_r return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::types_opts::to_string() const +const char* dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::types_opts::to_string() const { static const char* options[] = {"useNoGap-r13", "useAnchorGapConfig-r13", "explicitGapConfiguration-r13", "spare"}; return convert_enum_idx(options, 4, value, "dl_carrier_cfg_ded_nb_r13_s::dl_gap_non_anchor_r13_c_::types"); @@ -872,6 +916,18 @@ dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::op return *this; } +dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::same_pci_r13_s_& +dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::set_same_pci_r13() +{ + set(types::same_pci_r13); + return c.get(); +} +dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::different_pci_r13_s_& +dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::set_different_pci_r13() +{ + set(types::different_pci_r13); + return c.get(); +} void dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -928,7 +984,7 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_in return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::different_pci_r13_s_:: +const char* dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::different_pci_r13_s_:: eutra_num_crs_ports_r13_opts::to_string() const { static const char* options[] = {"same", "four"}; @@ -950,14 +1006,14 @@ uint8_t dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r1 return 0; } -std::string dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::types_opts::to_string() const +const char* dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::types_opts::to_string() const { static const char* options[] = {"samePCI-r13", "differentPCI-r13"}; return convert_enum_idx( options, 2, value, "dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::same_pci_ind_r13_c_::types"); } -std::string dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::eutra_ctrl_region_size_r13_opts::to_string() const +const char* dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::eutra_ctrl_region_size_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3"}; return convert_enum_idx( @@ -970,7 +1026,7 @@ uint8_t dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::eutra_ctrl_regi options, 3, value, "dl_carrier_cfg_ded_nb_r13_s::inband_carrier_info_r13_s_::eutra_ctrl_region_size_r13_e_"); } -std::string dl_carrier_cfg_ded_nb_r13_s::nrs_pwr_offset_non_anchor_v1330_opts::to_string() const +const char* dl_carrier_cfg_ded_nb_r13_s::nrs_pwr_offset_non_anchor_v1330_opts::to_string() const { static const char* options[] = {"dB-12", "dB-10", "dB-8", "dB-6", "dB-4", "dB-2", "dB0", "dB3"}; return convert_enum_idx(options, 8, value, "dl_carrier_cfg_ded_nb_r13_s::nrs_pwr_offset_non_anchor_v1330_e_"); @@ -1060,7 +1116,7 @@ void pdcp_cfg_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_cfg_nb_r13_s::discard_timer_r13_opts::to_string() const +const char* pdcp_cfg_nb_r13_s::discard_timer_r13_opts::to_string() const { static const char* options[] = {"ms5120", "ms10240", "ms20480", "ms40960", "ms81920", "infinity", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "pdcp_cfg_nb_r13_s::discard_timer_r13_e_"); @@ -1075,6 +1131,15 @@ void pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::set(types::options e) { type_ = e; } +void pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::set_not_used() +{ + set(types::not_used); +} +pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::rohc_s_& pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::set_rohc() +{ + set(types::rohc); + return c; +} void pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1159,7 +1224,7 @@ SRSASN_CODE pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::types_opts::to_string() const +const char* pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::types_opts::to_string() const { static const char* options[] = {"notUsed", "rohc"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_nb_r13_s::hdr_compress_r13_c_::types"); @@ -1170,6 +1235,23 @@ void rlc_cfg_nb_r13_c::set(types::options e) { type_ = e; } +rlc_cfg_nb_r13_c::am_s_& rlc_cfg_nb_r13_c::set_am() +{ + set(types::am); + return c; +} +void rlc_cfg_nb_r13_c::set_um_bi_dir_r15() +{ + set(types::um_bi_dir_r15); +} +void rlc_cfg_nb_r13_c::set_um_uni_dir_ul_r15() +{ + set(types::um_uni_dir_ul_r15); +} +void rlc_cfg_nb_r13_c::set_um_uni_dir_dl_r15() +{ + set(types::um_uni_dir_dl_r15); +} void rlc_cfg_nb_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -1237,7 +1319,7 @@ SRSASN_CODE rlc_cfg_nb_r13_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlc_cfg_nb_r13_c::types_opts::to_string() const +const char* rlc_cfg_nb_r13_c::types_opts::to_string() const { static const char* options[] = { "am", "um-Bi-Directional-r15", "um-Uni-Directional-UL-r15", "um-Uni-Directional-DL-r15"}; @@ -1352,6 +1434,16 @@ sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_& sr_nprach_res_nb_r15_s::n return *this; } +uint8_t& sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::set_nprach_fmt0_fmt1_r15() +{ + set(types::nprach_fmt0_fmt1_r15); + return c.get(); +} +uint8_t& sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::set_nprach_fmt2_r15() +{ + set(types::nprach_fmt2_r15); + return c.get(); +} void sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1402,7 +1494,7 @@ SRSASN_CODE sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::unpack(cbit_r return SRSASN_SUCCESS; } -std::string sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::types_opts::to_string() const +const char* sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::types_opts::to_string() const { static const char* options[] = {"nprach-Fmt0Fmt1-r15", "nprach-Fmt2-r15"}; return convert_enum_idx(options, 2, value, "sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::types"); @@ -1413,7 +1505,7 @@ uint8_t sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::types_opts::to_nu return map_enum_number(options, 2, value, "sr_nprach_res_nb_r15_s::nprach_sub_carrier_idx_r15_c_::types"); } -std::string sr_nprach_res_nb_r15_s::alpha_r15_opts::to_string() const +const char* sr_nprach_res_nb_r15_s::alpha_r15_opts::to_string() const { static const char* options[] = {"al0", "al04", "al05", "al06", "al07", "al08", "al09", "al1"}; return convert_enum_idx(options, 8, value, "sr_nprach_res_nb_r15_s::alpha_r15_e_"); @@ -1423,7 +1515,7 @@ float sr_nprach_res_nb_r15_s::alpha_r15_opts::to_number() const static const float options[] = {0.0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}; return map_enum_number(options, 8, value, "sr_nprach_res_nb_r15_s::alpha_r15_e_"); } -std::string sr_nprach_res_nb_r15_s::alpha_r15_opts::to_number_string() const +const char* sr_nprach_res_nb_r15_s::alpha_r15_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1"}; return convert_enum_idx(options, 8, value, "sr_nprach_res_nb_r15_s::alpha_r15_e_"); @@ -1641,6 +1733,15 @@ void drx_cfg_nb_r13_c::set(types::options e) { type_ = e; } +void drx_cfg_nb_r13_c::set_release() +{ + set(types::release); +} +drx_cfg_nb_r13_c::setup_s_& drx_cfg_nb_r13_c::set_setup() +{ + set(types::setup); + return c; +} void drx_cfg_nb_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -1706,7 +1807,7 @@ SRSASN_CODE drx_cfg_nb_r13_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drx_cfg_nb_r13_c::setup_s_::on_dur_timer_r13_opts::to_string() const +const char* drx_cfg_nb_r13_c::setup_s_::on_dur_timer_r13_opts::to_string() const { static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "spare"}; return convert_enum_idx(options, 8, value, "drx_cfg_nb_r13_c::setup_s_::on_dur_timer_r13_e_"); @@ -1717,7 +1818,7 @@ uint8_t drx_cfg_nb_r13_c::setup_s_::on_dur_timer_r13_opts::to_number() const return map_enum_number(options, 7, value, "drx_cfg_nb_r13_c::setup_s_::on_dur_timer_r13_e_"); } -std::string drx_cfg_nb_r13_c::setup_s_::drx_inactivity_timer_r13_opts::to_string() const +const char* drx_cfg_nb_r13_c::setup_s_::drx_inactivity_timer_r13_opts::to_string() const { static const char* options[] = {"pp0", "pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32"}; return convert_enum_idx(options, 8, value, "drx_cfg_nb_r13_c::setup_s_::drx_inactivity_timer_r13_e_"); @@ -1728,7 +1829,7 @@ uint8_t drx_cfg_nb_r13_c::setup_s_::drx_inactivity_timer_r13_opts::to_number() c return map_enum_number(options, 8, value, "drx_cfg_nb_r13_c::setup_s_::drx_inactivity_timer_r13_e_"); } -std::string drx_cfg_nb_r13_c::setup_s_::drx_retx_timer_r13_opts::to_string() const +const char* drx_cfg_nb_r13_c::setup_s_::drx_retx_timer_r13_opts::to_string() const { static const char* options[] = {"pp0", "pp1", @@ -1754,7 +1855,7 @@ uint8_t drx_cfg_nb_r13_c::setup_s_::drx_retx_timer_r13_opts::to_number() const return map_enum_number(options, 9, value, "drx_cfg_nb_r13_c::setup_s_::drx_retx_timer_r13_e_"); } -std::string drx_cfg_nb_r13_c::setup_s_::drx_cycle_r13_opts::to_string() const +const char* drx_cfg_nb_r13_c::setup_s_::drx_cycle_r13_opts::to_string() const { static const char* options[] = {"sf256", "sf512", @@ -1780,7 +1881,7 @@ uint16_t drx_cfg_nb_r13_c::setup_s_::drx_cycle_r13_opts::to_number() const return map_enum_number(options, 12, value, "drx_cfg_nb_r13_c::setup_s_::drx_cycle_r13_e_"); } -std::string drx_cfg_nb_r13_c::setup_s_::drx_ul_retx_timer_r13_opts::to_string() const +const char* drx_cfg_nb_r13_c::setup_s_::drx_ul_retx_timer_r13_opts::to_string() const { static const char* options[] = {"pp0", "pp1", @@ -1833,7 +1934,7 @@ void npdcch_cfg_ded_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string npdcch_cfg_ded_nb_r13_s::npdcch_num_repeats_r13_opts::to_string() const +const char* npdcch_cfg_ded_nb_r13_s::npdcch_num_repeats_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -1859,7 +1960,7 @@ uint16_t npdcch_cfg_ded_nb_r13_s::npdcch_num_repeats_r13_opts::to_number() const return map_enum_number(options, 12, value, "npdcch_cfg_ded_nb_r13_s::npdcch_num_repeats_r13_e_"); } -std::string npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_opts::to_string() const +const char* npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx(options, 8, value, "npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_e_"); @@ -1869,13 +1970,13 @@ float npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_opts::to_number() const static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; return map_enum_number(options, 8, value, "npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_e_"); } -std::string npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_opts::to_number_string() const +const char* npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx(options, 8, value, "npdcch_cfg_ded_nb_r13_s::npdcch_start_sf_uss_r13_e_"); } -std::string npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_opts::to_string() const +const char* npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_opts::to_string() const { static const char* options[] = {"zero", "oneEighth", "oneFourth", "threeEighth"}; return convert_enum_idx(options, 4, value, "npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_e_"); @@ -1885,7 +1986,7 @@ float npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_opts::to_number() const static const float options[] = {0.0, 0.125, 0.25, 0.375}; return map_enum_number(options, 4, value, "npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_e_"); } -std::string npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_opts::to_number_string() const +const char* npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8"}; return convert_enum_idx(options, 4, value, "npdcch_cfg_ded_nb_r13_s::npdcch_offset_uss_r13_e_"); @@ -1911,7 +2012,7 @@ void npdcch_cfg_ded_nb_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string npdcch_cfg_ded_nb_v1530_s::npdcch_start_sf_uss_v1530_opts::to_string() const +const char* npdcch_cfg_ded_nb_v1530_s::npdcch_start_sf_uss_v1530_opts::to_string() const { static const char* options[] = {"v96", "v128"}; return convert_enum_idx(options, 2, value, "npdcch_cfg_ded_nb_v1530_s::npdcch_start_sf_uss_v1530_e_"); @@ -1969,7 +2070,7 @@ void npusch_cfg_ded_nb_r13_s::to_json(json_writer& j) const } // PeriodicBSR-Timer-NB-r13 ::= ENUMERATED -std::string periodic_bsr_timer_nb_r13_opts::to_string() const +const char* periodic_bsr_timer_nb_r13_opts::to_string() const { static const char* options[] = {"pp2", "pp4", "pp8", "pp16", "pp64", "pp128", "infinity", "spare"}; return convert_enum_idx(options, 8, value, "periodic_bsr_timer_nb_r13_e"); @@ -1981,7 +2082,7 @@ int16_t periodic_bsr_timer_nb_r13_opts::to_number() const } // RetxBSR-Timer-NB-r13 ::= ENUMERATED -std::string retx_bsr_timer_nb_r13_opts::to_string() const +const char* retx_bsr_timer_nb_r13_opts::to_string() const { static const char* options[] = {"pp4", "pp16", "pp64", "pp128", "pp256", "pp512", "infinity", "spare"}; return convert_enum_idx(options, 8, value, "retx_bsr_timer_nb_r13_e"); @@ -1997,6 +2098,15 @@ void sr_sps_bsr_cfg_nb_r15_c::set(types::options e) { type_ = e; } +void sr_sps_bsr_cfg_nb_r15_c::set_release() +{ + set(types::release); +} +sr_sps_bsr_cfg_nb_r15_c::setup_s_& sr_sps_bsr_cfg_nb_r15_c::set_setup() +{ + set(types::setup); + return c; +} void sr_sps_bsr_cfg_nb_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -2050,7 +2160,7 @@ SRSASN_CODE sr_sps_bsr_cfg_nb_r15_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sr_sps_bsr_cfg_nb_r15_c::setup_s_::semi_persist_sched_interv_ul_r15_opts::to_string() const +const char* sr_sps_bsr_cfg_nb_r15_c::setup_s_::semi_persist_sched_interv_ul_r15_opts::to_string() const { static const char* options[] = {"sf128", "sf256", "sf512", "sf1024", "sf1280", "sf2048", "sf2560", "sf5120"}; return convert_enum_idx(options, 8, value, "sr_sps_bsr_cfg_nb_r15_c::setup_s_::semi_persist_sched_interv_ul_r15_e_"); @@ -2066,6 +2176,15 @@ void sr_without_harq_ack_cfg_nb_r15_c::set(types::options e) { type_ = e; } +void sr_without_harq_ack_cfg_nb_r15_c::set_release() +{ + set(types::release); +} +sr_without_harq_ack_cfg_nb_r15_c::setup_s_& sr_without_harq_ack_cfg_nb_r15_c::set_setup() +{ + set(types::setup); + return c; +} void sr_without_harq_ack_cfg_nb_r15_c::to_json(json_writer& j) const { j.start_obj(); @@ -2220,6 +2339,15 @@ void srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::set(types::options e) { type_ = e; } +rlc_cfg_nb_r13_c& srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::set_default_value() +{ + set(types::default_value); +} void srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2268,7 +2396,7 @@ SRSASN_CODE srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::types_opts::to_string() const +const char* srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "srb_to_add_mod_nb_r13_s::rlc_cfg_r13_c_::types"); @@ -2278,6 +2406,15 @@ void srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::set(types::options e) { type_ = e; } +lc_ch_cfg_nb_r13_s& srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::set_explicit_value() +{ + set(types::explicit_value); + return c; +} +void srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::set_default_value() +{ + set(types::default_value); +} void srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2326,7 +2463,7 @@ SRSASN_CODE srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::types_opts::to_string() const +const char* srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue", "defaultValue"}; return convert_enum_idx(options, 2, value, "srb_to_add_mod_nb_r13_s::lc_ch_cfg_r13_c_::types"); @@ -2504,6 +2641,15 @@ void mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::set(types::options e) { type_ = e; } +void mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::setup_s_& mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2554,7 +2700,7 @@ SRSASN_CODE mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::setup_s_::lc_ch_sr_prohibit_timer_r13_opts::to_string() const +const char* mac_main_cfg_nb_r13_s::lc_ch_sr_cfg_r13_c_::setup_s_::lc_ch_sr_prohibit_timer_r13_opts::to_string() const { static const char* options[] = {"pp2", "pp8", "pp32", "pp128", "pp512", "pp1024", "pp2048", "spare"}; return convert_enum_idx( @@ -2571,6 +2717,16 @@ void mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::set(types::options { type_ = e; } +void mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::set_release() +{ + set(types::release); +} +mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::setup_s_& +mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::set_setup() +{ + set(types::setup); + return c; +} void mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2621,7 +2777,7 @@ SRSASN_CODE mac_main_cfg_nb_r13_s::data_inactivity_timer_cfg_r14_c_::unpack(cbit return SRSASN_SUCCESS; } -std::string mac_main_cfg_nb_r13_s::drx_cycle_v1430_opts::to_string() const +const char* mac_main_cfg_nb_r13_s::drx_cycle_v1430_opts::to_string() const { static const char* options[] = {"sf1280", "sf2560", "sf5120", "sf10240"}; return convert_enum_idx(options, 4, value, "mac_main_cfg_nb_r13_s::drx_cycle_v1430_e_"); @@ -2783,6 +2939,15 @@ void rlf_timers_and_consts_nb_r13_c::set(types::options e) { type_ = e; } +void rlf_timers_and_consts_nb_r13_c::set_release() +{ + set(types::release); +} +rlf_timers_and_consts_nb_r13_c::setup_s_& rlf_timers_and_consts_nb_r13_c::set_setup() +{ + set(types::setup); + return c; +} void rlf_timers_and_consts_nb_r13_c::to_json(json_writer& j) const { j.start_obj(); @@ -2928,7 +3093,7 @@ void rlf_timers_and_consts_nb_r13_c::setup_s_::to_json(json_writer& j) const j.end_obj(); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t301_r13_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t301_r13_opts::to_string() const { static const char* options[] = {"ms2500", "ms4000", "ms6000", "ms10000", "ms15000", "ms25000", "ms40000", "ms60000"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t301_r13_e_"); @@ -2939,7 +3104,7 @@ uint16_t rlf_timers_and_consts_nb_r13_c::setup_s_::t301_r13_opts::to_number() co return map_enum_number(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t301_r13_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t310_r13_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t310_r13_opts::to_string() const { static const char* options[] = {"ms0", "ms200", "ms500", "ms1000", "ms2000", "ms4000", "ms8000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t310_r13_e_"); @@ -2950,7 +3115,7 @@ uint16_t rlf_timers_and_consts_nb_r13_c::setup_s_::t310_r13_opts::to_number() co return map_enum_number(options, 7, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t310_r13_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::n310_r13_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::n310_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::n310_r13_e_"); @@ -2961,7 +3126,7 @@ uint8_t rlf_timers_and_consts_nb_r13_c::setup_s_::n310_r13_opts::to_number() con return map_enum_number(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::n310_r13_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t311_r13_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t311_r13_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t311_r13_e_"); @@ -2972,7 +3137,7 @@ uint16_t rlf_timers_and_consts_nb_r13_c::setup_s_::t311_r13_opts::to_number() co return map_enum_number(options, 7, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t311_r13_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::n311_r13_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::n311_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::n311_r13_e_"); @@ -2983,7 +3148,7 @@ uint8_t rlf_timers_and_consts_nb_r13_c::setup_s_::n311_r13_opts::to_number() con return map_enum_number(options, 8, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::n311_r13_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1350_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1350_opts::to_string() const { static const char* options[] = {"ms40000", "ms60000", "ms90000", "ms120000"}; return convert_enum_idx(options, 4, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1350_e_"); @@ -2994,7 +3159,7 @@ uint32_t rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1350_opts::to_number() return map_enum_number(options, 4, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1350_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t301_v1530_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t301_v1530_opts::to_string() const { static const char* options[] = {"ms80000", "ms100000", "ms120000"}; return convert_enum_idx(options, 3, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t301_v1530_e_"); @@ -3005,7 +3170,7 @@ uint32_t rlf_timers_and_consts_nb_r13_c::setup_s_::t301_v1530_opts::to_number() return map_enum_number(options, 3, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t301_v1530_e_"); } -std::string rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1530_opts::to_string() const +const char* rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1530_opts::to_string() const { static const char* options[] = {"ms160000", "ms200000"}; return convert_enum_idx(options, 2, value, "rlf_timers_and_consts_nb_r13_c::setup_s_::t311_v1530_e_"); @@ -3207,6 +3372,15 @@ void rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::set(types::options e) { type_ = e; } +mac_main_cfg_nb_r13_s& rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::set_explicit_value_r13() +{ + set(types::explicit_value_r13); + return c; +} +void rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::set_default_value_r13() +{ + set(types::default_value_r13); +} void rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3255,7 +3429,7 @@ SRSASN_CODE rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::types_opts::to_string() const +const char* rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::types_opts::to_string() const { static const char* options[] = {"explicitValue-r13", "defaultValue-r13"}; return convert_enum_idx(options, 2, value, "rr_cfg_ded_nb_r13_s::mac_main_cfg_r13_c_::types"); @@ -3406,7 +3580,7 @@ void as_context_nb_s::to_json(json_writer& j) const } // ChannelRasterOffset-NB-r13 ::= ENUMERATED -std::string ch_raster_offset_nb_r13_opts::to_string() const +const char* ch_raster_offset_nb_r13_opts::to_string() const { static const char* options[] = {"khz-7dot5", "khz-2dot5", "khz2dot5", "khz7dot5"}; return convert_enum_idx(options, 4, value, "ch_raster_offset_nb_r13_e"); @@ -3416,7 +3590,7 @@ float ch_raster_offset_nb_r13_opts::to_number() const static const float options[] = {-7.5, -2.5, 2.5, 7.5}; return map_enum_number(options, 4, value, "ch_raster_offset_nb_r13_e"); } -std::string ch_raster_offset_nb_r13_opts::to_number_string() const +const char* ch_raster_offset_nb_r13_opts::to_number_string() const { static const char* options[] = {"-7.5", "-2.5", "2.5", "7.5"}; return convert_enum_idx(options, 4, value, "ch_raster_offset_nb_r13_e"); @@ -3471,7 +3645,7 @@ void inband_different_pci_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string inband_different_pci_nb_r13_s::eutra_num_crs_ports_r13_opts::to_string() const +const char* inband_different_pci_nb_r13_s::eutra_num_crs_ports_r13_opts::to_string() const { static const char* options[] = {"same", "four"}; return convert_enum_idx(options, 2, value, "inband_different_pci_nb_r13_s::eutra_num_crs_ports_r13_e_"); @@ -3659,6 +3833,26 @@ mib_nb_s::operation_mode_info_r13_c_::operator=(const mib_nb_s::operation_mode_i return *this; } +inband_same_pci_nb_r13_s& mib_nb_s::operation_mode_info_r13_c_::set_inband_same_pci_r13() +{ + set(types::inband_same_pci_r13); + return c.get(); +} +inband_different_pci_nb_r13_s& mib_nb_s::operation_mode_info_r13_c_::set_inband_different_pci_r13() +{ + set(types::inband_different_pci_r13); + return c.get(); +} +guardband_nb_r13_s& mib_nb_s::operation_mode_info_r13_c_::set_guardband_r13() +{ + set(types::guardband_r13); + return c.get(); +} +standalone_nb_r13_s& mib_nb_s::operation_mode_info_r13_c_::set_standalone_r13() +{ + set(types::standalone_r13); + return c.get(); +} void mib_nb_s::operation_mode_info_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3731,7 +3925,7 @@ SRSASN_CODE mib_nb_s::operation_mode_info_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mib_nb_s::operation_mode_info_r13_c_::types_opts::to_string() const +const char* mib_nb_s::operation_mode_info_r13_c_::types_opts::to_string() const { static const char* options[] = {"inband-SamePCI-r13", "inband-DifferentPCI-r13", "guardband-r13", "standalone-r13"}; return convert_enum_idx(options, 4, value, "mib_nb_s::operation_mode_info_r13_c_::types"); @@ -3814,7 +4008,7 @@ void sib_guardband_guardband_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_guardband_guardband_tdd_nb_r15_s::sib_guardband_guardband_location_r15_opts::to_string() const +const char* sib_guardband_guardband_tdd_nb_r15_s::sib_guardband_guardband_location_r15_opts::to_string() const { static const char* options[] = {"same", "opposite"}; return convert_enum_idx( @@ -3841,7 +4035,7 @@ void sib_guardband_inband_diff_pci_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_guardband_inband_diff_pci_tdd_nb_r15_s::sib_eutra_num_crs_ports_r15_opts::to_string() const +const char* sib_guardband_inband_diff_pci_tdd_nb_r15_s::sib_eutra_num_crs_ports_r15_opts::to_string() const { static const char* options[] = {"same", "four"}; return convert_enum_idx( @@ -3996,6 +4190,29 @@ guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_& guardband_tdd_nb_r15_s::sib_g return *this; } +sib_guardband_anchor_tdd_nb_r15_s& guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::set_sib_guardband_anchor_r15() +{ + set(types::sib_guardband_anchor_r15); + return c.get(); +} +sib_guardband_guardband_tdd_nb_r15_s& +guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::set_sib_guardband_guardband_r15() +{ + set(types::sib_guardband_guardband_r15); + return c.get(); +} +sib_guardband_inband_same_pci_tdd_nb_r15_s& +guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::set_sib_guardband_inband_same_pci_r15() +{ + set(types::sib_guardband_inband_same_pci_r15); + return c.get(); +} +sib_guardband_inband_diff_pci_tdd_nb_r15_s& +guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::set_sib_guardbandinband_diff_pci_r15() +{ + set(types::sib_guardbandinband_diff_pci_r15); + return c.get(); +} void guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4068,7 +4285,7 @@ SRSASN_CODE guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::types_opts::to_string() const +const char* guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::types_opts::to_string() const { static const char* options[] = {"sib-GuardbandAnchor-r15", "sib-GuardbandGuardband-r15", @@ -4077,7 +4294,7 @@ std::string guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::types_opts::to_st return convert_enum_idx(options, 4, value, "guardband_tdd_nb_r15_s::sib_guardband_info_r15_c_::types"); } -std::string guardband_tdd_nb_r15_s::eutra_bandwitdh_r15_opts::to_string() const +const char* guardband_tdd_nb_r15_s::eutra_bandwitdh_r15_opts::to_string() const { static const char* options[] = {"bw5or10", "bw15or20"}; return convert_enum_idx(options, 2, value, "guardband_tdd_nb_r15_s::eutra_bandwitdh_r15_e_"); @@ -4117,7 +4334,7 @@ void inband_different_pci_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string inband_different_pci_tdd_nb_r15_s::eutra_num_crs_ports_r15_opts::to_string() const +const char* inband_different_pci_tdd_nb_r15_s::eutra_num_crs_ports_r15_opts::to_string() const { static const char* options[] = {"same", "four"}; return convert_enum_idx(options, 2, value, "inband_different_pci_tdd_nb_r15_s::eutra_num_crs_ports_r15_e_"); @@ -4131,7 +4348,7 @@ uint8_t inband_different_pci_tdd_nb_r15_s::eutra_num_crs_ports_r15_opts::to_numb return 0; } -std::string inband_different_pci_tdd_nb_r15_s::sib_inband_location_r15_opts::to_string() const +const char* inband_different_pci_tdd_nb_r15_s::sib_inband_location_r15_opts::to_string() const { static const char* options[] = {"lower", "higher"}; return convert_enum_idx(options, 2, value, "inband_different_pci_tdd_nb_r15_s::sib_inband_location_r15_e_"); @@ -4160,7 +4377,7 @@ void inband_same_pci_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string inband_same_pci_tdd_nb_r15_s::sib_inband_location_r15_opts::to_string() const +const char* inband_same_pci_tdd_nb_r15_s::sib_inband_location_r15_opts::to_string() const { static const char* options[] = {"lower", "higher"}; return convert_enum_idx(options, 2, value, "inband_same_pci_tdd_nb_r15_s::sib_inband_location_r15_e_"); @@ -4189,7 +4406,7 @@ void standalone_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string standalone_tdd_nb_r15_s::sib_standalone_location_r15_opts::to_string() const +const char* standalone_tdd_nb_r15_s::sib_standalone_location_r15_opts::to_string() const { static const char* options[] = {"lower", "higher"}; return convert_enum_idx(options, 2, value, "standalone_tdd_nb_r15_s::sib_standalone_location_r15_e_"); @@ -4330,6 +4547,26 @@ mib_tdd_nb_r15_s::operation_mode_info_r15_c_::operator=(const mib_tdd_nb_r15_s:: return *this; } +inband_same_pci_tdd_nb_r15_s& mib_tdd_nb_r15_s::operation_mode_info_r15_c_::set_inband_same_pci_r15() +{ + set(types::inband_same_pci_r15); + return c.get(); +} +inband_different_pci_tdd_nb_r15_s& mib_tdd_nb_r15_s::operation_mode_info_r15_c_::set_inband_different_pci_r15() +{ + set(types::inband_different_pci_r15); + return c.get(); +} +guardband_tdd_nb_r15_s& mib_tdd_nb_r15_s::operation_mode_info_r15_c_::set_guardband_r15() +{ + set(types::guardband_r15); + return c.get(); +} +standalone_tdd_nb_r15_s& mib_tdd_nb_r15_s::operation_mode_info_r15_c_::set_standalone_r15() +{ + set(types::standalone_r15); + return c.get(); +} void mib_tdd_nb_r15_s::operation_mode_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4402,7 +4639,7 @@ SRSASN_CODE mib_tdd_nb_r15_s::operation_mode_info_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mib_tdd_nb_r15_s::operation_mode_info_r15_c_::types_opts::to_string() const +const char* mib_tdd_nb_r15_s::operation_mode_info_r15_c_::types_opts::to_string() const { static const char* options[] = {"inband-SamePCI-r15", "inband-DifferentPCI-r15", "guardband-r15", "standalone-r15"}; return convert_enum_idx(options, 4, value, "mib_tdd_nb_r15_s::operation_mode_info_r15_c_::types"); @@ -4416,7 +4653,7 @@ uint8_t mib_tdd_nb_r15_s::operation_mode_info_r15_c_::types_opts::to_number() co return 0; } -std::string mib_tdd_nb_r15_s::sib1_carrier_info_r15_opts::to_string() const +const char* mib_tdd_nb_r15_s::sib1_carrier_info_r15_opts::to_string() const { static const char* options[] = {"anchor", "non-anchor"}; return convert_enum_idx(options, 2, value, "mib_tdd_nb_r15_s::sib1_carrier_info_r15_e_"); @@ -4485,7 +4722,7 @@ void ns_pmax_value_nb_r13_s::to_json(json_writer& j) const } // SIB-Type-NB-v1530 ::= ENUMERATED -std::string sib_type_nb_v1530_opts::to_string() const +const char* sib_type_nb_v1530_opts::to_string() const { static const char* options[] = { "sibType23-NB-r15", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; @@ -4530,7 +4767,7 @@ void nsss_rrm_cfg_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string nsss_rrm_cfg_nb_r15_s::nsss_rrm_pwr_offset_r15_opts::to_string() const +const char* nsss_rrm_cfg_nb_r15_s::nsss_rrm_pwr_offset_r15_opts::to_string() const { static const char* options[] = {"dB-3", "db0", "dB3"}; return convert_enum_idx(options, 3, value, "nsss_rrm_cfg_nb_r15_s::nsss_rrm_pwr_offset_r15_e_"); @@ -4541,7 +4778,7 @@ int8_t nsss_rrm_cfg_nb_r15_s::nsss_rrm_pwr_offset_r15_opts::to_number() const return map_enum_number(options, 3, value, "nsss_rrm_cfg_nb_r15_s::nsss_rrm_pwr_offset_r15_e_"); } -std::string nsss_rrm_cfg_nb_r15_s::nsss_num_occ_diff_precoders_r15_opts::to_string() const +const char* nsss_rrm_cfg_nb_r15_s::nsss_num_occ_diff_precoders_r15_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx(options, 4, value, "nsss_rrm_cfg_nb_r15_s::nsss_num_occ_diff_precoders_r15_e_"); @@ -4575,7 +4812,7 @@ void edt_tbs_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string edt_tbs_nb_r15_s::edt_tbs_r15_opts::to_string() const +const char* edt_tbs_nb_r15_s::edt_tbs_r15_opts::to_string() const { static const char* options[] = {"b328", "b408", "b504", "b584", "b680", "b808", "b936", "b1000"}; return convert_enum_idx(options, 8, value, "edt_tbs_nb_r15_s::edt_tbs_r15_e_"); @@ -4709,7 +4946,7 @@ void nprach_params_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_nb_r13_s::nprach_periodicity_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::nprach_periodicity_r13_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240", "ms320", "ms640", "ms1280", "ms2560"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::nprach_periodicity_r13_e_"); @@ -4720,7 +4957,7 @@ uint16_t nprach_params_nb_r13_s::nprach_periodicity_r13_opts::to_number() const return map_enum_number(options, 8, value, "nprach_params_nb_r13_s::nprach_periodicity_r13_e_"); } -std::string nprach_params_nb_r13_s::nprach_start_time_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::nprach_start_time_r13_opts::to_string() const { static const char* options[] = {"ms8", "ms16", "ms32", "ms64", "ms128", "ms256", "ms512", "ms1024"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::nprach_start_time_r13_e_"); @@ -4731,7 +4968,7 @@ uint16_t nprach_params_nb_r13_s::nprach_start_time_r13_opts::to_number() const return map_enum_number(options, 8, value, "nprach_params_nb_r13_s::nprach_start_time_r13_e_"); } -std::string nprach_params_nb_r13_s::nprach_subcarrier_offset_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::nprach_subcarrier_offset_r13_opts::to_string() const { static const char* options[] = {"n0", "n12", "n24", "n36", "n2", "n18", "n34", "spare1"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::nprach_subcarrier_offset_r13_e_"); @@ -4742,7 +4979,7 @@ uint8_t nprach_params_nb_r13_s::nprach_subcarrier_offset_r13_opts::to_number() c return map_enum_number(options, 7, value, "nprach_params_nb_r13_s::nprach_subcarrier_offset_r13_e_"); } -std::string nprach_params_nb_r13_s::nprach_num_subcarriers_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::nprach_num_subcarriers_r13_opts::to_string() const { static const char* options[] = {"n12", "n24", "n36", "n48"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r13_s::nprach_num_subcarriers_r13_e_"); @@ -4753,7 +4990,7 @@ uint8_t nprach_params_nb_r13_s::nprach_num_subcarriers_r13_opts::to_number() con return map_enum_number(options, 4, value, "nprach_params_nb_r13_s::nprach_num_subcarriers_r13_e_"); } -std::string nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_opts::to_string() const { static const char* options[] = {"zero", "oneThird", "twoThird", "one"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_e_"); @@ -4763,13 +5000,13 @@ float nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_opts::to_nu static const float options[] = {0.0, 0.3333333333333333, 0.6666666666666666, 1.0}; return map_enum_number(options, 4, value, "nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_e_"); } -std::string nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_opts::to_number_string() const +const char* nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_opts::to_number_string() const { static const char* options[] = {"0", "1/3", "2/3", "1"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r13_s::nprach_subcarrier_msg3_range_start_r13_e_"); } -std::string nprach_params_nb_r13_s::max_num_preamb_attempt_ce_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::max_num_preamb_attempt_ce_r13_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "spare1"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::max_num_preamb_attempt_ce_r13_e_"); @@ -4780,7 +5017,7 @@ uint8_t nprach_params_nb_r13_s::max_num_preamb_attempt_ce_r13_opts::to_number() return map_enum_number(options, 7, value, "nprach_params_nb_r13_s::max_num_preamb_attempt_ce_r13_e_"); } -std::string nprach_params_nb_r13_s::num_repeats_per_preamb_attempt_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::num_repeats_per_preamb_attempt_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::num_repeats_per_preamb_attempt_r13_e_"); @@ -4791,7 +5028,7 @@ uint8_t nprach_params_nb_r13_s::num_repeats_per_preamb_attempt_r13_opts::to_numb return map_enum_number(options, 8, value, "nprach_params_nb_r13_s::num_repeats_per_preamb_attempt_r13_e_"); } -std::string nprach_params_nb_r13_s::npdcch_num_repeats_ra_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::npdcch_num_repeats_ra_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -4817,7 +5054,7 @@ uint16_t nprach_params_nb_r13_s::npdcch_num_repeats_ra_r13_opts::to_number() con return map_enum_number(options, 12, value, "nprach_params_nb_r13_s::npdcch_num_repeats_ra_r13_e_"); } -std::string nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_e_"); @@ -4827,13 +5064,13 @@ float nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_opts::to_number() const static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; return map_enum_number(options, 8, value, "nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_e_"); } -std::string nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_opts::to_number_string() const +const char* nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r13_s::npdcch_start_sf_css_ra_r13_e_"); } -std::string nprach_params_nb_r13_s::npdcch_offset_ra_r13_opts::to_string() const +const char* nprach_params_nb_r13_s::npdcch_offset_ra_r13_opts::to_string() const { static const char* options[] = {"zero", "oneEighth", "oneFourth", "threeEighth"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r13_s::npdcch_offset_ra_r13_e_"); @@ -4843,7 +5080,7 @@ float nprach_params_nb_r13_s::npdcch_offset_ra_r13_opts::to_number() const static const float options[] = {0.0, 0.125, 0.25, 0.375}; return map_enum_number(options, 4, value, "nprach_params_nb_r13_s::npdcch_offset_ra_r13_e_"); } -std::string nprach_params_nb_r13_s::npdcch_offset_ra_r13_opts::to_number_string() const +const char* nprach_params_nb_r13_s::npdcch_offset_ra_r13_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r13_s::npdcch_offset_ra_r13_e_"); @@ -4993,7 +5230,7 @@ void nprach_params_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_periodicity_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_periodicity_r14_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240", "ms320", "ms640", "ms1280", "ms2560"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_periodicity_r14_e_"); @@ -5004,7 +5241,7 @@ uint16_t nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_periodicity_r14_op return map_enum_number(options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_periodicity_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_start_time_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_start_time_r14_opts::to_string() const { static const char* options[] = {"ms8", "ms16", "ms32", "ms64", "ms128", "ms256", "ms512", "ms1024"}; return convert_enum_idx(options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_start_time_r14_e_"); @@ -5015,7 +5252,7 @@ uint16_t nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_start_time_r14_opt return map_enum_number(options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_start_time_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_offset_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_offset_r14_opts::to_string() const { static const char* options[] = {"n0", "n12", "n24", "n36", "n2", "n18", "n34", "spare1"}; return convert_enum_idx( @@ -5028,7 +5265,7 @@ uint8_t nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_offset_r options, 7, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_offset_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_subcarriers_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_subcarriers_r14_opts::to_string() const { static const char* options[] = {"n12", "n24", "n36", "n48"}; return convert_enum_idx( @@ -5041,7 +5278,7 @@ uint8_t nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_subcarriers_r14 options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_subcarriers_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start_r14_opts::to_string() const { static const char* options[] = {"zero", "oneThird", "twoThird", "one"}; return convert_enum_idx( @@ -5053,7 +5290,7 @@ float nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range return map_enum_number( options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start_r14_e_"); } -std::string +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/3", "2/3", "1"}; @@ -5061,7 +5298,7 @@ nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_subcarrier_msg3_range_start_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_num_repeats_ra_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_num_repeats_ra_r14_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -5089,7 +5326,7 @@ uint16_t nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_num_repeats_ra_r14 options, 12, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_num_repeats_ra_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx( @@ -5101,14 +5338,14 @@ float nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_o return map_enum_number( options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_opts::to_number_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx( options, 8, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_start_sf_css_ra_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_opts::to_string() const { static const char* options[] = {"zero", "oneEighth", "oneFourth", "threeEighth"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_e_"); @@ -5118,13 +5355,13 @@ float nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_opts::t static const float options[] = {0.0, 0.125, 0.25, 0.375}; return map_enum_number(options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_opts::to_number_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8"}; return convert_enum_idx(options, 4, value, "nprach_params_nb_r14_s::nprach_params_r14_s_::npdcch_offset_ra_r14_e_"); } -std::string nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_cbra_start_subcarriers_r14_opts::to_string() const +const char* nprach_params_nb_r14_s::nprach_params_r14_s_::nprach_num_cbra_start_subcarriers_r14_opts::to_string() const { static const char* options[] = { "n8", "n10", "n11", "n12", "n20", "n22", "n23", "n24", "n32", "n34", "n35", "n36", "n40", "n44", "n46", "n48"}; @@ -5158,7 +5395,7 @@ void nprach_params_nb_v1330_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_nb_v1330_s::nprach_num_cbra_start_subcarriers_r13_opts::to_string() const +const char* nprach_params_nb_v1330_s::nprach_num_cbra_start_subcarriers_r13_opts::to_string() const { static const char* options[] = { "n8", "n10", "n11", "n12", "n20", "n22", "n23", "n24", "n32", "n34", "n35", "n36", "n40", "n44", "n46", "n48"}; @@ -5314,7 +5551,7 @@ void nprach_params_fmt2_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms320", "ms640", "ms1280", "ms2560", "ms5120"}; return convert_enum_idx( @@ -5327,7 +5564,7 @@ uint16_t nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r options, 8, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_opts::to_string() const { static const char* options[] = {"ms8", "ms16", "ms32", "ms64", "ms128", "ms256", "ms512", "ms1024"}; return convert_enum_idx( @@ -5340,7 +5577,7 @@ uint16_t nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r1 options, 8, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_opts::to_string() const { static const char* options[] = { "n0", "n36", "n72", "n108", "n6", "n54", "n102", "n42", "n78", "n90", "n12", "n24", "n48", "n84", "n60", "n18"}; @@ -5354,7 +5591,7 @@ uint8_t nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_off options, 16, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_opts::to_string() const { static const char* options[] = {"n36", "n72", "n108", "n144"}; return convert_enum_idx( @@ -5367,7 +5604,7 @@ uint8_t nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarrier options, 4, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_e_"); } -std::string +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_opts::to_string() const { static const char* options[] = {"zero", "oneThird", "twoThird", "one"}; @@ -5386,7 +5623,7 @@ float nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_ value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_e_"); } -std::string +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_opts::to_number_string() const { static const char* options[] = {"0", "1/3", "2/3", "1"}; @@ -5397,7 +5634,7 @@ nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_ "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -5425,7 +5662,7 @@ uint16_t nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_r options, 12, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx( @@ -5437,14 +5674,14 @@ float nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_ return map_enum_number( options, 8, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_number_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx( options, 8, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_string() const { static const char* options[] = {"zero", "oneEighth", "oneFourth", "threeEighth"}; return convert_enum_idx( @@ -5456,14 +5693,14 @@ float nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_op return map_enum_number( options, 4, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_e_"); } -std::string nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_number_string() const +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8"}; return convert_enum_idx( options, 4, value, "nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_e_"); } -std::string +const char* nprach_params_fmt2_nb_r15_s::nprach_params_r15_s_::nprach_num_cbra_start_subcarriers_r15_opts::to_string() const { static const char* options[] = {"n24", @@ -5630,7 +5867,7 @@ void nprach_params_tdd_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_opts::to_string() const { static const char* options[] = {"ms80", "ms160", "ms320", "ms640", "ms1280", "ms2560", "ms5120", "ms10240"}; return convert_enum_idx( @@ -5643,7 +5880,7 @@ uint16_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r1 options, 8, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_periodicity_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_opts::to_string() const { static const char* options[] = {"ms10", "ms20", @@ -5671,7 +5908,7 @@ uint16_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15 options, 10, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_start_time_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_opts::to_string() const { static const char* options[] = {"n0", "n12", "n24", "n36", "n2", "n18", "n34", "spare1"}; return convert_enum_idx( @@ -5684,7 +5921,7 @@ uint8_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offs options, 7, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_offset_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_opts::to_string() const { static const char* options[] = {"n12", "n24", "n36", "n48"}; return convert_enum_idx( @@ -5697,7 +5934,7 @@ uint8_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers options, 4, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_subcarriers_r15_e_"); } -std::string +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_opts::to_string() const { static const char* options[] = {"zero", "oneThird", "twoThird", "one"}; @@ -5710,7 +5947,7 @@ float nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_r return map_enum_number( options, 4, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_e_"); } -std::string +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_opts::to_number_string() const { static const char* options[] = {"0", "1/3", "2/3", "1"}; @@ -5718,7 +5955,7 @@ nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_s options, 4, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_subcarrier_msg3_range_start_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -5746,7 +5983,7 @@ uint16_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra options, 12, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_num_repeats_ra_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_opts::to_string() const { static const char* options[] = {"v4", "v8", "v16", "v32", "v48", "v64", "v96", "v128"}; return convert_enum_idx( @@ -5759,7 +5996,7 @@ uint8_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra options, 8, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_start_sf_css_ra_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_string() const { static const char* options[] = {"zero", "oneEighth", "oneFourth", "threeEighth"}; return convert_enum_idx( @@ -5771,14 +6008,14 @@ float nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opt return map_enum_number( options, 4, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_e_"); } -std::string nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_number_string() const +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8"}; return convert_enum_idx( options, 4, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::npdcch_offset_ra_r15_e_"); } -std::string +const char* nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_cbra_start_subcarriers_r15_opts::to_string() const { static const char* options[] = { @@ -5816,7 +6053,7 @@ void nprach_params_tdd_nb_v1550_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_opts::to_string() const +const char* nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "spare1"}; return convert_enum_idx(options, 8, value, "nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_e_"); @@ -5827,7 +6064,7 @@ uint8_t nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_opts::to_n return map_enum_number(options, 7, value, "nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_e_"); } -std::string nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_opts::to_string() const +const char* nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128", "n256", "n512", "n1024"}; return convert_enum_idx(options, 11, value, "nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_e_"); @@ -5839,7 +6076,7 @@ uint16_t nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_opts } // PagingWeight-NB-r14 ::= ENUMERATED -std::string paging_weight_nb_r14_opts::to_string() const +const char* paging_weight_nb_r14_opts::to_string() const { static const char* options[] = { "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16"}; @@ -5874,7 +6111,7 @@ void rach_info_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_info_nb_r13_s::ra_resp_win_size_r13_opts::to_string() const +const char* rach_info_nb_r13_s::ra_resp_win_size_r13_opts::to_string() const { static const char* options[] = {"pp2", "pp3", "pp4", "pp5", "pp6", "pp7", "pp8", "pp10"}; return convert_enum_idx(options, 8, value, "rach_info_nb_r13_s::ra_resp_win_size_r13_e_"); @@ -5885,7 +6122,7 @@ uint8_t rach_info_nb_r13_s::ra_resp_win_size_r13_opts::to_number() const return map_enum_number(options, 8, value, "rach_info_nb_r13_s::ra_resp_win_size_r13_e_"); } -std::string rach_info_nb_r13_s::mac_contention_resolution_timer_r13_opts::to_string() const +const char* rach_info_nb_r13_s::mac_contention_resolution_timer_r13_opts::to_string() const { static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "pp64"}; return convert_enum_idx(options, 8, value, "rach_info_nb_r13_s::mac_contention_resolution_timer_r13_e_"); @@ -5916,7 +6153,7 @@ void rach_info_nb_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_info_nb_v1530_s::mac_contention_resolution_timer_r15_opts::to_string() const +const char* rach_info_nb_v1530_s::mac_contention_resolution_timer_r15_opts::to_string() const { static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "pp64"}; return convert_enum_idx(options, 8, value, "rach_info_nb_v1530_s::mac_contention_resolution_timer_r15_e_"); @@ -5962,7 +6199,7 @@ void sched_info_nb_v1530_s::to_json(json_writer& j) const } // WUS-MaxDurationFactor-NB-r15 ::= ENUMERATED -std::string wus_max_dur_factor_nb_r15_opts::to_string() const +const char* wus_max_dur_factor_nb_r15_opts::to_string() const { static const char* options[] = {"one128th", "one64th", "one32th", "one16th", "oneEighth", "oneQuarter", "oneHalf"}; return convert_enum_idx(options, 7, value, "wus_max_dur_factor_nb_r15_e"); @@ -5972,7 +6209,7 @@ float wus_max_dur_factor_nb_r15_opts::to_number() const static const float options[] = {128.0, 64.0, 32.0, 16.0, 0.125, 0.25, 0.5}; return map_enum_number(options, 7, value, "wus_max_dur_factor_nb_r15_e"); } -std::string wus_max_dur_factor_nb_r15_opts::to_number_string() const +const char* wus_max_dur_factor_nb_r15_opts::to_number_string() const { static const char* options[] = {"128", "64", "32", "16", "1/8", "1/4", "1/2"}; return convert_enum_idx(options, 7, value, "wus_max_dur_factor_nb_r15_e"); @@ -6110,6 +6347,19 @@ void dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::set(types::opt { type_ = e; } +void dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::set_use_no_bitmap_r14() +{ + set(types::use_no_bitmap_r14); +} +void dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::set_use_anchor_bitmap_r14() +{ + set(types::use_anchor_bitmap_r14); +} +dl_bitmap_nb_r13_c& dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::set_explicit_bitmap_cfg_r14() +{ + set(types::explicit_bitmap_cfg_r14); + return c; +} void dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6164,7 +6414,7 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::unpack( return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::types_opts::to_string() const +const char* dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::types_opts::to_string() const { static const char* options[] = {"useNoBitmap-r14", "useAnchorBitmap-r14", "explicitBitmapConfiguration-r14"}; return convert_enum_idx(options, 3, value, "dl_carrier_cfg_common_nb_r14_s::dl_bitmap_non_anchor_r14_c_::types"); @@ -6174,6 +6424,19 @@ void dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::set(types::option { type_ = e; } +void dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::set_use_no_gap_r14() +{ + set(types::use_no_gap_r14); +} +void dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::set_use_anchor_gap_cfg_r14() +{ + set(types::use_anchor_gap_cfg_r14); +} +dl_gap_cfg_nb_r13_s& dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::set_explicit_gap_cfg_r14() +{ + set(types::explicit_gap_cfg_r14); + return c; +} void dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6228,7 +6491,7 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::unpack(cbi return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::types_opts::to_string() const +const char* dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::types_opts::to_string() const { static const char* options[] = {"useNoGap-r14", "useAnchorGapConfig-r14", "explicitGapConfiguration-r14"}; return convert_enum_idx(options, 3, value, "dl_carrier_cfg_common_nb_r14_s::dl_gap_non_anchor_r14_c_::types"); @@ -6304,6 +6567,18 @@ dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_: return *this; } +dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::same_pci_r14_s_& +dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::set_same_pci_r14() +{ + set(types::same_pci_r14); + return c.get(); +} +dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::different_pci_r14_s_& +dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::set_different_pci_r14() +{ + set(types::different_pci_r14); + return c.get(); +} void dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6360,7 +6635,7 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci return SRSASN_SUCCESS; } -std::string dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::different_pci_r14_s_:: +const char* dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::different_pci_r14_s_:: eutra_num_crs_ports_r14_opts::to_string() const { static const char* options[] = {"same", "four"}; @@ -6382,7 +6657,7 @@ uint8_t dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind return 0; } -std::string +const char* dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::types_opts::to_string() const { static const char* options[] = {"samePCI-r14", "differentPCI-r14"}; @@ -6390,7 +6665,7 @@ dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_: options, 2, value, "dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::same_pci_ind_r14_c_::types"); } -std::string +const char* dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::eutra_ctrl_region_size_r14_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3"}; @@ -6404,7 +6679,7 @@ uint8_t dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::eutra_ctrl_r options, 3, value, "dl_carrier_cfg_common_nb_r14_s::inband_carrier_info_r14_s_::eutra_ctrl_region_size_r14_e_"); } -std::string dl_carrier_cfg_common_nb_r14_s::nrs_pwr_offset_non_anchor_r14_opts::to_string() const +const char* dl_carrier_cfg_common_nb_r14_s::nrs_pwr_offset_non_anchor_r14_opts::to_string() const { static const char* options[] = {"dB-12", "dB-10", "dB-8", "dB-6", "dB-4", "dB-2", "dB0", "dB3"}; return convert_enum_idx(options, 8, value, "dl_carrier_cfg_common_nb_r14_s::nrs_pwr_offset_non_anchor_r14_e_"); @@ -6458,7 +6733,7 @@ void pcch_cfg_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string pcch_cfg_nb_r14_s::npdcch_num_repeat_paging_r14_opts::to_string() const +const char* pcch_cfg_nb_r14_s::npdcch_num_repeat_paging_r14_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -6532,7 +6807,7 @@ void pwr_ramp_params_nb_v1450_s::to_json(json_writer& j) const j.end_obj(); } -std::string pwr_ramp_params_nb_v1450_s::preamb_init_rx_target_pwr_v1450_opts::to_string() const +const char* pwr_ramp_params_nb_v1450_s::preamb_init_rx_target_pwr_v1450_opts::to_string() const { static const char* options[] = { "dBm-130", "dBm-128", "dBm-126", "dBm-124", "dBm-122", "dBm-88", "dBm-86", "dBm-84", "dBm-82", "dBm-80"}; @@ -6544,7 +6819,7 @@ int16_t pwr_ramp_params_nb_v1450_s::preamb_init_rx_target_pwr_v1450_opts::to_num return map_enum_number(options, 10, value, "pwr_ramp_params_nb_v1450_s::preamb_init_rx_target_pwr_v1450_e_"); } -std::string pwr_ramp_params_nb_v1450_s::pwr_ramp_params_ce1_r14_s_::pwr_ramp_step_ce1_r14_opts::to_string() const +const char* pwr_ramp_params_nb_v1450_s::pwr_ramp_params_ce1_r14_s_::pwr_ramp_step_ce1_r14_opts::to_string() const { static const char* options[] = {"dB0", "dB2", "dB4", "dB6"}; return convert_enum_idx( @@ -6557,7 +6832,7 @@ uint8_t pwr_ramp_params_nb_v1450_s::pwr_ramp_params_ce1_r14_s_::pwr_ramp_step_ce options, 4, value, "pwr_ramp_params_nb_v1450_s::pwr_ramp_params_ce1_r14_s_::pwr_ramp_step_ce1_r14_e_"); } -std::string +const char* pwr_ramp_params_nb_v1450_s::pwr_ramp_params_ce1_r14_s_::preamb_init_rx_target_pwr_ce1_r14_opts::to_string() const { static const char* options[] = {"dBm-130", "dBm-128", "dBm-126", "dBm-124", "dBm-122", "dBm-120", "dBm-118", @@ -6605,7 +6880,7 @@ void tdd_cfg_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string tdd_cfg_nb_r15_s::sf_assign_r15_opts::to_string() const +const char* tdd_cfg_nb_r15_s::sf_assign_r15_opts::to_string() const { static const char* options[] = {"sa1", "sa2", "sa3", "sa4", "sa5"}; return convert_enum_idx(options, 5, value, "tdd_cfg_nb_r15_s::sf_assign_r15_e_"); @@ -6616,7 +6891,7 @@ uint8_t tdd_cfg_nb_r15_s::sf_assign_r15_opts::to_number() const return map_enum_number(options, 5, value, "tdd_cfg_nb_r15_s::sf_assign_r15_e_"); } -std::string tdd_cfg_nb_r15_s::special_sf_patterns_r15_opts::to_string() const +const char* tdd_cfg_nb_r15_s::special_sf_patterns_r15_opts::to_string() const { static const char* options[] = { "ssp0", "ssp1", "ssp2", "ssp3", "ssp4", "ssp5", "ssp6", "ssp7", "ssp8", "ssp9", "ssp10", "ssp10-CRS-LessDwPTS"}; @@ -6686,7 +6961,7 @@ void bcch_cfg_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string bcch_cfg_nb_r13_s::mod_period_coeff_r13_opts::to_string() const +const char* bcch_cfg_nb_r13_s::mod_period_coeff_r13_opts::to_string() const { static const char* options[] = {"n16", "n32", "n64", "n128"}; return convert_enum_idx(options, 4, value, "bcch_cfg_nb_r13_s::mod_period_coeff_r13_e_"); @@ -7003,7 +7278,7 @@ void inter_freq_carrier_freq_info_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string inter_freq_carrier_freq_info_nb_r13_s::pwr_class14dbm_offset_r14_opts::to_string() const +const char* inter_freq_carrier_freq_info_nb_r13_s::pwr_class14dbm_offset_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-3", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 6, value, "inter_freq_carrier_freq_info_nb_r13_s::pwr_class14dbm_offset_r14_e_"); @@ -7014,7 +7289,7 @@ int8_t inter_freq_carrier_freq_info_nb_r13_s::pwr_class14dbm_offset_r14_opts::to return map_enum_number(options, 6, value, "inter_freq_carrier_freq_info_nb_r13_s::pwr_class14dbm_offset_r14_e_"); } -std::string inter_freq_carrier_freq_info_nb_r13_s::ce_authorisation_offset_r14_opts::to_string() const +const char* inter_freq_carrier_freq_info_nb_r13_s::ce_authorisation_offset_r14_opts::to_string() const { static const char* options[] = {"dB5", "dB10", "dB15", "dB20", "dB25", "dB30", "dB35"}; return convert_enum_idx(options, 7, value, "inter_freq_carrier_freq_info_nb_r13_s::ce_authorisation_offset_r14_e_"); @@ -7165,7 +7440,7 @@ void nprach_cfg_sib_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_opts::to_string() const +const char* nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_opts::to_string() const { static const char* options[] = {"us66dot7", "us266dot7"}; return convert_enum_idx(options, 2, value, "nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_e_"); @@ -7175,7 +7450,7 @@ float nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_opts::to_number() const static const float options[] = {66.7, 266.7}; return map_enum_number(options, 2, value, "nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_e_"); } -std::string nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_opts::to_number_string() const +const char* nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_opts::to_number_string() const { static const char* options[] = {"66.7", "266.7"}; return convert_enum_idx(options, 2, value, "nprach_cfg_sib_nb_r13_s::nprach_cp_len_r13_e_"); @@ -7225,7 +7500,7 @@ void nprach_cfg_sib_nb_v1450_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_cfg_sib_nb_v1450_s::max_num_preamb_attempt_ce_r14_opts::to_string() const +const char* nprach_cfg_sib_nb_v1450_s::max_num_preamb_attempt_ce_r14_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "spare1"}; return convert_enum_idx(options, 8, value, "nprach_cfg_sib_nb_v1450_s::max_num_preamb_attempt_ce_r14_e_"); @@ -7358,14 +7633,14 @@ void nprach_cfg_sib_nb_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::nprach_preamb_format_r15_opts::to_string() const +const char* nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::nprach_preamb_format_r15_opts::to_string() const { static const char* options[] = {"fmt0", "fmt1", "fmt2", "fmt0-a", "fmt1-a"}; return convert_enum_idx( options, 5, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::nprach_preamb_format_r15_e_"); } -std::string nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_opts::to_string() const +const char* nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128", "n256", "n512", "n1024"}; return convert_enum_idx(options, 11, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_e_"); @@ -7433,7 +7708,7 @@ void nprach_probability_anchor_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_opts::to_string() const +const char* nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_opts::to_string() const { static const char* options[] = {"zero", "oneSixteenth", @@ -7473,7 +7748,7 @@ float nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_opts::to 0.5}; return map_enum_number(options, 16, value, "nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_e_"); } -std::string nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_opts::to_number_string() const +const char* nprach_probability_anchor_nb_r14_s::nprach_probability_anchor_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/16", @@ -7585,7 +7860,7 @@ void npusch_cfg_common_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string npusch_cfg_common_nb_r13_s::srs_sf_cfg_r13_opts::to_string() const +const char* npusch_cfg_common_nb_r13_s::srs_sf_cfg_r13_opts::to_string() const { static const char* options[] = {"sc0", "sc1", @@ -7637,7 +7912,7 @@ void pcch_cfg_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string pcch_cfg_nb_r13_s::default_paging_cycle_r13_opts::to_string() const +const char* pcch_cfg_nb_r13_s::default_paging_cycle_r13_opts::to_string() const { static const char* options[] = {"rf128", "rf256", "rf512", "rf1024"}; return convert_enum_idx(options, 4, value, "pcch_cfg_nb_r13_s::default_paging_cycle_r13_e_"); @@ -7648,7 +7923,7 @@ uint16_t pcch_cfg_nb_r13_s::default_paging_cycle_r13_opts::to_number() const return map_enum_number(options, 4, value, "pcch_cfg_nb_r13_s::default_paging_cycle_r13_e_"); } -std::string pcch_cfg_nb_r13_s::nb_r13_opts::to_string() const +const char* pcch_cfg_nb_r13_s::nb_r13_opts::to_string() const { static const char* options[] = {"fourT", "twoT", @@ -7673,13 +7948,13 @@ float pcch_cfg_nb_r13_s::nb_r13_opts::to_number() const static const float options[] = {4.0, 2.0, 1.0, 0.5, 0.25, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0, 512.0, 1024.0}; return map_enum_number(options, 13, value, "pcch_cfg_nb_r13_s::nb_r13_e_"); } -std::string pcch_cfg_nb_r13_s::nb_r13_opts::to_number_string() const +const char* pcch_cfg_nb_r13_s::nb_r13_opts::to_number_string() const { static const char* options[] = {"4", "2", "1", "0.5", "0.25", "8", "16", "32", "64", "128", "256", "512", "1024"}; return convert_enum_idx(options, 16, value, "pcch_cfg_nb_r13_s::nb_r13_e_"); } -std::string pcch_cfg_nb_r13_s::npdcch_num_repeat_paging_r13_opts::to_string() const +const char* pcch_cfg_nb_r13_s::npdcch_num_repeat_paging_r13_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -7813,7 +8088,7 @@ void rach_cfg_common_nb_r13_s::to_json(json_writer& j) const } // SIB-Type-NB-r13 ::= ENUMERATED -std::string sib_type_nb_r13_opts::to_string() const +const char* sib_type_nb_r13_opts::to_string() const { static const char* options[] = {"sibType3-NB-r13", "sibType4-NB-r13", @@ -7902,7 +8177,7 @@ void sib_type1_nb_v1530_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_nb_v1530_s::tdd_params_r15_s_::tdd_si_carrier_info_r15_opts::to_string() const +const char* sib_type1_nb_v1530_s::tdd_params_r15_s_::tdd_si_carrier_info_r15_opts::to_string() const { static const char* options[] = {"anchor", "non-anchor"}; return convert_enum_idx(options, 2, value, "sib_type1_nb_v1530_s::tdd_params_r15_s_::tdd_si_carrier_info_r15_e_"); @@ -8102,7 +8377,7 @@ void ul_pwr_ctrl_common_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_pwr_ctrl_common_nb_r13_s::alpha_r13_opts::to_string() const +const char* ul_pwr_ctrl_common_nb_r13_s::alpha_r13_opts::to_string() const { static const char* options[] = {"al0", "al04", "al05", "al06", "al07", "al08", "al09", "al1"}; return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_nb_r13_s::alpha_r13_e_"); @@ -8112,7 +8387,7 @@ float ul_pwr_ctrl_common_nb_r13_s::alpha_r13_opts::to_number() const static const float options[] = {0.0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}; return map_enum_number(options, 8, value, "ul_pwr_ctrl_common_nb_r13_s::alpha_r13_e_"); } -std::string ul_pwr_ctrl_common_nb_r13_s::alpha_r13_opts::to_number_string() const +const char* ul_pwr_ctrl_common_nb_r13_s::alpha_r13_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1"}; return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_nb_r13_s::alpha_r13_e_"); @@ -8173,7 +8448,7 @@ void wus_cfg_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -std::string wus_cfg_nb_r15_s::num_pos_r15_opts::to_string() const +const char* wus_cfg_nb_r15_s::num_pos_r15_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4"}; return convert_enum_idx(options, 3, value, "wus_cfg_nb_r15_s::num_pos_r15_e_"); @@ -8184,7 +8459,7 @@ uint8_t wus_cfg_nb_r15_s::num_pos_r15_opts::to_number() const return map_enum_number(options, 3, value, "wus_cfg_nb_r15_s::num_pos_r15_e_"); } -std::string wus_cfg_nb_r15_s::num_drx_cycles_relaxed_r15_opts::to_string() const +const char* wus_cfg_nb_r15_s::num_drx_cycles_relaxed_r15_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx(options, 4, value, "wus_cfg_nb_r15_s::num_drx_cycles_relaxed_r15_e_"); @@ -8195,7 +8470,7 @@ uint8_t wus_cfg_nb_r15_s::num_drx_cycles_relaxed_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_nb_r15_s::num_drx_cycles_relaxed_r15_e_"); } -std::string wus_cfg_nb_r15_s::time_offset_drx_r15_opts::to_string() const +const char* wus_cfg_nb_r15_s::time_offset_drx_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240"}; return convert_enum_idx(options, 4, value, "wus_cfg_nb_r15_s::time_offset_drx_r15_e_"); @@ -8206,7 +8481,7 @@ uint8_t wus_cfg_nb_r15_s::time_offset_drx_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_nb_r15_s::time_offset_drx_r15_e_"); } -std::string wus_cfg_nb_r15_s::time_offset_e_drx_short_r15_opts::to_string() const +const char* wus_cfg_nb_r15_s::time_offset_e_drx_short_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms80", "ms160", "ms240"}; return convert_enum_idx(options, 4, value, "wus_cfg_nb_r15_s::time_offset_e_drx_short_r15_e_"); @@ -8217,7 +8492,7 @@ uint8_t wus_cfg_nb_r15_s::time_offset_e_drx_short_r15_opts::to_number() const return map_enum_number(options, 4, value, "wus_cfg_nb_r15_s::time_offset_e_drx_short_r15_e_"); } -std::string wus_cfg_nb_r15_s::time_offset_e_drx_long_r15_opts::to_string() const +const char* wus_cfg_nb_r15_s::time_offset_e_drx_long_r15_opts::to_string() const { static const char* options[] = {"ms1000", "ms2000"}; return convert_enum_idx(options, 2, value, "wus_cfg_nb_r15_s::time_offset_e_drx_long_r15_e_"); @@ -8248,7 +8523,7 @@ void cell_resel_info_common_nb_v1450_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_resel_info_common_nb_v1450_s::s_search_delta_p_r14_opts::to_string() const +const char* cell_resel_info_common_nb_v1450_s::s_search_delta_p_r14_opts::to_string() const { static const char* options[] = {"dB6", "dB9", "dB12", "dB15"}; return convert_enum_idx(options, 4, value, "cell_resel_info_common_nb_v1450_s::s_search_delta_p_r14_e_"); @@ -8300,7 +8575,7 @@ void cell_sel_info_nb_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_sel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to_string() const +const char* cell_sel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-3", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 6, value, "cell_sel_info_nb_v1430_s::pwr_class14dbm_offset_r14_e_"); @@ -8311,7 +8586,7 @@ int8_t cell_sel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to_number() con return map_enum_number(options, 6, value, "cell_sel_info_nb_v1430_s::pwr_class14dbm_offset_r14_e_"); } -std::string cell_sel_info_nb_v1430_s::ce_authorisation_offset_r14_opts::to_string() const +const char* cell_sel_info_nb_v1430_s::ce_authorisation_offset_r14_opts::to_string() const { static const char* options[] = {"dB5", "dB10", "dB15", "dB20", "dB25", "dB30", "dB35"}; return convert_enum_idx(options, 7, value, "cell_sel_info_nb_v1430_s::ce_authorisation_offset_r14_e_"); @@ -8403,7 +8678,7 @@ void intra_freq_cell_resel_info_nb_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string intra_freq_cell_resel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to_string() const +const char* intra_freq_cell_resel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to_string() const { static const char* options[] = {"dB-6", "dB-3", "dB3", "dB6", "dB9", "dB12"}; return convert_enum_idx(options, 6, value, "intra_freq_cell_resel_info_nb_v1430_s::pwr_class14dbm_offset_r14_e_"); @@ -8414,7 +8689,7 @@ int8_t intra_freq_cell_resel_info_nb_v1430_s::pwr_class14dbm_offset_r14_opts::to return map_enum_number(options, 6, value, "intra_freq_cell_resel_info_nb_v1430_s::pwr_class14dbm_offset_r14_e_"); } -std::string intra_freq_cell_resel_info_nb_v1430_s::ce_authorisation_offset_r14_opts::to_string() const +const char* intra_freq_cell_resel_info_nb_v1430_s::ce_authorisation_offset_r14_opts::to_string() const { static const char* options[] = {"dB5", "dB10", "dB15", "dB20", "dB25", "dB30", "dB35"}; return convert_enum_idx(options, 7, value, "intra_freq_cell_resel_info_nb_v1430_s::ce_authorisation_offset_r14_e_"); @@ -8451,7 +8726,7 @@ void npdcch_sc_mcch_cfg_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string npdcch_sc_mcch_cfg_nb_r14_s::npdcch_num_repeats_sc_mcch_r14_opts::to_string() const +const char* npdcch_sc_mcch_cfg_nb_r14_s::npdcch_num_repeats_sc_mcch_r14_opts::to_string() const { static const char* options[] = { "r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256", "r512", "r1024", "r2048"}; @@ -8463,7 +8738,7 @@ uint16_t npdcch_sc_mcch_cfg_nb_r14_s::npdcch_num_repeats_sc_mcch_r14_opts::to_nu return map_enum_number(options, 12, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_num_repeats_sc_mcch_r14_e_"); } -std::string npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_opts::to_string() const +const char* npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx(options, 8, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_e_"); @@ -8473,13 +8748,13 @@ float npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_opts::to_number() static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; return map_enum_number(options, 8, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_e_"); } -std::string npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_opts::to_number_string() const +const char* npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx(options, 8, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_start_sf_sc_mcch_r14_e_"); } -std::string npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_opts::to_string() const +const char* npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_opts::to_string() const { static const char* options[] = { "zero", "oneEighth", "oneQuarter", "threeEighth", "oneHalf", "fiveEighth", "threeQuarter", "sevenEighth"}; @@ -8490,7 +8765,7 @@ float npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_opts::to_number() c static const float options[] = {0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875}; return map_enum_number(options, 8, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_e_"); } -std::string npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_opts::to_number_string() const +const char* npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; return convert_enum_idx(options, 8, value, "npdcch_sc_mcch_cfg_nb_r14_s::npdcch_offset_sc_mcch_r14_e_"); @@ -8720,7 +8995,7 @@ void sc_mcch_sched_info_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mcch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const +const char* sc_mcch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "spare"}; return convert_enum_idx(options, 8, value, "sc_mcch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); @@ -8731,7 +9006,7 @@ uint8_t sc_mcch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_number() co return map_enum_number(options, 7, value, "sc_mcch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string sc_mcch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const +const char* sc_mcch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"pp0", "pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32"}; return convert_enum_idx(options, 8, value, "sc_mcch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); @@ -8872,6 +9147,86 @@ sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( return *this; } +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf4096() +{ + set(types::sf4096); + return c.get(); +} +uint16_t& sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf8192() +{ + set(types::sf8192); + return c.get(); +} void sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9048,7 +9403,7 @@ SRSASN_CODE sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_: return SRSASN_SUCCESS; } -std::string sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const +const char* sc_mcch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -9118,7 +9473,7 @@ void sib_type1_nb_v1450_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_string() const +const char* sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", @@ -9144,7 +9499,7 @@ float sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_number() const -6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 1.23, 2.0, 3.0, 4.0, 4.23, 5.0, 6.0, 7.0, 8.0, 9.0}; return map_enum_number(options, 16, value, "sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_e_"); } -std::string sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_number_string() const +const char* sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_number_string() const { static const char* options[] = { "-6", "-4.77", "-3", "-1.77", "0", "1", "1.23", "2", "3", "4", "4.23", "5", "6", "7", "8", "9"}; @@ -9152,7 +9507,7 @@ std::string sib_type1_nb_v1450_s::nrs_crs_pwr_offset_v1450_opts::to_number_strin } // T-Reselection-NB-r13 ::= ENUMERATED -std::string t_resel_nb_r13_opts::to_string() const +const char* t_resel_nb_r13_opts::to_string() const { static const char* options[] = {"s0", "s3", "s6", "s9", "s12", "s15", "s18", "s21"}; return convert_enum_idx(options, 8, value, "t_resel_nb_r13_e"); @@ -9288,7 +9643,7 @@ void ue_timers_and_consts_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_timers_and_consts_nb_r13_s::t300_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t300_r13_opts::to_string() const { static const char* options[] = {"ms2500", "ms4000", "ms6000", "ms10000", "ms15000", "ms25000", "ms40000", "ms60000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_nb_r13_s::t300_r13_e_"); @@ -9299,7 +9654,7 @@ uint16_t ue_timers_and_consts_nb_r13_s::t300_r13_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_nb_r13_s::t300_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t301_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t301_r13_opts::to_string() const { static const char* options[] = {"ms2500", "ms4000", "ms6000", "ms10000", "ms15000", "ms25000", "ms40000", "ms60000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_nb_r13_s::t301_r13_e_"); @@ -9310,7 +9665,7 @@ uint16_t ue_timers_and_consts_nb_r13_s::t301_r13_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_nb_r13_s::t301_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t310_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t310_r13_opts::to_string() const { static const char* options[] = {"ms0", "ms200", "ms500", "ms1000", "ms2000", "ms4000", "ms8000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_nb_r13_s::t310_r13_e_"); @@ -9321,7 +9676,7 @@ uint16_t ue_timers_and_consts_nb_r13_s::t310_r13_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_nb_r13_s::t310_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::n310_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::n310_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_nb_r13_s::n310_r13_e_"); @@ -9332,7 +9687,7 @@ uint8_t ue_timers_and_consts_nb_r13_s::n310_r13_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_nb_r13_s::n310_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t311_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t311_r13_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_nb_r13_s::t311_r13_e_"); @@ -9343,7 +9698,7 @@ uint16_t ue_timers_and_consts_nb_r13_s::t311_r13_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_nb_r13_s::t311_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::n311_r13_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::n311_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_nb_r13_s::n311_r13_e_"); @@ -9354,7 +9709,7 @@ uint8_t ue_timers_and_consts_nb_r13_s::n311_r13_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_nb_r13_s::n311_r13_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t311_v1350_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t311_v1350_opts::to_string() const { static const char* options[] = {"ms40000", "ms60000", "ms90000", "ms120000"}; return convert_enum_idx(options, 4, value, "ue_timers_and_consts_nb_r13_s::t311_v1350_e_"); @@ -9365,7 +9720,7 @@ uint32_t ue_timers_and_consts_nb_r13_s::t311_v1350_opts::to_number() const return map_enum_number(options, 4, value, "ue_timers_and_consts_nb_r13_s::t311_v1350_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t300_v1530_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t300_v1530_opts::to_string() const { static const char* options[] = {"ms80000", "ms100000", "ms120000"}; return convert_enum_idx(options, 3, value, "ue_timers_and_consts_nb_r13_s::t300_v1530_e_"); @@ -9376,7 +9731,7 @@ uint32_t ue_timers_and_consts_nb_r13_s::t300_v1530_opts::to_number() const return map_enum_number(options, 3, value, "ue_timers_and_consts_nb_r13_s::t300_v1530_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t301_v1530_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t301_v1530_opts::to_string() const { static const char* options[] = {"ms80000", "ms100000", "ms120000"}; return convert_enum_idx(options, 3, value, "ue_timers_and_consts_nb_r13_s::t301_v1530_e_"); @@ -9387,7 +9742,7 @@ uint32_t ue_timers_and_consts_nb_r13_s::t301_v1530_opts::to_number() const return map_enum_number(options, 3, value, "ue_timers_and_consts_nb_r13_s::t301_v1530_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t311_v1530_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t311_v1530_opts::to_string() const { static const char* options[] = {"ms160000", "ms200000"}; return convert_enum_idx(options, 2, value, "ue_timers_and_consts_nb_r13_s::t311_v1530_e_"); @@ -9398,7 +9753,7 @@ uint32_t ue_timers_and_consts_nb_r13_s::t311_v1530_opts::to_number() const return map_enum_number(options, 2, value, "ue_timers_and_consts_nb_r13_s::t311_v1530_e_"); } -std::string ue_timers_and_consts_nb_r13_s::t300_r15_opts::to_string() const +const char* ue_timers_and_consts_nb_r13_s::t300_r15_opts::to_string() const { static const char* options[] = { "ms6000", "ms10000", "ms15000", "ms25000", "ms40000", "ms60000", "ms80000", "ms120000"}; @@ -9461,7 +9816,7 @@ void plmn_id_info_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string plmn_id_info_nb_r13_s::cell_reserved_for_oper_r13_opts::to_string() const +const char* plmn_id_info_nb_r13_s::cell_reserved_for_oper_r13_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_nb_r13_s::cell_reserved_for_oper_r13_e_"); @@ -9500,7 +9855,7 @@ void sched_info_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sched_info_nb_r13_s::si_periodicity_r13_opts::to_string() const +const char* sched_info_nb_r13_s::si_periodicity_r13_opts::to_string() const { static const char* options[] = {"rf64", "rf128", "rf256", "rf512", "rf1024", "rf2048", "rf4096", "spare"}; return convert_enum_idx(options, 8, value, "sched_info_nb_r13_s::si_periodicity_r13_e_"); @@ -9511,7 +9866,7 @@ uint16_t sched_info_nb_r13_s::si_periodicity_r13_opts::to_number() const return map_enum_number(options, 7, value, "sched_info_nb_r13_s::si_periodicity_r13_e_"); } -std::string sched_info_nb_r13_s::si_repeat_pattern_r13_opts::to_string() const +const char* sched_info_nb_r13_s::si_repeat_pattern_r13_opts::to_string() const { static const char* options[] = {"every2ndRF", "every4thRF", "every8thRF", "every16thRF"}; return convert_enum_idx(options, 4, value, "sched_info_nb_r13_s::si_repeat_pattern_r13_e_"); @@ -9522,7 +9877,7 @@ uint8_t sched_info_nb_r13_s::si_repeat_pattern_r13_opts::to_number() const return map_enum_number(options, 4, value, "sched_info_nb_r13_s::si_repeat_pattern_r13_e_"); } -std::string sched_info_nb_r13_s::si_tb_r13_opts::to_string() const +const char* sched_info_nb_r13_s::si_tb_r13_opts::to_string() const { static const char* options[] = {"b56", "b120", "b208", "b256", "b328", "b440", "b552", "b680"}; return convert_enum_idx(options, 8, value, "sched_info_nb_r13_s::si_tb_r13_e_"); @@ -9720,6 +10075,17 @@ sib_type14_nb_r13_s::ab_param_r13_c_::operator=(const sib_type14_nb_r13_s::ab_pa return *this; } +ab_cfg_nb_r13_s& sib_type14_nb_r13_s::ab_param_r13_c_::set_ab_common_r13() +{ + set(types::ab_common_r13); + return c.get(); +} +sib_type14_nb_r13_s::ab_param_r13_c_::ab_per_plmn_list_r13_l_& +sib_type14_nb_r13_s::ab_param_r13_c_::set_ab_per_plmn_list_r13() +{ + set(types::ab_per_plmn_list_r13); + return c.get(); +} void sib_type14_nb_r13_s::ab_param_r13_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9775,13 +10141,13 @@ SRSASN_CODE sib_type14_nb_r13_s::ab_param_r13_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sib_type14_nb_r13_s::ab_param_r13_c_::types_opts::to_string() const +const char* sib_type14_nb_r13_s::ab_param_r13_c_::types_opts::to_string() const { static const char* options[] = {"ab-Common-r13", "ab-PerPLMN-List-r13"}; return convert_enum_idx(options, 2, value, "sib_type14_nb_r13_s::ab_param_r13_c_::types"); } -std::string sib_type14_nb_r13_s::ab_per_nrsrp_r15_opts::to_string() const +const char* sib_type14_nb_r13_s::ab_per_nrsrp_r15_opts::to_string() const { static const char* options[] = {"thresh1", "thresh2"}; return convert_enum_idx(options, 2, value, "sib_type14_nb_r13_s::ab_per_nrsrp_r15_e_"); @@ -10145,6 +10511,16 @@ sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::operator=(const sib_type20_nb_r return *this; } +dl_carrier_cfg_common_nb_r14_s& sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::set_dl_carrier_cfg_r14() +{ + set(types::dl_carrier_cfg_r14); + return c.get(); +} +uint8_t& sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::set_dl_carrier_idx_r14() +{ + set(types::dl_carrier_idx_r14); + return c.get(); +} void sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10196,13 +10572,13 @@ SRSASN_CODE sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::types_opts::to_string() const +const char* sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::types_opts::to_string() const { static const char* options[] = {"dl-CarrierConfig-r14", "dl-CarrierIndex-r14"}; return convert_enum_idx(options, 2, value, "sib_type20_nb_r14_s::sc_mcch_carrier_cfg_r14_c_::types"); } -std::string sib_type20_nb_r14_s::sc_mcch_repeat_period_r14_opts::to_string() const +const char* sib_type20_nb_r14_s::sc_mcch_repeat_period_r14_opts::to_string() const { static const char* options[] = {"rf32", "rf128", "rf512", "rf1024", "rf2048", "rf4096", "rf8192", "rf16384"}; return convert_enum_idx(options, 8, value, "sib_type20_nb_r14_s::sc_mcch_repeat_period_r14_e_"); @@ -10213,7 +10589,7 @@ uint16_t sib_type20_nb_r14_s::sc_mcch_repeat_period_r14_opts::to_number() const return map_enum_number(options, 8, value, "sib_type20_nb_r14_s::sc_mcch_repeat_period_r14_e_"); } -std::string sib_type20_nb_r14_s::sc_mcch_mod_period_r14_opts::to_string() const +const char* sib_type20_nb_r14_s::sc_mcch_mod_period_r14_opts::to_string() const { static const char* options[] = {"rf32", "rf128", @@ -10727,7 +11103,7 @@ void sib_type3_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type3_nb_r13_s::cell_resel_info_common_r13_s_::q_hyst_r13_opts::to_string() const +const char* sib_type3_nb_r13_s::cell_resel_info_common_r13_s_::q_hyst_r13_opts::to_string() const { static const char* options[] = {"dB0", "dB1", @@ -11151,6 +11527,56 @@ sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_& sys_info_nb_r13_ies_s::sib return *this; } +sib_type2_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib2_r13() +{ + set(types::sib2_r13); + return c.get(); +} +sib_type3_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib3_r13() +{ + set(types::sib3_r13); + return c.get(); +} +sib_type4_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib4_r13() +{ + set(types::sib4_r13); + return c.get(); +} +sib_type5_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib5_r13() +{ + set(types::sib5_r13); + return c.get(); +} +sib_type14_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib14_r13() +{ + set(types::sib14_r13); + return c.get(); +} +sib_type16_nb_r13_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib16_r13() +{ + set(types::sib16_r13); + return c.get(); +} +sib_type15_nb_r14_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib15_v1430() +{ + set(types::sib15_v1430); + return c.get(); +} +sib_type20_nb_r14_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib20_v1430() +{ + set(types::sib20_v1430); + return c.get(); +} +sib_type22_nb_r14_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib22_v1430() +{ + set(types::sib22_v1430); + return c.get(); +} +sib_type23_nb_r15_s& sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::set_sib23_v1530() +{ + set(types::sib23_v1530); + return c.get(); +} void sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11291,7 +11717,7 @@ SRSASN_CODE sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::unpack(cbit_re return SRSASN_SUCCESS; } -std::string sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::types_opts::to_string() const +const char* sys_info_nb_r13_ies_s::sib_type_and_info_r13_item_c_::types_opts::to_string() const { static const char* options[] = {"sib2-r13", "sib3-r13", @@ -11379,6 +11805,15 @@ void sys_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +sys_info_nb_r13_ies_s& sys_info_nb_s::crit_exts_c_::set_sys_info_r13() +{ + set(types::sys_info_r13); + return c; +} +void sys_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void sys_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11427,7 +11862,7 @@ SRSASN_CODE sys_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sys_info_nb_s::crit_exts_c_::types_opts::to_string() const +const char* sys_info_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "sys_info_nb_s::crit_exts_c_::types"); @@ -11623,20 +12058,20 @@ void sib_type1_nb_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type1_nb_s::cell_access_related_info_r13_s_::cell_barred_r13_opts::to_string() const +const char* sib_type1_nb_s::cell_access_related_info_r13_s_::cell_barred_r13_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; return convert_enum_idx(options, 2, value, "sib_type1_nb_s::cell_access_related_info_r13_s_::cell_barred_r13_e_"); } -std::string sib_type1_nb_s::cell_access_related_info_r13_s_::intra_freq_resel_r13_opts::to_string() const +const char* sib_type1_nb_s::cell_access_related_info_r13_s_::intra_freq_resel_r13_opts::to_string() const { static const char* options[] = {"allowed", "notAllowed"}; return convert_enum_idx( options, 2, value, "sib_type1_nb_s::cell_access_related_info_r13_s_::intra_freq_resel_r13_e_"); } -std::string sib_type1_nb_s::eutra_ctrl_region_size_r13_opts::to_string() const +const char* sib_type1_nb_s::eutra_ctrl_region_size_r13_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3"}; return convert_enum_idx(options, 3, value, "sib_type1_nb_s::eutra_ctrl_region_size_r13_e_"); @@ -11647,7 +12082,7 @@ uint8_t sib_type1_nb_s::eutra_ctrl_region_size_r13_opts::to_number() const return map_enum_number(options, 3, value, "sib_type1_nb_s::eutra_ctrl_region_size_r13_e_"); } -std::string sib_type1_nb_s::nrs_crs_pwr_offset_r13_opts::to_string() const +const char* sib_type1_nb_s::nrs_crs_pwr_offset_r13_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4dot77", @@ -11673,14 +12108,14 @@ float sib_type1_nb_s::nrs_crs_pwr_offset_r13_opts::to_number() const -6.0, -4.77, -3.0, -1.77, 0.0, 1.0, 1.23, 2.0, 3.0, 4.0, 4.23, 5.0, 6.0, 7.0, 8.0, 9.0}; return map_enum_number(options, 16, value, "sib_type1_nb_s::nrs_crs_pwr_offset_r13_e_"); } -std::string sib_type1_nb_s::nrs_crs_pwr_offset_r13_opts::to_number_string() const +const char* sib_type1_nb_s::nrs_crs_pwr_offset_r13_opts::to_number_string() const { static const char* options[] = { "-6", "-4.77", "-3", "-1.77", "0", "1", "1.23", "2", "3", "4", "4.23", "5", "6", "7", "8", "9"}; return convert_enum_idx(options, 16, value, "sib_type1_nb_s::nrs_crs_pwr_offset_r13_e_"); } -std::string sib_type1_nb_s::si_win_len_r13_opts::to_string() const +const char* sib_type1_nb_s::si_win_len_r13_opts::to_string() const { static const char* options[] = {"ms160", "ms320", "ms480", "ms640", "ms960", "ms1280", "ms1600", "spare1"}; return convert_enum_idx(options, 8, value, "sib_type1_nb_s::si_win_len_r13_e_"); @@ -11696,6 +12131,15 @@ void bcch_dl_sch_msg_type_nb_c::set(types::options e) { type_ = e; } +bcch_dl_sch_msg_type_nb_c::c1_c_& bcch_dl_sch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void bcch_dl_sch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_dl_sch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -11812,6 +12256,16 @@ bcch_dl_sch_msg_type_nb_c::c1_c_::operator=(const bcch_dl_sch_msg_type_nb_c::c1_ return *this; } +sys_info_nb_s& bcch_dl_sch_msg_type_nb_c::c1_c_::set_sys_info_r13() +{ + set(types::sys_info_r13); + return c.get(); +} +sib_type1_nb_s& bcch_dl_sch_msg_type_nb_c::c1_c_::set_sib_type1_r13() +{ + set(types::sib_type1_r13); + return c.get(); +} void bcch_dl_sch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11864,7 +12318,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string bcch_dl_sch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation-r13", "systemInformationBlockType1-r13"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_nb_c::c1_c_::types"); @@ -11878,7 +12332,7 @@ uint8_t bcch_dl_sch_msg_type_nb_c::c1_c_::types_opts::to_number() const return 0; } -std::string bcch_dl_sch_msg_type_nb_c::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_nb_c::types"); @@ -12015,7 +12469,7 @@ void redirected_carrier_info_nb_v1430_s::to_json(json_writer& j) const j.end_obj(); } -std::string redirected_carrier_info_nb_v1430_s::redirected_carrier_offset_ded_r14_opts::to_string() const +const char* redirected_carrier_info_nb_v1430_s::redirected_carrier_offset_ded_r14_opts::to_string() const { static const char* options[] = {"dB1", "dB2", @@ -12043,7 +12497,7 @@ uint8_t redirected_carrier_info_nb_v1430_s::redirected_carrier_offset_ded_r14_op options, 16, value, "redirected_carrier_info_nb_v1430_s::redirected_carrier_offset_ded_r14_e_"); } -std::string redirected_carrier_info_nb_v1430_s::t322_r14_opts::to_string() const +const char* redirected_carrier_info_nb_v1430_s::t322_r14_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min180", "spare1"}; return convert_enum_idx(options, 8, value, "redirected_carrier_info_nb_v1430_s::t322_r14_e_"); @@ -12294,6 +12748,15 @@ void rrc_conn_reest_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_nb_s::crit_exts_c_::c1_c_& rrc_conn_reest_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_reest_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12346,6 +12809,15 @@ void rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_nb_r13_ies_s& rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_reest_r13() +{ + set(types::rrc_conn_reest_r13); + return c; +} +void rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12394,7 +12866,7 @@ SRSASN_CODE rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishment-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_nb_s::crit_exts_c_::c1_c_::types"); @@ -12425,6 +12897,15 @@ void rrc_conn_reject_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reject_nb_s::crit_exts_c_::c1_c_& rrc_conn_reject_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_reject_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reject_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12477,6 +12958,15 @@ void rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_reject_nb_r13_ies_s& rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_reject_r13() +{ + set(types::rrc_conn_reject_r13); + return c; +} +void rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12525,7 +13015,7 @@ SRSASN_CODE rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReject-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_reject_nb_s::crit_exts_c_::c1_c_::types"); @@ -12559,6 +13049,15 @@ void rrc_conn_setup_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_nb_s::crit_exts_c_::c1_c_& rrc_conn_setup_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_setup_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_setup_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12611,6 +13110,15 @@ void rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_nb_r13_ies_s& rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_setup_r13() +{ + set(types::rrc_conn_setup_r13); + return c; +} +void rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12659,7 +13167,7 @@ SRSASN_CODE rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionSetup-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::types"); @@ -12690,6 +13198,15 @@ void rrc_early_data_complete_nb_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_early_data_complete_nb_r15_ies_s& rrc_early_data_complete_nb_r15_s::crit_exts_c_::set_rrc_early_data_complete_r15() +{ + set(types::rrc_early_data_complete_r15); + return c; +} +void rrc_early_data_complete_nb_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_early_data_complete_nb_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12738,7 +13255,7 @@ SRSASN_CODE rrc_early_data_complete_nb_r15_s::crit_exts_c_::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string rrc_early_data_complete_nb_r15_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_early_data_complete_nb_r15_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataComplete-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_early_data_complete_nb_r15_s::crit_exts_c_::types"); @@ -12749,6 +13266,15 @@ void dl_ccch_msg_type_nb_c::set(types::options e) { type_ = e; } +dl_ccch_msg_type_nb_c::c1_c_& dl_ccch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void dl_ccch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void dl_ccch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -12918,6 +13444,43 @@ dl_ccch_msg_type_nb_c::c1_c_& dl_ccch_msg_type_nb_c::c1_c_::operator=(const dl_c return *this; } +rrc_conn_reest_nb_s& dl_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_reest_r13() +{ + set(types::rrc_conn_reest_r13); + return c.get(); +} +rrc_conn_reest_reject_s& dl_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_reest_reject_r13() +{ + set(types::rrc_conn_reest_reject_r13); + return c.get(); +} +rrc_conn_reject_nb_s& dl_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_reject_r13() +{ + set(types::rrc_conn_reject_r13); + return c.get(); +} +rrc_conn_setup_nb_s& dl_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_setup_r13() +{ + set(types::rrc_conn_setup_r13); + return c.get(); +} +rrc_early_data_complete_nb_r15_s& dl_ccch_msg_type_nb_c::c1_c_::set_rrc_early_data_complete_r15() +{ + set(types::rrc_early_data_complete_r15); + return c.get(); +} +void dl_ccch_msg_type_nb_c::c1_c_::set_spare3() +{ + set(types::spare3); +} +void dl_ccch_msg_type_nb_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_ccch_msg_type_nb_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_ccch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13018,7 +13581,7 @@ SRSASN_CODE dl_ccch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* dl_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishment-r13", "rrcConnectionReestablishmentReject-r13", @@ -13031,7 +13594,7 @@ std::string dl_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 8, value, "dl_ccch_msg_type_nb_c::c1_c_::types"); } -std::string dl_ccch_msg_type_nb_c::types_opts::to_string() const +const char* dl_ccch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_ccch_msg_type_nb_c::types"); @@ -13245,7 +13808,7 @@ void rrc_conn_release_nb_v1430_ies_s::to_json(json_writer& j) const } // ReleaseCause-NB-r13 ::= ENUMERATED -std::string release_cause_nb_r13_opts::to_string() const +const char* release_cause_nb_r13_opts::to_string() const { static const char* options[] = {"loadBalancingTAUrequired", "other", "rrc-Suspend", "spare1"}; return convert_enum_idx(options, 4, value, "release_cause_nb_r13_e"); @@ -13561,6 +14124,15 @@ void dl_info_transfer_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +dl_info_transfer_nb_s::crit_exts_c_::c1_c_& dl_info_transfer_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void dl_info_transfer_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void dl_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13613,6 +14185,15 @@ void dl_info_transfer_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +dl_info_transfer_nb_r13_ies_s& dl_info_transfer_nb_s::crit_exts_c_::c1_c_::set_dl_info_transfer_r13() +{ + set(types::dl_info_transfer_r13); + return c; +} +void dl_info_transfer_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_info_transfer_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13661,7 +14242,7 @@ SRSASN_CODE dl_info_transfer_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_info_transfer_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* dl_info_transfer_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"dlInformationTransfer-r13", "spare1"}; return convert_enum_idx(options, 2, value, "dl_info_transfer_nb_s::crit_exts_c_::c1_c_::types"); @@ -13695,6 +14276,15 @@ void rrc_conn_recfg_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_& rrc_conn_recfg_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_recfg_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_recfg_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13747,6 +14337,15 @@ void rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_nb_r13_ies_s& rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_recfg_r13() +{ + set(types::rrc_conn_recfg_r13); + return c; +} +void rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13795,7 +14394,7 @@ SRSASN_CODE rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReconfiguration-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_recfg_nb_s::crit_exts_c_::c1_c_::types"); @@ -13829,6 +14428,15 @@ void rrc_conn_release_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_release_nb_s::crit_exts_c_::c1_c_& rrc_conn_release_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_release_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_release_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13881,6 +14489,15 @@ void rrc_conn_release_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_release_nb_r13_ies_s& rrc_conn_release_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_release_r13() +{ + set(types::rrc_conn_release_r13); + return c; +} +void rrc_conn_release_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_release_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13929,7 +14546,7 @@ SRSASN_CODE rrc_conn_release_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_release_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_release_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionRelease-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_release_nb_s::crit_exts_c_::c1_c_::types"); @@ -13963,6 +14580,15 @@ void rrc_conn_resume_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_nb_s::crit_exts_c_::c1_c_& rrc_conn_resume_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void rrc_conn_resume_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_resume_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14015,6 +14641,15 @@ void rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_nb_r13_ies_s& rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::set_rrc_conn_resume_r13() +{ + set(types::rrc_conn_resume_r13); + return c; +} +void rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14063,7 +14698,7 @@ SRSASN_CODE rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResume-r13", "spare1"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_nb_s::crit_exts_c_::c1_c_::types"); @@ -14097,6 +14732,15 @@ void ue_cap_enquiry_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_& ue_cap_enquiry_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_cap_enquiry_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_enquiry_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14149,6 +14793,15 @@ void ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_cap_enquiry_nb_r13_ies_s& ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::set_ue_cap_enquiry_r13() +{ + set(types::ue_cap_enquiry_r13); + return c; +} +void ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14197,7 +14850,7 @@ SRSASN_CODE ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueCapabilityEnquiry-r13", "spare1"}; return convert_enum_idx(options, 2, value, "ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::types"); @@ -14208,6 +14861,15 @@ void dl_dcch_msg_type_nb_c::set(types::options e) { type_ = e; } +dl_dcch_msg_type_nb_c::c1_c_& dl_dcch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void dl_dcch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void dl_dcch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -14383,6 +15045,44 @@ dl_dcch_msg_type_nb_c::c1_c_& dl_dcch_msg_type_nb_c::c1_c_::operator=(const dl_d return *this; } +dl_info_transfer_nb_s& dl_dcch_msg_type_nb_c::c1_c_::set_dl_info_transfer_r13() +{ + set(types::dl_info_transfer_r13); + return c.get(); +} +rrc_conn_recfg_nb_s& dl_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_recfg_r13() +{ + set(types::rrc_conn_recfg_r13); + return c.get(); +} +rrc_conn_release_nb_s& dl_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_release_r13() +{ + set(types::rrc_conn_release_r13); + return c.get(); +} +security_mode_cmd_s& dl_dcch_msg_type_nb_c::c1_c_::set_security_mode_cmd_r13() +{ + set(types::security_mode_cmd_r13); + return c.get(); +} +ue_cap_enquiry_nb_s& dl_dcch_msg_type_nb_c::c1_c_::set_ue_cap_enquiry_r13() +{ + set(types::ue_cap_enquiry_r13); + return c.get(); +} +rrc_conn_resume_nb_s& dl_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_resume_r13() +{ + set(types::rrc_conn_resume_r13); + return c.get(); +} +void dl_dcch_msg_type_nb_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_dcch_msg_type_nb_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_dcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14487,7 +15187,7 @@ SRSASN_CODE dl_dcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* dl_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"dlInformationTransfer-r13", "rrcConnectionReconfiguration-r13", @@ -14500,7 +15200,7 @@ std::string dl_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 8, value, "dl_dcch_msg_type_nb_c::c1_c_::types"); } -std::string dl_dcch_msg_type_nb_c::types_opts::to_string() const +const char* dl_dcch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_dcch_msg_type_nb_c::types"); @@ -14568,7 +15268,7 @@ void supported_band_nb_r13_s::to_json(json_writer& j) const } // AccessStratumRelease-NB-r13 ::= ENUMERATED -std::string access_stratum_release_nb_r13_opts::to_string() const +const char* access_stratum_release_nb_r13_opts::to_string() const { static const char* options[] = {"rel13", "rel14", "rel15", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "access_stratum_release_nb_r13_e"); @@ -14672,7 +15372,7 @@ void pdcp_params_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_string() const +const char* pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_string() const { static const char* options[] = {"cs2", "cs4", "cs8", "cs12"}; return convert_enum_idx(options, 4, value, "pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_e_"); @@ -14815,7 +15515,7 @@ void rrm_cfg_nb_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrm_cfg_nb_s::ue_inactive_time_opts::to_string() const +const char* rrm_cfg_nb_s::ue_inactive_time_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s25", "s30", @@ -14975,6 +15675,15 @@ void ho_prep_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_prep_info_nb_s::crit_exts_c_::c1_c_& ho_prep_info_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_prep_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_prep_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15027,6 +15736,23 @@ void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_prep_info_nb_ies_s& ho_prep_info_nb_s::crit_exts_c_::c1_c_::set_ho_prep_info_r13() +{ + set(types::ho_prep_info_r13); + return c; +} +void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_prep_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15087,7 +15813,7 @@ SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_prep_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_prep_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"handoverPreparationInformation-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ho_prep_info_nb_s::crit_exts_c_::c1_c_::types"); @@ -15195,6 +15921,15 @@ void pcch_msg_type_nb_c::set(types::options e) { type_ = e; } +pcch_msg_type_nb_c::c1_c_& pcch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void pcch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void pcch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -15261,13 +15996,13 @@ SRSASN_CODE pcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pcch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* pcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"paging-r13"}; return convert_enum_idx(options, 1, value, "pcch_msg_type_nb_c::c1_c_::types"); } -std::string pcch_msg_type_nb_c::types_opts::to_string() const +const char* pcch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "pcch_msg_type_nb_c::types"); @@ -15406,6 +16141,15 @@ void rrc_conn_recfg_complete_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_recfg_complete_nb_r13_ies_s& rrc_conn_recfg_complete_nb_s::crit_exts_c_::set_rrc_conn_recfg_complete_r13() +{ + set(types::rrc_conn_recfg_complete_r13); + return c; +} +void rrc_conn_recfg_complete_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_recfg_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15454,7 +16198,7 @@ SRSASN_CODE rrc_conn_recfg_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_recfg_complete_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_recfg_complete_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReconfigurationComplete-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_recfg_complete_nb_s::crit_exts_c_::types"); @@ -15568,6 +16312,15 @@ void rrc_conn_reest_complete_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_complete_nb_r13_ies_s& rrc_conn_reest_complete_nb_s::crit_exts_c_::set_rrc_conn_reest_complete_r13() +{ + set(types::rrc_conn_reest_complete_r13); + return c; +} +void rrc_conn_reest_complete_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15616,14 +16369,14 @@ SRSASN_CODE rrc_conn_reest_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_reest_complete_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_reest_complete_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentComplete-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_complete_nb_s::crit_exts_c_::types"); } // CQI-NPDCCH-NB-r14 ::= ENUMERATED -std::string cqi_npdcch_nb_r14_opts::to_string() const +const char* cqi_npdcch_nb_r14_opts::to_string() const { static const char* options[] = {"noMeasurements", "candidateRep-A", @@ -15642,7 +16395,7 @@ std::string cqi_npdcch_nb_r14_opts::to_string() const } // CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED -std::string cqi_npdcch_short_nb_r14_opts::to_string() const +const char* cqi_npdcch_short_nb_r14_opts::to_string() const { static const char* options[] = {"noMeasurements", "candidateRep-1", "candidateRep-2", "candidateRep-3"}; return convert_enum_idx(options, 4, value, "cqi_npdcch_short_nb_r14_e"); @@ -15690,7 +16443,7 @@ void reestab_ue_id_cp_nb_r14_s::to_json(json_writer& j) const } // ReestablishmentCause-NB-r13 ::= ENUMERATED -std::string reest_cause_nb_r13_opts::to_string() const +const char* reest_cause_nb_r13_opts::to_string() const { static const char* options[] = {"reconfigurationFailure", "otherFailure", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "reest_cause_nb_r13_e"); @@ -15851,6 +16604,16 @@ rrc_conn_reest_request_nb_s::crit_exts_c_::operator=(const rrc_conn_reest_reques return *this; } +rrc_conn_reest_request_nb_r13_ies_s& rrc_conn_reest_request_nb_s::crit_exts_c_::set_rrc_conn_reest_request_r13() +{ + set(types::rrc_conn_reest_request_r13); + return c.get(); +} +rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_& rrc_conn_reest_request_nb_s::crit_exts_c_::set_later() +{ + set(types::later); + return c.get(); +} void rrc_conn_reest_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15907,6 +16670,16 @@ void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::set(types::options e) { type_ = e; } +rrc_conn_reest_request_nb_r14_ies_s& +rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::set_rrc_conn_reest_request_r14() +{ + set(types::rrc_conn_reest_request_r14); + return c; +} +void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15955,20 +16728,20 @@ SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::unpack(cbit_ref return SRSASN_SUCCESS; } -std::string rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types_opts::to_string() const +const char* rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentRequest-r14", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types"); } -std::string rrc_conn_reest_request_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_reest_request_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentRequest-r13", "later"}; return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::types"); } // EstablishmentCause-NB-r13 ::= ENUMERATED -std::string establishment_cause_nb_r13_opts::to_string() const +const char* establishment_cause_nb_r13_opts::to_string() const { static const char* options[] = {"mt-Access", "mo-Signalling", @@ -16051,6 +16824,15 @@ void rrc_conn_request_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_request_nb_r13_ies_s& rrc_conn_request_nb_s::crit_exts_c_::set_rrc_conn_request_r13() +{ + set(types::rrc_conn_request_r13); + return c; +} +void rrc_conn_request_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16099,7 +16881,7 @@ SRSASN_CODE rrc_conn_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_request_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_request_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionRequest-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_request_nb_s::crit_exts_c_::types"); @@ -16235,6 +17017,15 @@ void rrc_conn_resume_complete_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_complete_nb_r13_ies_s& rrc_conn_resume_complete_nb_s::crit_exts_c_::set_rrc_conn_resume_complete_r13() +{ + set(types::rrc_conn_resume_complete_r13); + return c; +} +void rrc_conn_resume_complete_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_resume_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16283,7 +17074,7 @@ SRSASN_CODE rrc_conn_resume_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_resume_complete_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_resume_complete_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResumeComplete-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_complete_nb_s::crit_exts_c_::types"); @@ -16349,6 +17140,15 @@ void rrc_conn_resume_request_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_resume_request_nb_r13_ies_s& rrc_conn_resume_request_nb_s::crit_exts_c_::set_rrc_conn_resume_request_r13() +{ + set(types::rrc_conn_resume_request_r13); + return c; +} +void rrc_conn_resume_request_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_resume_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16397,7 +17197,7 @@ SRSASN_CODE rrc_conn_resume_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_resume_request_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_resume_request_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionResumeRequest-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_nb_s::crit_exts_c_::types"); @@ -16598,6 +17398,15 @@ void rrc_conn_setup_complete_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_conn_setup_complete_nb_r13_ies_s& rrc_conn_setup_complete_nb_s::crit_exts_c_::set_rrc_conn_setup_complete_r13() +{ + set(types::rrc_conn_setup_complete_r13); + return c; +} +void rrc_conn_setup_complete_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_conn_setup_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16646,7 +17455,7 @@ SRSASN_CODE rrc_conn_setup_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_conn_setup_complete_nb_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_conn_setup_complete_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionSetupComplete-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_nb_s::crit_exts_c_::types"); @@ -16741,7 +17550,7 @@ void rrc_early_data_request_nb_r15_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_opts::to_string() const +const char* rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_opts::to_string() const { static const char* options[] = {"mo-Data", "mo-ExceptionData", "delayTolerantAccess", "spare1"}; return convert_enum_idx(options, 4, value, "rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_e_"); @@ -16772,6 +17581,15 @@ void rrc_early_data_request_nb_r15_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_early_data_request_nb_r15_ies_s& rrc_early_data_request_nb_r15_s::crit_exts_c_::set_rrc_early_data_request_r15() +{ + set(types::rrc_early_data_request_r15); + return c; +} +void rrc_early_data_request_nb_r15_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_early_data_request_nb_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16820,7 +17638,7 @@ SRSASN_CODE rrc_early_data_request_nb_r15_s::crit_exts_c_::unpack(cbit_ref& bref return SRSASN_SUCCESS; } -std::string rrc_early_data_request_nb_r15_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_early_data_request_nb_r15_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcEarlyDataRequest-r15", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_early_data_request_nb_r15_s::crit_exts_c_::types"); @@ -16855,7 +17673,7 @@ void sc_mtch_sched_info_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -std::string sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const +const char* sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "spare"}; return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); @@ -16866,7 +17684,7 @@ uint8_t sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_number() co return map_enum_number(options, 7, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const +const char* sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { static const char* options[] = {"pp0", "pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32"}; return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); @@ -17007,6 +17825,86 @@ sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( return *this; } +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf32() +{ + set(types::sf32); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf64() +{ + set(types::sf64); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf128() +{ + set(types::sf128); + return c.get(); +} +uint8_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf256() +{ + set(types::sf256); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf320() +{ + set(types::sf320); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf512() +{ + set(types::sf512); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf640() +{ + set(types::sf640); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf1024() +{ + set(types::sf1024); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf2048() +{ + set(types::sf2048); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf4096() +{ + set(types::sf4096); + return c.get(); +} +uint16_t& sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set_sf8192() +{ + set(types::sf8192); + return c.get(); +} void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -17183,7 +18081,7 @@ SRSASN_CODE sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_: return SRSASN_SUCCESS; } -std::string sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const +const char* sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::types_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -17343,6 +18241,16 @@ sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_& sc_mtch_info_nb_r14_s::sc_mtc return *this; } +dl_carrier_cfg_common_nb_r14_s& sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::set_dl_carrier_cfg_r14() +{ + set(types::dl_carrier_cfg_r14); + return c.get(); +} +uint8_t& sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::set_dl_carrier_idx_r14() +{ + set(types::dl_carrier_idx_r14); + return c.get(); +} void sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::to_json(json_writer& j) const { j.start_obj(); @@ -17394,13 +18302,13 @@ SRSASN_CODE sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types_opts::to_string() const +const char* sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types_opts::to_string() const { static const char* options[] = {"dl-CarrierConfig-r14", "dl-CarrierIndex-r14"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types"); } -std::string sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"n680", "n2536"}; return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); @@ -17411,7 +18319,7 @@ uint16_t sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_numbe return map_enum_number(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); } -std::string sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"r1", "r2", @@ -17437,7 +18345,7 @@ uint16_t sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_number() return map_enum_number(options, 12, value, "sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_e_"); } -std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_string() const { static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); @@ -17447,13 +18355,13 @@ float sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number() const static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); } -std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number_string() const { static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); } -std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_string() const { static const char* options[] = { "zero", "oneEighth", "oneQuarter", "threeEighth", "oneHalf", "fiveEighth", "threeQuarter", "sevenEighth"}; @@ -17464,7 +18372,7 @@ float sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number() const static const float options[] = {0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875}; return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); } -std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number_string() const +const char* sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number_string() const { static const char* options[] = {"0", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); @@ -17534,6 +18442,15 @@ void sc_mcch_msg_type_nb_c::set(types::options e) { type_ = e; } +sc_mcch_msg_type_nb_c::c1_c_& sc_mcch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void sc_mcch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void sc_mcch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -17600,13 +18517,13 @@ SRSASN_CODE sc_mcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sc_mcch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* sc_mcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"scptmConfiguration-r14"}; return convert_enum_idx(options, 1, value, "sc_mcch_msg_type_nb_c::c1_c_::types"); } -std::string sc_mcch_msg_type_nb_c::types_opts::to_string() const +const char* sc_mcch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_nb_c::types"); @@ -18197,7 +19114,7 @@ void ue_radio_paging_info_nb_r13_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_radio_paging_info_nb_r13_s::wake_up_signal_min_gap_e_drx_r15_opts::to_string() const +const char* ue_radio_paging_info_nb_r13_s::wake_up_signal_min_gap_e_drx_r15_opts::to_string() const { static const char* options[] = {"ms40", "ms240", "ms1000", "ms2000"}; return convert_enum_idx(options, 4, value, "ue_radio_paging_info_nb_r13_s::wake_up_signal_min_gap_e_drx_r15_e_"); @@ -18315,6 +19232,15 @@ void ue_cap_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_info_nb_r13_ies_s& ue_cap_info_nb_s::crit_exts_c_::set_ue_cap_info_r13() +{ + set(types::ue_cap_info_r13); + return c; +} +void ue_cap_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18363,7 +19289,7 @@ SRSASN_CODE ue_cap_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_cap_info_nb_s::crit_exts_c_::types_opts::to_string() const +const char* ue_cap_info_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ueCapabilityInformation-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ue_cap_info_nb_s::crit_exts_c_::types"); @@ -18431,6 +19357,15 @@ void ue_paging_coverage_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_& ue_paging_coverage_info_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_paging_coverage_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_paging_coverage_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18483,6 +19418,23 @@ void ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_paging_coverage_info_nb_ies_s& ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::set_ue_paging_coverage_info_r13() +{ + set(types::ue_paging_coverage_info_r13); + return c; +} +void ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18543,7 +19495,7 @@ SRSASN_CODE ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"uePagingCoverageInformation-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_paging_coverage_info_nb_s::crit_exts_c_::c1_c_::types"); @@ -18687,6 +19639,15 @@ void ue_radio_access_cap_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_& ue_radio_access_cap_info_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_access_cap_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_access_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18739,6 +19700,24 @@ void ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_nb_ies_s& +ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::set_ue_radio_access_cap_info_r13() +{ + set(types::ue_radio_access_cap_info_r13); + return c; +} +void ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18799,7 +19778,7 @@ SRSASN_CODE ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueRadioAccessCapabilityInformation-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_radio_access_cap_info_nb_s::crit_exts_c_::c1_c_::types"); @@ -18859,6 +19838,15 @@ void ue_radio_paging_info_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_& ue_radio_paging_info_nb_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_paging_info_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_paging_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18911,6 +19899,23 @@ void ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_nb_ies_s& ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::set_ue_radio_paging_info_r13() +{ + set(types::ue_radio_paging_info_r13); + return c; +} +void ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -18971,7 +19976,7 @@ SRSASN_CODE ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ueRadioPagingInformation-r13", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::types"); @@ -18982,6 +19987,15 @@ void ul_ccch_msg_type_nb_c::set(types::options e) { type_ = e; } +ul_ccch_msg_type_nb_c::c1_c_& ul_ccch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void ul_ccch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void ul_ccch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -19121,6 +20135,26 @@ ul_ccch_msg_type_nb_c::c1_c_& ul_ccch_msg_type_nb_c::c1_c_::operator=(const ul_c return *this; } +rrc_conn_reest_request_nb_s& ul_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_reest_request_r13() +{ + set(types::rrc_conn_reest_request_r13); + return c.get(); +} +rrc_conn_request_nb_s& ul_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_request_r13() +{ + set(types::rrc_conn_request_r13); + return c.get(); +} +rrc_conn_resume_request_nb_s& ul_ccch_msg_type_nb_c::c1_c_::set_rrc_conn_resume_request_r13() +{ + set(types::rrc_conn_resume_request_r13); + return c.get(); +} +rrc_early_data_request_nb_r15_s& ul_ccch_msg_type_nb_c::c1_c_::set_rrc_early_data_request_r15() +{ + set(types::rrc_early_data_request_r15); + return c.get(); +} void ul_ccch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19193,7 +20227,7 @@ SRSASN_CODE ul_ccch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReestablishmentRequest-r13", "rrcConnectionRequest-r13", @@ -19202,7 +20236,7 @@ std::string ul_ccch_msg_type_nb_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 4, value, "ul_ccch_msg_type_nb_c::c1_c_::types"); } -std::string ul_ccch_msg_type_nb_c::types_opts::to_string() const +const char* ul_ccch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_ccch_msg_type_nb_c::types"); @@ -19307,6 +20341,15 @@ void ul_info_transfer_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_info_transfer_nb_r13_ies_s& ul_info_transfer_nb_s::crit_exts_c_::set_ul_info_transfer_r13() +{ + set(types::ul_info_transfer_r13); + return c; +} +void ul_info_transfer_nb_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19355,7 +20398,7 @@ SRSASN_CODE ul_info_transfer_nb_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_info_transfer_nb_s::crit_exts_c_::types_opts::to_string() const +const char* ul_info_transfer_nb_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ulInformationTransfer-r13", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ul_info_transfer_nb_s::crit_exts_c_::types"); @@ -19366,6 +20409,15 @@ void ul_dcch_msg_type_nb_c::set(types::options e) { type_ = e; } +ul_dcch_msg_type_nb_c::c1_c_& ul_dcch_msg_type_nb_c::set_c1() +{ + set(types::c1); + return c; +} +void ul_dcch_msg_type_nb_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void ul_dcch_msg_type_nb_c::to_json(json_writer& j) const { j.start_obj(); @@ -19601,6 +20653,78 @@ ul_dcch_msg_type_nb_c::c1_c_& ul_dcch_msg_type_nb_c::c1_c_::operator=(const ul_d return *this; } +rrc_conn_recfg_complete_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_recfg_complete_r13() +{ + set(types::rrc_conn_recfg_complete_r13); + return c.get(); +} +rrc_conn_reest_complete_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_reest_complete_r13() +{ + set(types::rrc_conn_reest_complete_r13); + return c.get(); +} +rrc_conn_setup_complete_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_setup_complete_r13() +{ + set(types::rrc_conn_setup_complete_r13); + return c.get(); +} +security_mode_complete_s& ul_dcch_msg_type_nb_c::c1_c_::set_security_mode_complete_r13() +{ + set(types::security_mode_complete_r13); + return c.get(); +} +security_mode_fail_s& ul_dcch_msg_type_nb_c::c1_c_::set_security_mode_fail_r13() +{ + set(types::security_mode_fail_r13); + return c.get(); +} +ue_cap_info_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_ue_cap_info_r13() +{ + set(types::ue_cap_info_r13); + return c.get(); +} +ul_info_transfer_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_ul_info_transfer_r13() +{ + set(types::ul_info_transfer_r13); + return c.get(); +} +rrc_conn_resume_complete_nb_s& ul_dcch_msg_type_nb_c::c1_c_::set_rrc_conn_resume_complete_r13() +{ + set(types::rrc_conn_resume_complete_r13); + return c.get(); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare8() +{ + set(types::spare8); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_dcch_msg_type_nb_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_dcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19761,7 +20885,7 @@ SRSASN_CODE ul_dcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const +const char* ul_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcConnectionReconfigurationComplete-r13", "rrcConnectionReestablishmentComplete-r13", @@ -19782,7 +20906,7 @@ std::string ul_dcch_msg_type_nb_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 16, value, "ul_dcch_msg_type_nb_c::c1_c_::types"); } -std::string ul_dcch_msg_type_nb_c::types_opts::to_string() const +const char* ul_dcch_msg_type_nb_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_dcch_msg_type_nb_c::types"); diff --git a/lib/src/asn1/rrc_nr.cc b/lib/src/asn1/rrc_nr.cc index aaa7980a6..6780b7567 100644 --- a/lib/src/asn1/rrc_nr.cc +++ b/lib/src/asn1/rrc_nr.cc @@ -94,7 +94,7 @@ void mib_s::to_json(json_writer& j) const j.end_obj(); } -std::string mib_s::sub_carrier_spacing_common_opts::to_string() const +const char* mib_s::sub_carrier_spacing_common_opts::to_string() const { static const char* options[] = {"scs15or60", "scs30or120"}; return convert_enum_idx(options, 2, value, "mib_s::sub_carrier_spacing_common_e_"); @@ -105,7 +105,7 @@ uint8_t mib_s::sub_carrier_spacing_common_opts::to_number() const return map_enum_number(options, 2, value, "mib_s::sub_carrier_spacing_common_e_"); } -std::string mib_s::dmrs_type_a_position_opts::to_string() const +const char* mib_s::dmrs_type_a_position_opts::to_string() const { static const char* options[] = {"pos2", "pos3"}; return convert_enum_idx(options, 2, value, "mib_s::dmrs_type_a_position_e_"); @@ -116,13 +116,13 @@ uint8_t mib_s::dmrs_type_a_position_opts::to_number() const return map_enum_number(options, 2, value, "mib_s::dmrs_type_a_position_e_"); } -std::string mib_s::cell_barred_opts::to_string() const +const char* mib_s::cell_barred_opts::to_string() const { static const char* options[] = {"barred", "notBarred"}; return convert_enum_idx(options, 2, value, "mib_s::cell_barred_e_"); } -std::string mib_s::intra_freq_resel_opts::to_string() const +const char* mib_s::intra_freq_resel_opts::to_string() const { static const char* options[] = {"allowed", "notAllowed"}; return convert_enum_idx(options, 2, value, "mib_s::intra_freq_resel_e_"); @@ -133,6 +133,15 @@ void bcch_bch_msg_type_c::set(types::options e) { type_ = e; } +mib_s& bcch_bch_msg_type_c::set_mib() +{ + set(types::mib); + return c; +} +void bcch_bch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_bch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -181,7 +190,7 @@ SRSASN_CODE bcch_bch_msg_type_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string bcch_bch_msg_type_c::types_opts::to_string() const +const char* bcch_bch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"mib", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_bch_msg_type_c::types"); @@ -291,7 +300,7 @@ void nr_ns_pmax_value_s::to_json(json_writer& j) const } // EUTRA-Q-OffsetRange ::= ENUMERATED -std::string eutra_q_offset_range_opts::to_string() const +const char* eutra_q_offset_range_opts::to_string() const { static const char* options[] = {"dB-24", "dB-22", "dB-20", "dB-18", "dB-16", "dB-14", "dB-12", "dB-10", "dB-8", "dB-6", "dB-5", "dB-4", "dB-3", "dB-2", "dB-1", "dB0", @@ -307,7 +316,7 @@ int8_t eutra_q_offset_range_opts::to_number() const } // Q-OffsetRange ::= ENUMERATED -std::string q_offset_range_opts::to_string() const +const char* q_offset_range_opts::to_string() const { static const char* options[] = {"dB-24", "dB-22", "dB-20", "dB-18", "dB-16", "dB-14", "dB-12", "dB-10", "dB-8", "dB-6", "dB-5", "dB-4", "dB-3", "dB-2", "dB-1", "dB0", @@ -439,7 +448,7 @@ void eutra_pci_range_s::to_json(json_writer& j) const j.end_obj(); } -std::string eutra_pci_range_s::range_opts::to_string() const +const char* eutra_pci_range_s::range_opts::to_string() const { static const char* options[] = {"n4", "n8", @@ -603,7 +612,7 @@ void pci_range_s::to_json(json_writer& j) const j.end_obj(); } -std::string pci_range_s::range_opts::to_string() const +const char* pci_range_s::range_opts::to_string() const { static const char* options[] = {"n4", "n8", @@ -665,7 +674,7 @@ void pdsch_time_domain_res_alloc_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_time_domain_res_alloc_s::map_type_opts::to_string() const +const char* pdsch_time_domain_res_alloc_s::map_type_opts::to_string() const { static const char* options[] = {"typeA", "typeB"}; return convert_enum_idx(options, 2, value, "pdsch_time_domain_res_alloc_s::map_type_e_"); @@ -707,14 +716,14 @@ void pusch_time_domain_res_alloc_s::to_json(json_writer& j) const j.end_obj(); } -std::string pusch_time_domain_res_alloc_s::map_type_opts::to_string() const +const char* pusch_time_domain_res_alloc_s::map_type_opts::to_string() const { static const char* options[] = {"typeA", "typeB"}; return convert_enum_idx(options, 2, value, "pusch_time_domain_res_alloc_s::map_type_e_"); } // CellReselectionSubPriority ::= ENUMERATED -std::string cell_resel_sub_prio_opts::to_string() const +const char* cell_resel_sub_prio_opts::to_string() const { static const char* options[] = {"oDot2", "oDot4", "oDot6", "oDot8"}; return convert_enum_idx(options, 4, value, "cell_resel_sub_prio_e"); @@ -724,7 +733,7 @@ float cell_resel_sub_prio_opts::to_number() const static const float options[] = {0.2, 0.4, 0.6, 0.8}; return map_enum_number(options, 4, value, "cell_resel_sub_prio_e"); } -std::string cell_resel_sub_prio_opts::to_number_string() const +const char* cell_resel_sub_prio_opts::to_number_string() const { static const char* options[] = {"0.2", "0.4", "0.6", "0.8"}; return convert_enum_idx(options, 4, value, "cell_resel_sub_prio_e"); @@ -817,6 +826,15 @@ void ctrl_res_set_s::cce_reg_map_type_c_::set(types::options e) { type_ = e; } +ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_& ctrl_res_set_s::cce_reg_map_type_c_::set_interleaved() +{ + set(types::interleaved); + return c; +} +void ctrl_res_set_s::cce_reg_map_type_c_::set_non_interleaved() +{ + set(types::non_interleaved); +} void ctrl_res_set_s::cce_reg_map_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -881,7 +899,7 @@ SRSASN_CODE ctrl_res_set_s::cce_reg_map_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::reg_bundle_size_opts::to_string() const +const char* ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::reg_bundle_size_opts::to_string() const { static const char* options[] = {"n2", "n3", "n6"}; return convert_enum_idx(options, 3, value, "ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::reg_bundle_size_e_"); @@ -892,7 +910,7 @@ uint8_t ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::reg_bundle_size_opt return map_enum_number(options, 3, value, "ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::reg_bundle_size_e_"); } -std::string ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::interleaver_size_opts::to_string() const +const char* ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::interleaver_size_opts::to_string() const { static const char* options[] = {"n2", "n3", "n6"}; return convert_enum_idx( @@ -904,20 +922,20 @@ uint8_t ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::interleaver_size_op return map_enum_number(options, 3, value, "ctrl_res_set_s::cce_reg_map_type_c_::interleaved_s_::interleaver_size_e_"); } -std::string ctrl_res_set_s::cce_reg_map_type_c_::types_opts::to_string() const +const char* ctrl_res_set_s::cce_reg_map_type_c_::types_opts::to_string() const { static const char* options[] = {"interleaved", "nonInterleaved"}; return convert_enum_idx(options, 2, value, "ctrl_res_set_s::cce_reg_map_type_c_::types"); } -std::string ctrl_res_set_s::precoder_granularity_opts::to_string() const +const char* ctrl_res_set_s::precoder_granularity_opts::to_string() const { static const char* options[] = {"sameAsREG-bundle", "allContiguousRBs"}; return convert_enum_idx(options, 2, value, "ctrl_res_set_s::precoder_granularity_e_"); } // EUTRA-AllowedMeasBandwidth ::= ENUMERATED -std::string eutra_allowed_meas_bw_opts::to_string() const +const char* eutra_allowed_meas_bw_opts::to_string() const { static const char* options[] = {"mbw6", "mbw15", "mbw25", "mbw50", "mbw75", "mbw100"}; return convert_enum_idx(options, 6, value, "eutra_allowed_meas_bw_e"); @@ -971,7 +989,7 @@ void rach_cfg_generic_s::to_json(json_writer& j) const j.end_obj(); } -std::string rach_cfg_generic_s::msg1_fdm_opts::to_string() const +const char* rach_cfg_generic_s::msg1_fdm_opts::to_string() const { static const char* options[] = {"one", "two", "four", "eight"}; return convert_enum_idx(options, 4, value, "rach_cfg_generic_s::msg1_fdm_e_"); @@ -982,7 +1000,7 @@ uint8_t rach_cfg_generic_s::msg1_fdm_opts::to_number() const return map_enum_number(options, 4, value, "rach_cfg_generic_s::msg1_fdm_e_"); } -std::string rach_cfg_generic_s::preamb_trans_max_opts::to_string() const +const char* rach_cfg_generic_s::preamb_trans_max_opts::to_string() const { static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "n20", "n50", "n100", "n200"}; return convert_enum_idx(options, 11, value, "rach_cfg_generic_s::preamb_trans_max_e_"); @@ -993,7 +1011,7 @@ uint8_t rach_cfg_generic_s::preamb_trans_max_opts::to_number() const return map_enum_number(options, 11, value, "rach_cfg_generic_s::preamb_trans_max_e_"); } -std::string rach_cfg_generic_s::pwr_ramp_step_opts::to_string() const +const char* rach_cfg_generic_s::pwr_ramp_step_opts::to_string() const { static const char* options[] = {"dB0", "dB2", "dB4", "dB6"}; return convert_enum_idx(options, 4, value, "rach_cfg_generic_s::pwr_ramp_step_e_"); @@ -1004,7 +1022,7 @@ uint8_t rach_cfg_generic_s::pwr_ramp_step_opts::to_number() const return map_enum_number(options, 4, value, "rach_cfg_generic_s::pwr_ramp_step_e_"); } -std::string rach_cfg_generic_s::ra_resp_win_opts::to_string() const +const char* rach_cfg_generic_s::ra_resp_win_opts::to_string() const { static const char* options[] = {"sl1", "sl2", "sl4", "sl8", "sl10", "sl20", "sl40", "sl80"}; return convert_enum_idx(options, 8, value, "rach_cfg_generic_s::ra_resp_win_e_"); @@ -1130,6 +1148,36 @@ ssb_mtc_s::periodicity_and_offset_c_::operator=(const ssb_mtc_s::periodicity_and return *this; } +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf5() +{ + set(types::sf5); + return c.get(); +} +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf10() +{ + set(types::sf10); + return c.get(); +} +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf20() +{ + set(types::sf20); + return c.get(); +} +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf40() +{ + set(types::sf40); + return c.get(); +} +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf80() +{ + set(types::sf80); + return c.get(); +} +uint8_t& ssb_mtc_s::periodicity_and_offset_c_::set_sf160() +{ + set(types::sf160); + return c.get(); +} void ssb_mtc_s::periodicity_and_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1216,7 +1264,7 @@ SRSASN_CODE ssb_mtc_s::periodicity_and_offset_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ssb_mtc_s::periodicity_and_offset_c_::types_opts::to_string() const +const char* ssb_mtc_s::periodicity_and_offset_c_::types_opts::to_string() const { static const char* options[] = {"sf5", "sf10", "sf20", "sf40", "sf80", "sf160"}; return convert_enum_idx(options, 6, value, "ssb_mtc_s::periodicity_and_offset_c_::types"); @@ -1227,7 +1275,7 @@ uint8_t ssb_mtc_s::periodicity_and_offset_c_::types_opts::to_number() const return map_enum_number(options, 6, value, "ssb_mtc_s::periodicity_and_offset_c_::types"); } -std::string ssb_mtc_s::dur_opts::to_string() const +const char* ssb_mtc_s::dur_opts::to_string() const { static const char* options[] = {"sf1", "sf2", "sf3", "sf4", "sf5"}; return convert_enum_idx(options, 5, value, "ssb_mtc_s::dur_e_"); @@ -1318,6 +1366,21 @@ ssb_to_measure_c& ssb_to_measure_c::operator=(const ssb_to_measure_c& other) return *this; } +fixed_bitstring<4>& ssb_to_measure_c::set_short_bitmap() +{ + set(types::short_bitmap); + return c.get >(); +} +fixed_bitstring<8>& ssb_to_measure_c::set_medium_bitmap() +{ + set(types::medium_bitmap); + return c.get >(); +} +fixed_bitstring<64>& ssb_to_measure_c::set_long_bitmap() +{ + set(types::long_bitmap); + return c.get >(); +} void ssb_to_measure_c::to_json(json_writer& j) const { j.start_obj(); @@ -1377,7 +1440,7 @@ SRSASN_CODE ssb_to_measure_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ssb_to_measure_c::types_opts::to_string() const +const char* ssb_to_measure_c::types_opts::to_string() const { static const char* options[] = {"shortBitmap", "mediumBitmap", "longBitmap"}; return convert_enum_idx(options, 3, value, "ssb_to_measure_c::types"); @@ -1610,6 +1673,80 @@ search_space_s::monitoring_slot_periodicity_and_offset_c_::operator=( return *this; } +void search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl1() +{ + set(types::sl1); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl2() +{ + set(types::sl2); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl4() +{ + set(types::sl4); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl5() +{ + set(types::sl5); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl8() +{ + set(types::sl8); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl10() +{ + set(types::sl10); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl16() +{ + set(types::sl16); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl20() +{ + set(types::sl20); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl40() +{ + set(types::sl40); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl80() +{ + set(types::sl80); + return c.get(); +} +uint8_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl160() +{ + set(types::sl160); + return c.get(); +} +uint16_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl320() +{ + set(types::sl320); + return c.get(); +} +uint16_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl640() +{ + set(types::sl640); + return c.get(); +} +uint16_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl1280() +{ + set(types::sl1280); + return c.get(); +} +uint16_t& search_space_s::monitoring_slot_periodicity_and_offset_c_::set_sl2560() +{ + set(types::sl2560); + return c.get(); +} void search_space_s::monitoring_slot_periodicity_and_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -1774,7 +1911,7 @@ SRSASN_CODE search_space_s::monitoring_slot_periodicity_and_offset_c_::unpack(cb return SRSASN_SUCCESS; } -std::string search_space_s::monitoring_slot_periodicity_and_offset_c_::types_opts::to_string() const +const char* search_space_s::monitoring_slot_periodicity_and_offset_c_::types_opts::to_string() const { static const char* options[] = {"sl1", "sl2", @@ -1799,7 +1936,7 @@ uint16_t search_space_s::monitoring_slot_periodicity_and_offset_c_::types_opts:: return map_enum_number(options, 15, value, "search_space_s::monitoring_slot_periodicity_and_offset_c_::types"); } -std::string search_space_s::nrof_candidates_s_::aggregation_level1_opts::to_string() const +const char* search_space_s::nrof_candidates_s_::aggregation_level1_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n8"}; return convert_enum_idx(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level1_e_"); @@ -1810,7 +1947,7 @@ uint8_t search_space_s::nrof_candidates_s_::aggregation_level1_opts::to_number() return map_enum_number(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level1_e_"); } -std::string search_space_s::nrof_candidates_s_::aggregation_level2_opts::to_string() const +const char* search_space_s::nrof_candidates_s_::aggregation_level2_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n8"}; return convert_enum_idx(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level2_e_"); @@ -1821,7 +1958,7 @@ uint8_t search_space_s::nrof_candidates_s_::aggregation_level2_opts::to_number() return map_enum_number(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level2_e_"); } -std::string search_space_s::nrof_candidates_s_::aggregation_level4_opts::to_string() const +const char* search_space_s::nrof_candidates_s_::aggregation_level4_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n8"}; return convert_enum_idx(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level4_e_"); @@ -1832,7 +1969,7 @@ uint8_t search_space_s::nrof_candidates_s_::aggregation_level4_opts::to_number() return map_enum_number(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level4_e_"); } -std::string search_space_s::nrof_candidates_s_::aggregation_level8_opts::to_string() const +const char* search_space_s::nrof_candidates_s_::aggregation_level8_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n8"}; return convert_enum_idx(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level8_e_"); @@ -1843,7 +1980,7 @@ uint8_t search_space_s::nrof_candidates_s_::aggregation_level8_opts::to_number() return map_enum_number(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level8_e_"); } -std::string search_space_s::nrof_candidates_s_::aggregation_level16_opts::to_string() const +const char* search_space_s::nrof_candidates_s_::aggregation_level16_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n8"}; return convert_enum_idx(options, 8, value, "search_space_s::nrof_candidates_s_::aggregation_level16_e_"); @@ -1922,6 +2059,16 @@ search_space_s::search_space_type_c_::operator=(const search_space_s::search_spa return *this; } +search_space_s::search_space_type_c_::common_s_& search_space_s::search_space_type_c_::set_common() +{ + set(types::common); + return c.get(); +} +search_space_s::search_space_type_c_::ue_specific_s_& search_space_s::search_space_type_c_::set_ue_specific() +{ + set(types::ue_specific); + return c.get(); +} void search_space_s::search_space_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -2125,7 +2272,7 @@ SRSASN_CODE search_space_s::search_space_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: aggregation_level1_opts::to_string() const { static const char* options[] = {"n1", "n2"}; @@ -2146,7 +2293,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_:: "s_::aggregation_level1_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: aggregation_level2_opts::to_string() const { static const char* options[] = {"n1", "n2"}; @@ -2167,7 +2314,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_:: "s_::aggregation_level2_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: aggregation_level4_opts::to_string() const { static const char* options[] = {"n1", "n2"}; @@ -2188,7 +2335,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_:: "s_::aggregation_level4_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: aggregation_level8_opts::to_string() const { static const char* options[] = {"n1", "n2"}; @@ -2209,7 +2356,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_:: "s_::aggregation_level8_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_::nrof_candidates_sfi_s_:: aggregation_level16_opts::to_string() const { static const char* options[] = {"n1", "n2"}; @@ -2230,7 +2377,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus0_s_:: "s_::aggregation_level16_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy1_opts::to_string() const +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy1_opts::to_string() const { static const char* options[] = {"sl1", "sl2", "sl4", "sl5", "sl8", "sl10", "sl16", "sl20"}; return convert_enum_idx( @@ -2243,7 +2390,7 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_:: options, 8, value, "search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy1_e_"); } -std::string search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy2_opts::to_string() const +const char* search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy2_opts::to_string() const { static const char* options[] = {"n1", "n2"}; return convert_enum_idx( @@ -2256,13 +2403,13 @@ uint8_t search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_:: options, 2, value, "search_space_s::search_space_type_c_::common_s_::dci_format2_minus3_s_::dummy2_e_"); } -std::string search_space_s::search_space_type_c_::ue_specific_s_::dci_formats_opts::to_string() const +const char* search_space_s::search_space_type_c_::ue_specific_s_::dci_formats_opts::to_string() const { static const char* options[] = {"formats0-0-And-1-0", "formats0-1-And-1-1"}; return convert_enum_idx(options, 2, value, "search_space_s::search_space_type_c_::ue_specific_s_::dci_formats_e_"); } -std::string search_space_s::search_space_type_c_::types_opts::to_string() const +const char* search_space_s::search_space_type_c_::types_opts::to_string() const { static const char* options[] = {"common", "ue-Specific"}; return convert_enum_idx(options, 2, value, "search_space_s::search_space_type_c_::types"); @@ -2291,7 +2438,7 @@ void speed_state_scale_factors_s::to_json(json_writer& j) const j.end_obj(); } -std::string speed_state_scale_factors_s::sf_medium_opts::to_string() const +const char* speed_state_scale_factors_s::sf_medium_opts::to_string() const { static const char* options[] = {"oDot25", "oDot5", "oDot75", "lDot0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); @@ -2301,13 +2448,13 @@ float speed_state_scale_factors_s::sf_medium_opts::to_number() const static const float options[] = {0.25, 0.5, 0.75, 1.0}; return map_enum_number(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); } -std::string speed_state_scale_factors_s::sf_medium_opts::to_number_string() const +const char* speed_state_scale_factors_s::sf_medium_opts::to_number_string() const { static const char* options[] = {"0.25", "0.5", "0.75", "1.0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_medium_e_"); } -std::string speed_state_scale_factors_s::sf_high_opts::to_string() const +const char* speed_state_scale_factors_s::sf_high_opts::to_string() const { static const char* options[] = {"oDot25", "oDot5", "oDot75", "lDot0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); @@ -2317,14 +2464,14 @@ float speed_state_scale_factors_s::sf_high_opts::to_number() const static const float options[] = {0.25, 0.5, 0.75, 1.0}; return map_enum_number(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); } -std::string speed_state_scale_factors_s::sf_high_opts::to_number_string() const +const char* speed_state_scale_factors_s::sf_high_opts::to_number_string() const { static const char* options[] = {"0.25", "0.5", "0.75", "1.0"}; return convert_enum_idx(options, 4, value, "speed_state_scale_factors_s::sf_high_e_"); } // SubcarrierSpacing ::= ENUMERATED -std::string subcarrier_spacing_opts::to_string() const +const char* subcarrier_spacing_opts::to_string() const { static const char* options[] = {"kHz15", "kHz30", "kHz60", "kHz120", "kHz240", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "subcarrier_spacing_e"); @@ -3151,6 +3298,60 @@ pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::operator=( return *this; } +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::scs15_kh_zone_t_l_& +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs15_kh_zone_t() +{ + set(types::scs15_kh_zone_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::scs30_kh_zone_t_scs15_kh_zhalf_t_l_& +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs30_kh_zone_t_scs15_kh_zhalf_t() +{ + set(types::scs30_kh_zone_t_scs15_kh_zhalf_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() +{ + set(types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& + pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() +{ + set(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& + pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& + pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t); + return c.get(); +} +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::scs120_kh_zone_sixteenth_t_l_& +pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs120_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zone_sixteenth_t); + return c.get(); +} void pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3336,7 +3537,7 @@ SRSASN_CODE pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::unpack return SRSASN_SUCCESS; } -std::string pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::types_opts::to_string() const +const char* pdcch_cfg_common_s::first_pdcch_monitoring_occasion_of_po_c_::types_opts::to_string() const { static const char* options[] = {"sCS15KHZoneT", "sCS30KHZoneT-SCS15KHZhalfT", @@ -3483,7 +3684,7 @@ void pucch_cfg_common_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_cfg_common_s::pucch_group_hop_opts::to_string() const +const char* pucch_cfg_common_s::pucch_group_hop_opts::to_string() const { static const char* options[] = {"neither", "enable", "disable"}; return convert_enum_idx(options, 3, value, "pucch_cfg_common_s::pucch_group_hop_e_"); @@ -3553,7 +3754,7 @@ void pusch_cfg_common_s::to_json(json_writer& j) const } // PagingCycle ::= ENUMERATED -std::string paging_cycle_opts::to_string() const +const char* paging_cycle_opts::to_string() const { static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; return convert_enum_idx(options, 4, value, "paging_cycle_e"); @@ -3762,6 +3963,51 @@ rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::operator=( return *this; } +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_eighth_e_& +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_one_eighth() +{ + set(types::one_eighth); + return c.get(); +} +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_fourth_e_& +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_one_fourth() +{ + set(types::one_fourth); + return c.get(); +} +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_half_e_& +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_one_half() +{ + set(types::one_half); + return c.get(); +} +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_e_& +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_one() +{ + set(types::one); + return c.get(); +} +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::two_e_& +rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_two() +{ + set(types::two); + return c.get(); +} +uint8_t& rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_four() +{ + set(types::four); + return c.get(); +} +uint8_t& rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_eight() +{ + set(types::eight); + return c.get(); +} +uint8_t& rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::set_sixteen() +{ + set(types::sixteen); + return c.get(); +} void rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::to_json(json_writer& j) const { j.start_obj(); @@ -3866,7 +4112,7 @@ SRSASN_CODE rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_:: return SRSASN_SUCCESS; } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_eighth_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_eighth_opts::to_string() const { static const char* options[] = { "n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32", "n36", "n40", "n44", "n48", "n52", "n56", "n60", "n64"}; @@ -3880,7 +4126,7 @@ uint8_t rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_ options, 16, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_eighth_e_"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_fourth_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_fourth_opts::to_string() const { static const char* options[] = { "n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32", "n36", "n40", "n44", "n48", "n52", "n56", "n60", "n64"}; @@ -3894,7 +4140,7 @@ uint8_t rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_ options, 16, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_fourth_e_"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_half_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_half_opts::to_string() const { static const char* options[] = { "n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32", "n36", "n40", "n44", "n48", "n52", "n56", "n60", "n64"}; @@ -3908,7 +4154,7 @@ uint8_t rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_ options, 16, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_half_e_"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_opts::to_string() const { static const char* options[] = { "n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32", "n36", "n40", "n44", "n48", "n52", "n56", "n60", "n64"}; @@ -3922,7 +4168,7 @@ uint8_t rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_ options, 16, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::one_e_"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::two_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::two_opts::to_string() const { static const char* options[] = {"n4", "n8", "n12", "n16", "n20", "n24", "n28", "n32"}; return convert_enum_idx( @@ -3935,7 +4181,7 @@ uint8_t rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::two_ options, 8, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::two_e_"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types_opts::to_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types_opts::to_string() const { static const char* options[] = {"oneEighth", "oneFourth", "oneHalf", "one", "two", "four", "eight", "sixteen"}; return convert_enum_idx( @@ -3947,14 +4193,14 @@ float rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types_ return map_enum_number( options, 8, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types"); } -std::string rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types_opts::to_number_string() const +const char* rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types_opts::to_number_string() const { static const char* options[] = {"1/8", "1/4", "1/2", "1", "2", "4", "8", "6"}; return convert_enum_idx( options, 8, value, "rach_cfg_common_s::ssb_per_rach_occasion_and_cb_preambs_per_ssb_c_::types"); } -std::string rach_cfg_common_s::group_bcfgured_s_::ra_msg3_size_group_a_opts::to_string() const +const char* rach_cfg_common_s::group_bcfgured_s_::ra_msg3_size_group_a_opts::to_string() const { static const char* options[] = {"b56", "b144", @@ -3980,7 +4226,7 @@ uint16_t rach_cfg_common_s::group_bcfgured_s_::ra_msg3_size_group_a_opts::to_num return map_enum_number(options, 10, value, "rach_cfg_common_s::group_bcfgured_s_::ra_msg3_size_group_a_e_"); } -std::string rach_cfg_common_s::group_bcfgured_s_::msg_pwr_offset_group_b_opts::to_string() const +const char* rach_cfg_common_s::group_bcfgured_s_::msg_pwr_offset_group_b_opts::to_string() const { static const char* options[] = {"minusinfinity", "dB0", "dB5", "dB8", "dB10", "dB12", "dB15", "dB18"}; return convert_enum_idx(options, 8, value, "rach_cfg_common_s::group_bcfgured_s_::msg_pwr_offset_group_b_e_"); @@ -3991,7 +4237,7 @@ int8_t rach_cfg_common_s::group_bcfgured_s_::msg_pwr_offset_group_b_opts::to_num return map_enum_number(options, 8, value, "rach_cfg_common_s::group_bcfgured_s_::msg_pwr_offset_group_b_e_"); } -std::string rach_cfg_common_s::ra_contention_resolution_timer_opts::to_string() const +const char* rach_cfg_common_s::ra_contention_resolution_timer_opts::to_string() const { static const char* options[] = {"sf8", "sf16", "sf24", "sf32", "sf40", "sf48", "sf56", "sf64"}; return convert_enum_idx(options, 8, value, "rach_cfg_common_s::ra_contention_resolution_timer_e_"); @@ -4046,6 +4292,16 @@ rach_cfg_common_s::prach_root_seq_idx_c_::operator=(const rach_cfg_common_s::pra return *this; } +uint16_t& rach_cfg_common_s::prach_root_seq_idx_c_::set_l839() +{ + set(types::l839); + return c.get(); +} +uint8_t& rach_cfg_common_s::prach_root_seq_idx_c_::set_l139() +{ + set(types::l139); + return c.get(); +} void rach_cfg_common_s::prach_root_seq_idx_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4096,7 +4352,7 @@ SRSASN_CODE rach_cfg_common_s::prach_root_seq_idx_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::to_string() const +const char* rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::to_string() const { static const char* options[] = {"l839", "l139"}; return convert_enum_idx(options, 2, value, "rach_cfg_common_s::prach_root_seq_idx_c_::types"); @@ -4107,7 +4363,7 @@ uint16_t rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "rach_cfg_common_s::prach_root_seq_idx_c_::types"); } -std::string rach_cfg_common_s::restricted_set_cfg_opts::to_string() const +const char* rach_cfg_common_s::restricted_set_cfg_opts::to_string() const { static const char* options[] = {"unrestrictedSet", "restrictedSetTypeA", "restrictedSetTypeB"}; return convert_enum_idx(options, 3, value, "rach_cfg_common_s::restricted_set_cfg_e_"); @@ -4211,7 +4467,7 @@ void sib_type_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib_type_info_s::type_opts::to_string() const +const char* sib_type_info_s::type_opts::to_string() const { static const char* options[] = {"sibType2", "sibType3", @@ -4337,7 +4593,7 @@ void bcch_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string bcch_cfg_s::mod_period_coeff_opts::to_string() const +const char* bcch_cfg_s::mod_period_coeff_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8", "n16"}; return convert_enum_idx(options, 4, value, "bcch_cfg_s::mod_period_coeff_e_"); @@ -4591,7 +4847,7 @@ void mob_state_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string mob_state_params_s::t_eval_opts::to_string() const +const char* mob_state_params_s::t_eval_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s180", "s240", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "mob_state_params_s::t_eval_e_"); @@ -4602,7 +4858,7 @@ uint8_t mob_state_params_s::t_eval_opts::to_number() const return map_enum_number(options, 5, value, "mob_state_params_s::t_eval_e_"); } -std::string mob_state_params_s::t_hyst_normal_opts::to_string() const +const char* mob_state_params_s::t_hyst_normal_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s180", "s240", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "mob_state_params_s::t_hyst_normal_e_"); @@ -4717,6 +4973,30 @@ pcch_cfg_s::nand_paging_frame_offset_c_::operator=(const pcch_cfg_s::nand_paging return *this; } +void pcch_cfg_s::nand_paging_frame_offset_c_::set_one_t() +{ + set(types::one_t); +} +uint8_t& pcch_cfg_s::nand_paging_frame_offset_c_::set_half_t() +{ + set(types::half_t); + return c.get(); +} +uint8_t& pcch_cfg_s::nand_paging_frame_offset_c_::set_quarter_t() +{ + set(types::quarter_t); + return c.get(); +} +uint8_t& pcch_cfg_s::nand_paging_frame_offset_c_::set_one_eighth_t() +{ + set(types::one_eighth_t); + return c.get(); +} +uint8_t& pcch_cfg_s::nand_paging_frame_offset_c_::set_one_sixteenth_t() +{ + set(types::one_sixteenth_t); + return c.get(); +} void pcch_cfg_s::nand_paging_frame_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -4791,7 +5071,7 @@ SRSASN_CODE pcch_cfg_s::nand_paging_frame_offset_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pcch_cfg_s::nand_paging_frame_offset_c_::types_opts::to_string() const +const char* pcch_cfg_s::nand_paging_frame_offset_c_::types_opts::to_string() const { static const char* options[] = {"oneT", "halfT", "quarterT", "oneEighthT", "oneSixteenthT"}; return convert_enum_idx(options, 5, value, "pcch_cfg_s::nand_paging_frame_offset_c_::types"); @@ -4801,13 +5081,13 @@ float pcch_cfg_s::nand_paging_frame_offset_c_::types_opts::to_number() const static const float options[] = {1.0, 0.5, 0.25, 0.125, 0.0625}; return map_enum_number(options, 5, value, "pcch_cfg_s::nand_paging_frame_offset_c_::types"); } -std::string pcch_cfg_s::nand_paging_frame_offset_c_::types_opts::to_number_string() const +const char* pcch_cfg_s::nand_paging_frame_offset_c_::types_opts::to_number_string() const { static const char* options[] = {"1", "0.5", "0.25", "1/8", "1/16"}; return convert_enum_idx(options, 5, value, "pcch_cfg_s::nand_paging_frame_offset_c_::types"); } -std::string pcch_cfg_s::ns_opts::to_string() const +const char* pcch_cfg_s::ns_opts::to_string() const { static const char* options[] = {"four", "two", "one"}; return convert_enum_idx(options, 3, value, "pcch_cfg_s::ns_e_"); @@ -4959,6 +5239,60 @@ pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_& pcch_cfg_s::first_pdcch_mo return *this; } +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::scs15_kh_zone_t_l_& +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs15_kh_zone_t() +{ + set(types::scs15_kh_zone_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::scs30_kh_zone_t_scs15_kh_zhalf_t_l_& +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs30_kh_zone_t_scs15_kh_zhalf_t() +{ + set(types::scs30_kh_zone_t_scs15_kh_zhalf_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t_l_& +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t() +{ + set(types::scs60_kh_zone_t_scs30_kh_zhalf_t_scs15_kh_zquarter_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t_l_& + pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t() +{ + set(types::scs120_kh_zone_t_scs60_kh_zhalf_t_scs30_kh_zquarter_t_scs15_kh_zone_eighth_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t_l_& + pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zhalf_t_scs60_kh_zquarter_t_scs30_kh_zone_eighth_t_scs15_kh_zone_sixteenth_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t_l_& + pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_:: + set_scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zquarter_t_scs60_kh_zone_eighth_t_scs30_kh_zone_sixteenth_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t_l_& +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zone_eighth_t_scs60_kh_zone_sixteenth_t); + return c.get(); +} +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::scs120_kh_zone_sixteenth_t_l_& +pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::set_scs120_kh_zone_sixteenth_t() +{ + set(types::scs120_kh_zone_sixteenth_t); + return c.get(); +} void pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::to_json(json_writer& j) const { j.start_obj(); @@ -5144,7 +5478,7 @@ SRSASN_CODE pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::unpack(cbit_re return SRSASN_SUCCESS; } -std::string pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::types_opts::to_string() const +const char* pcch_cfg_s::first_pdcch_monitoring_occasion_of_po_c_::types_opts::to_string() const { static const char* options[] = {"sCS15KHZoneT", "sCS30KHZoneT-SCS15KHZhalfT", @@ -5213,7 +5547,7 @@ void plmn_id_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string plmn_id_info_s::cell_reserved_for_oper_opts::to_string() const +const char* plmn_id_info_s::cell_reserved_for_oper_opts::to_string() const { static const char* options[] = {"reserved", "notReserved"}; return convert_enum_idx(options, 2, value, "plmn_id_info_s::cell_reserved_for_oper_e_"); @@ -5329,13 +5663,13 @@ void tdd_ul_dl_pattern_s::to_json(json_writer& j) const j.end_obj(); } -std::string tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_opts::to_string() const +const char* tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_opts::to_string() const { static const char* options[] = {"ms0p5", "ms0p625", "ms1", "ms1p25", "ms2", "ms2p5", "ms5", "ms10"}; return convert_enum_idx(options, 8, value, "tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_e_"); } -std::string tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_v1530_opts::to_string() const +const char* tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_v1530_opts::to_string() const { static const char* options[] = {"ms3", "ms4"}; return convert_enum_idx(options, 2, value, "tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_v1530_e_"); @@ -5347,7 +5681,7 @@ uint8_t tdd_ul_dl_pattern_s::dl_ul_tx_periodicity_v1530_opts::to_number() const } // TimeAlignmentTimer ::= ENUMERATED -std::string time_align_timer_opts::to_string() const +const char* time_align_timer_opts::to_string() const { static const char* options[] = {"ms500", "ms750", "ms1280", "ms1920", "ms2560", "ms5120", "ms10240", "infinity"}; return convert_enum_idx(options, 8, value, "time_align_timer_e"); @@ -5448,7 +5782,7 @@ void si_request_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_opts::to_string() const +const char* si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_opts::to_string() const { static const char* options[] = {"oneEighth", "oneFourth", "oneHalf", "one", "two", "four", "eight", "sixteen"}; return convert_enum_idx(options, 8, value, "si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_e_"); @@ -5458,13 +5792,13 @@ float si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_opts::to_num static const float options[] = {0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 6.0}; return map_enum_number(options, 8, value, "si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_e_"); } -std::string si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_opts::to_number_string() const +const char* si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_opts::to_number_string() const { static const char* options[] = {"1/8", "1/4", "1/2", "1", "2", "4", "8", "6"}; return convert_enum_idx(options, 8, value, "si_request_cfg_s::rach_occasions_si_s_::ssb_per_rach_occasion_e_"); } -std::string si_request_cfg_s::si_request_period_opts::to_string() const +const char* si_request_cfg_s::si_request_period_opts::to_string() const { static const char* options[] = {"one", "two", "four", "six", "eight", "ten", "twelve", "sixteen"}; return convert_enum_idx(options, 8, value, "si_request_cfg_s::si_request_period_e_"); @@ -5614,7 +5948,7 @@ void sib2_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib2_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const +const char* sib2_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const { static const char* options[] = {"dB0", "dB1", @@ -5640,7 +5974,7 @@ uint8_t sib2_s::cell_resel_info_common_s_::q_hyst_opts::to_number() const return map_enum_number(options, 16, value, "sib2_s::cell_resel_info_common_s_::q_hyst_e_"); } -std::string +const char* sib2_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; @@ -5654,7 +5988,7 @@ int8_t sib2_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s options, 4, value, "sib2_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); } -std::string sib2_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_string() const +const char* sib2_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_string() const { static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; return convert_enum_idx( @@ -6106,7 +6440,7 @@ void sib7_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib7_s::warning_msg_segment_type_opts::to_string() const +const char* sib7_s::warning_msg_segment_type_opts::to_string() const { static const char* options[] = {"notLastSegment", "lastSegment"}; return convert_enum_idx(options, 2, value, "sib7_s::warning_msg_segment_type_e_"); @@ -6181,7 +6515,7 @@ void sib8_s::to_json(json_writer& j) const j.end_obj(); } -std::string sib8_s::warning_msg_segment_type_opts::to_string() const +const char* sib8_s::warning_msg_segment_type_opts::to_string() const { static const char* options[] = {"notLastSegment", "lastSegment"}; return convert_enum_idx(options, 2, value, "sib8_s::warning_msg_segment_type_e_"); @@ -6296,13 +6630,13 @@ void sched_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string sched_info_s::si_broadcast_status_opts::to_string() const +const char* sched_info_s::si_broadcast_status_opts::to_string() const { static const char* options[] = {"broadcasting", "notBroadcasting"}; return convert_enum_idx(options, 2, value, "sched_info_s::si_broadcast_status_e_"); } -std::string sched_info_s::si_periodicity_opts::to_string() const +const char* sched_info_s::si_periodicity_opts::to_string() const { static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; return convert_enum_idx(options, 7, value, "sched_info_s::si_periodicity_e_"); @@ -6379,7 +6713,7 @@ void uac_barr_info_set_s::to_json(json_writer& j) const j.end_obj(); } -std::string uac_barr_info_set_s::uac_barr_factor_opts::to_string() const +const char* uac_barr_info_set_s::uac_barr_factor_opts::to_string() const { static const char* options[] = { "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; @@ -6390,14 +6724,14 @@ float uac_barr_info_set_s::uac_barr_factor_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5}; return map_enum_number(options, 16, value, "uac_barr_info_set_s::uac_barr_factor_e_"); } -std::string uac_barr_info_set_s::uac_barr_factor_opts::to_number_string() const +const char* uac_barr_info_set_s::uac_barr_factor_opts::to_number_string() const { static const char* options[] = { "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; return convert_enum_idx(options, 16, value, "uac_barr_info_set_s::uac_barr_factor_e_"); } -std::string uac_barr_info_set_s::uac_barr_time_opts::to_string() const +const char* uac_barr_info_set_s::uac_barr_time_opts::to_string() const { static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; return convert_enum_idx(options, 8, value, "uac_barr_info_set_s::uac_barr_time_e_"); @@ -6511,6 +6845,17 @@ uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::operator=(const uac_barr_per_plmn return *this; } +uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::uac_implicit_ac_barr_list_l_& +uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::set_uac_implicit_ac_barr_list() +{ + set(types::uac_implicit_ac_barr_list); + return c.get(); +} +uac_barr_per_cat_list_l& uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::set_uac_explicit_ac_barr_list() +{ + set(types::uac_explicit_ac_barr_list); + return c.get(); +} void uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -6575,7 +6920,7 @@ SRSASN_CODE uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::unpack(cbit_ref& bref return SRSASN_SUCCESS; } -std::string uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::types_opts::to_string() const +const char* uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::types_opts::to_string() const { static const char* options[] = {"uac-ImplicitACBarringList", "uac-ExplicitACBarringList"}; return convert_enum_idx(options, 2, value, "uac_barr_per_plmn_s::uac_ac_barr_list_type_c_::types"); @@ -6678,7 +7023,7 @@ void conn_est_fail_ctrl_s::to_json(json_writer& j) const j.end_obj(); } -std::string conn_est_fail_ctrl_s::conn_est_fail_count_opts::to_string() const +const char* conn_est_fail_ctrl_s::conn_est_fail_count_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4"}; return convert_enum_idx(options, 4, value, "conn_est_fail_ctrl_s::conn_est_fail_count_e_"); @@ -6689,7 +7034,7 @@ uint8_t conn_est_fail_ctrl_s::conn_est_fail_count_opts::to_number() const return map_enum_number(options, 4, value, "conn_est_fail_ctrl_s::conn_est_fail_count_e_"); } -std::string conn_est_fail_ctrl_s::conn_est_fail_offset_validity_opts::to_string() const +const char* conn_est_fail_ctrl_s::conn_est_fail_offset_validity_opts::to_string() const { static const char* options[] = {"s30", "s60", "s120", "s240", "s300", "s420", "s600", "s900"}; return convert_enum_idx(options, 8, value, "conn_est_fail_ctrl_s::conn_est_fail_offset_validity_e_"); @@ -6766,7 +7111,7 @@ void si_sched_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string si_sched_info_s::si_win_len_opts::to_string() const +const char* si_sched_info_s::si_win_len_opts::to_string() const { static const char* options[] = {"s5", "s10", "s20", "s40", "s80", "s160", "s320", "s640", "s1280"}; return convert_enum_idx(options, 9, value, "si_sched_info_s::si_win_len_e_"); @@ -6872,7 +7217,7 @@ void serving_cell_cfg_common_sib_s::to_json(json_writer& j) const j.end_obj(); } -std::string serving_cell_cfg_common_sib_s::n_timing_advance_offset_opts::to_string() const +const char* serving_cell_cfg_common_sib_s::n_timing_advance_offset_opts::to_string() const { static const char* options[] = {"n0", "n25600", "n39936"}; return convert_enum_idx(options, 3, value, "serving_cell_cfg_common_sib_s::n_timing_advance_offset_e_"); @@ -6883,7 +7228,7 @@ uint16_t serving_cell_cfg_common_sib_s::n_timing_advance_offset_opts::to_number( return map_enum_number(options, 3, value, "serving_cell_cfg_common_sib_s::n_timing_advance_offset_e_"); } -std::string serving_cell_cfg_common_sib_s::ssb_periodicity_serving_cell_opts::to_string() const +const char* serving_cell_cfg_common_sib_s::ssb_periodicity_serving_cell_opts::to_string() const { static const char* options[] = {"ms5", "ms10", "ms20", "ms40", "ms80", "ms160"}; return convert_enum_idx(options, 6, value, "serving_cell_cfg_common_sib_s::ssb_periodicity_serving_cell_e_"); @@ -7079,6 +7424,46 @@ sys_info_ies_s::sib_type_and_info_item_c_::operator=(const sys_info_ies_s::sib_t return *this; } +sib2_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib2() +{ + set(types::sib2); + return c.get(); +} +sib3_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib3() +{ + set(types::sib3); + return c.get(); +} +sib4_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib4() +{ + set(types::sib4); + return c.get(); +} +sib5_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib5() +{ + set(types::sib5); + return c.get(); +} +sib6_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib6() +{ + set(types::sib6); + return c.get(); +} +sib7_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib7() +{ + set(types::sib7); + return c.get(); +} +sib8_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib8() +{ + set(types::sib8); + return c.get(); +} +sib9_s& sys_info_ies_s::sib_type_and_info_item_c_::set_sib9() +{ + set(types::sib9); + return c.get(); +} void sys_info_ies_s::sib_type_and_info_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7191,7 +7576,7 @@ SRSASN_CODE sys_info_ies_s::sib_type_and_info_item_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sys_info_ies_s::sib_type_and_info_item_c_::types_opts::to_string() const +const char* sys_info_ies_s::sib_type_and_info_item_c_::types_opts::to_string() const { static const char* options[] = {"sib2", "sib3", "sib4", "sib5", "sib6", "sib7", "sib8", "sib9"}; return convert_enum_idx(options, 8, value, "sys_info_ies_s::sib_type_and_info_item_c_::types"); @@ -7203,7 +7588,7 @@ uint8_t sys_info_ies_s::sib_type_and_info_item_c_::types_opts::to_number() const } // UAC-AccessCategory1-SelectionAssistanceInfo ::= ENUMERATED -std::string uac_access_category1_sel_assist_info_opts::to_string() const +const char* uac_access_category1_sel_assist_info_opts::to_string() const { static const char* options[] = {"a", "b", "c"}; return convert_enum_idx(options, 3, value, "uac_access_category1_sel_assist_info_e"); @@ -7249,7 +7634,7 @@ void ue_timers_and_consts_s::to_json(json_writer& j) const j.end_obj(); } -std::string ue_timers_and_consts_s::t300_opts::to_string() const +const char* ue_timers_and_consts_s::t300_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t300_e_"); @@ -7260,7 +7645,7 @@ uint16_t ue_timers_and_consts_s::t300_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t300_e_"); } -std::string ue_timers_and_consts_s::t301_opts::to_string() const +const char* ue_timers_and_consts_s::t301_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t301_e_"); @@ -7271,7 +7656,7 @@ uint16_t ue_timers_and_consts_s::t301_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::t301_e_"); } -std::string ue_timers_and_consts_s::t310_opts::to_string() const +const char* ue_timers_and_consts_s::t310_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms500", "ms1000", "ms2000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_s::t310_e_"); @@ -7282,7 +7667,7 @@ uint16_t ue_timers_and_consts_s::t310_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_s::t310_e_"); } -std::string ue_timers_and_consts_s::n310_opts::to_string() const +const char* ue_timers_and_consts_s::n310_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::n310_e_"); @@ -7293,7 +7678,7 @@ uint8_t ue_timers_and_consts_s::n310_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::n310_e_"); } -std::string ue_timers_and_consts_s::t311_opts::to_string() const +const char* ue_timers_and_consts_s::t311_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "ue_timers_and_consts_s::t311_e_"); @@ -7304,7 +7689,7 @@ uint16_t ue_timers_and_consts_s::t311_opts::to_number() const return map_enum_number(options, 7, value, "ue_timers_and_consts_s::t311_e_"); } -std::string ue_timers_and_consts_s::n311_opts::to_string() const +const char* ue_timers_and_consts_s::n311_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::n311_e_"); @@ -7315,7 +7700,7 @@ uint8_t ue_timers_and_consts_s::n311_opts::to_number() const return map_enum_number(options, 8, value, "ue_timers_and_consts_s::n311_e_"); } -std::string ue_timers_and_consts_s::t319_opts::to_string() const +const char* ue_timers_and_consts_s::t319_opts::to_string() const { static const char* options[] = {"ms100", "ms200", "ms300", "ms400", "ms600", "ms1000", "ms1500", "ms2000"}; return convert_enum_idx(options, 8, value, "ue_timers_and_consts_s::t319_e_"); @@ -7614,6 +7999,18 @@ sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::operator=( return *this; } +uac_access_category1_sel_assist_info_e& +sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::set_plmn_common() +{ + set(types::plmn_common); + return c.get(); +} +sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::individual_plmn_list_l_& +sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::set_individual_plmn_list() +{ + set(types::individual_plmn_list); + return c.get(); +} void sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7668,7 +8065,7 @@ SRSASN_CODE sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::u return SRSASN_SUCCESS; } -std::string sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::types_opts::to_string() const +const char* sib1_s::uac_barr_info_s_::uac_access_category1_sel_assist_info_c_::types_opts::to_string() const { static const char* options[] = {"plmnCommon", "individualPLMNList"}; return convert_enum_idx( @@ -7700,6 +8097,15 @@ void sys_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +sys_info_ies_s& sys_info_s::crit_exts_c_::set_sys_info() +{ + set(types::sys_info); + return c; +} +void sys_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void sys_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7748,7 +8154,7 @@ SRSASN_CODE sys_info_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string sys_info_s::crit_exts_c_::types_opts::to_string() const +const char* sys_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "sys_info_s::crit_exts_c_::types"); @@ -7759,6 +8165,15 @@ void bcch_dl_sch_msg_type_c::set(types::options e) { type_ = e; } +bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void bcch_dl_sch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -7874,6 +8289,16 @@ bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::c1_c_::operator=(const bc return *this; } +sys_info_s& bcch_dl_sch_msg_type_c::c1_c_::set_sys_info() +{ + set(types::sys_info); + return c.get(); +} +sib1_s& bcch_dl_sch_msg_type_c::c1_c_::set_sib_type1() +{ + set(types::sib_type1); + return c.get(); +} void bcch_dl_sch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -7926,7 +8351,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"systemInformation", "systemInformationBlockType1"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_c::c1_c_::types"); @@ -7940,7 +8365,7 @@ uint8_t bcch_dl_sch_msg_type_c::c1_c_::types_opts::to_number() const return 0; } -std::string bcch_dl_sch_msg_type_c::types_opts::to_string() const +const char* bcch_dl_sch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "bcch_dl_sch_msg_type_c::types"); @@ -7981,7 +8406,7 @@ void bcch_dl_sch_msg_s::to_json(json_writer& j) const } // UL-DataSplitThreshold ::= ENUMERATED -std::string ul_data_split_thres_opts::to_string() const +const char* ul_data_split_thres_opts::to_string() const { static const char* options[] = {"b0", "b100", "b200", "b400", "b800", "b1600", "b3200", "b6400", "b12800", "b25600", "b51200", "b102400", "b204800", "b409600", @@ -7999,7 +8424,7 @@ int32_t ul_data_split_thres_opts::to_number() const } // CipheringAlgorithm ::= ENUMERATED -std::string ciphering_algorithm_opts::to_string() const +const char* ciphering_algorithm_opts::to_string() const { static const char* options[] = {"nea0", "nea1", "nea2", "nea3", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ciphering_algorithm_e"); @@ -8011,7 +8436,7 @@ uint8_t ciphering_algorithm_opts::to_number() const } // IntegrityProtAlgorithm ::= ENUMERATED -std::string integrity_prot_algorithm_opts::to_string() const +const char* integrity_prot_algorithm_opts::to_string() const { static const char* options[] = {"nia0", "nia1", "nia2", "nia3", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "integrity_prot_algorithm_e"); @@ -8201,7 +8626,7 @@ void pdcp_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_cfg_s::drb_s_::discard_timer_opts::to_string() const +const char* pdcp_cfg_s::drb_s_::discard_timer_opts::to_string() const { static const char* options[] = {"ms10", "ms20", @@ -8227,7 +8652,7 @@ int16_t pdcp_cfg_s::drb_s_::discard_timer_opts::to_number() const return map_enum_number(options, 16, value, "pdcp_cfg_s::drb_s_::discard_timer_e_"); } -std::string pdcp_cfg_s::drb_s_::pdcp_sn_size_ul_opts::to_string() const +const char* pdcp_cfg_s::drb_s_::pdcp_sn_size_ul_opts::to_string() const { static const char* options[] = {"len12bits", "len18bits"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::drb_s_::pdcp_sn_size_ul_e_"); @@ -8238,7 +8663,7 @@ uint8_t pdcp_cfg_s::drb_s_::pdcp_sn_size_ul_opts::to_number() const return map_enum_number(options, 2, value, "pdcp_cfg_s::drb_s_::pdcp_sn_size_ul_e_"); } -std::string pdcp_cfg_s::drb_s_::pdcp_sn_size_dl_opts::to_string() const +const char* pdcp_cfg_s::drb_s_::pdcp_sn_size_dl_opts::to_string() const { static const char* options[] = {"len12bits", "len18bits"}; return convert_enum_idx(options, 2, value, "pdcp_cfg_s::drb_s_::pdcp_sn_size_dl_e_"); @@ -8323,6 +8748,20 @@ pdcp_cfg_s::drb_s_::hdr_compress_c_::operator=(const pdcp_cfg_s::drb_s_::hdr_com return *this; } +void pdcp_cfg_s::drb_s_::hdr_compress_c_::set_not_used() +{ + set(types::not_used); +} +pdcp_cfg_s::drb_s_::hdr_compress_c_::rohc_s_& pdcp_cfg_s::drb_s_::hdr_compress_c_::set_rohc() +{ + set(types::rohc); + return c.get(); +} +pdcp_cfg_s::drb_s_::hdr_compress_c_::ul_only_rohc_s_& pdcp_cfg_s::drb_s_::hdr_compress_c_::set_ul_only_rohc() +{ + set(types::ul_only_rohc); + return c.get(); +} void pdcp_cfg_s::drb_s_::hdr_compress_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8447,13 +8886,13 @@ SRSASN_CODE pdcp_cfg_s::drb_s_::hdr_compress_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pdcp_cfg_s::drb_s_::hdr_compress_c_::types_opts::to_string() const +const char* pdcp_cfg_s::drb_s_::hdr_compress_c_::types_opts::to_string() const { static const char* options[] = {"notUsed", "rohc", "uplinkOnlyROHC"}; return convert_enum_idx(options, 3, value, "pdcp_cfg_s::drb_s_::hdr_compress_c_::types"); } -std::string pdcp_cfg_s::t_reordering_opts::to_string() const +const char* pdcp_cfg_s::t_reordering_opts::to_string() const { static const char* options[] = { "ms0", "ms1", "ms2", "ms4", "ms5", "ms8", "ms10", "ms15", "ms20", "ms30", @@ -8536,13 +8975,13 @@ void sdap_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string sdap_cfg_s::sdap_hdr_dl_opts::to_string() const +const char* sdap_cfg_s::sdap_hdr_dl_opts::to_string() const { static const char* options[] = {"present", "absent"}; return convert_enum_idx(options, 2, value, "sdap_cfg_s::sdap_hdr_dl_e_"); } -std::string sdap_cfg_s::sdap_hdr_ul_opts::to_string() const +const char* sdap_cfg_s::sdap_hdr_ul_opts::to_string() const { static const char* options[] = {"present", "absent"}; return convert_enum_idx(options, 2, value, "sdap_cfg_s::sdap_hdr_ul_e_"); @@ -8669,6 +9108,16 @@ drb_to_add_mod_s::cn_assoc_c_& drb_to_add_mod_s::cn_assoc_c_::operator=(const dr return *this; } +uint8_t& drb_to_add_mod_s::cn_assoc_c_::set_eps_bearer_id() +{ + set(types::eps_bearer_id); + return c.get(); +} +sdap_cfg_s& drb_to_add_mod_s::cn_assoc_c_::set_sdap_cfg() +{ + set(types::sdap_cfg); + return c.get(); +} void drb_to_add_mod_s::cn_assoc_c_::to_json(json_writer& j) const { j.start_obj(); @@ -8720,7 +9169,7 @@ SRSASN_CODE drb_to_add_mod_s::cn_assoc_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drb_to_add_mod_s::cn_assoc_c_::types_opts::to_string() const +const char* drb_to_add_mod_s::cn_assoc_c_::types_opts::to_string() const { static const char* options[] = {"eps-BearerIdentity", "sdap-Config"}; return convert_enum_idx(options, 2, value, "drb_to_add_mod_s::cn_assoc_c_::types"); @@ -8851,7 +9300,7 @@ void security_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string security_cfg_s::key_to_use_opts::to_string() const +const char* security_cfg_s::key_to_use_opts::to_string() const { static const char* options[] = {"master", "secondary"}; return convert_enum_idx(options, 2, value, "security_cfg_s::key_to_use_e_"); @@ -9057,6 +9506,15 @@ void rrc_reject_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_reject_ies_s& rrc_reject_s::crit_exts_c_::set_rrc_reject() +{ + set(types::rrc_reject); + return c; +} +void rrc_reject_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_reject_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9105,7 +9563,7 @@ SRSASN_CODE rrc_reject_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_reject_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_reject_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcReject", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_reject_s::crit_exts_c_::types"); @@ -9139,6 +9597,15 @@ void rrc_setup_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_setup_ies_s& rrc_setup_s::crit_exts_c_::set_rrc_setup() +{ + set(types::rrc_setup); + return c; +} +void rrc_setup_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_setup_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9187,7 +9654,7 @@ SRSASN_CODE rrc_setup_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_setup_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_setup_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcSetup", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_setup_s::crit_exts_c_::types"); @@ -9198,6 +9665,15 @@ void dl_ccch_msg_type_c::set(types::options e) { type_ = e; } +dl_ccch_msg_type_c::c1_c_& dl_ccch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void dl_ccch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void dl_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -9325,6 +9801,24 @@ dl_ccch_msg_type_c::c1_c_& dl_ccch_msg_type_c::c1_c_::operator=(const dl_ccch_ms return *this; } +rrc_reject_s& dl_ccch_msg_type_c::c1_c_::set_rrc_reject() +{ + set(types::rrc_reject); + return c.get(); +} +rrc_setup_s& dl_ccch_msg_type_c::c1_c_::set_rrc_setup() +{ + set(types::rrc_setup); + return c.get(); +} +void dl_ccch_msg_type_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_ccch_msg_type_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9389,13 +9883,13 @@ SRSASN_CODE dl_ccch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_ccch_msg_type_c::c1_c_::types_opts::to_string() const +const char* dl_ccch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcReject", "rrcSetup", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "dl_ccch_msg_type_c::c1_c_::types"); } -std::string dl_ccch_msg_type_c::types_opts::to_string() const +const char* dl_ccch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_ccch_msg_type_c::types"); @@ -9551,6 +10045,31 @@ csi_rs_res_mob_s::slot_cfg_c_& csi_rs_res_mob_s::slot_cfg_c_::operator=(const cs return *this; } +uint8_t& csi_rs_res_mob_s::slot_cfg_c_::set_ms4() +{ + set(types::ms4); + return c.get(); +} +uint8_t& csi_rs_res_mob_s::slot_cfg_c_::set_ms5() +{ + set(types::ms5); + return c.get(); +} +uint8_t& csi_rs_res_mob_s::slot_cfg_c_::set_ms10() +{ + set(types::ms10); + return c.get(); +} +uint8_t& csi_rs_res_mob_s::slot_cfg_c_::set_ms20() +{ + set(types::ms20); + return c.get(); +} +uint16_t& csi_rs_res_mob_s::slot_cfg_c_::set_ms40() +{ + set(types::ms40); + return c.get(); +} void csi_rs_res_mob_s::slot_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9628,7 +10147,7 @@ SRSASN_CODE csi_rs_res_mob_s::slot_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_rs_res_mob_s::slot_cfg_c_::types_opts::to_string() const +const char* csi_rs_res_mob_s::slot_cfg_c_::types_opts::to_string() const { static const char* options[] = {"ms4", "ms5", "ms10", "ms20", "ms40"}; return convert_enum_idx(options, 5, value, "csi_rs_res_mob_s::slot_cfg_c_::types"); @@ -9707,6 +10226,16 @@ csi_rs_res_mob_s::freq_domain_alloc_c_::operator=(const csi_rs_res_mob_s::freq_d return *this; } +fixed_bitstring<4>& csi_rs_res_mob_s::freq_domain_alloc_c_::set_row1() +{ + set(types::row1); + return c.get >(); +} +fixed_bitstring<12>& csi_rs_res_mob_s::freq_domain_alloc_c_::set_row2() +{ + set(types::row2); + return c.get >(); +} void csi_rs_res_mob_s::freq_domain_alloc_c_::to_json(json_writer& j) const { j.start_obj(); @@ -9757,7 +10286,7 @@ SRSASN_CODE csi_rs_res_mob_s::freq_domain_alloc_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_rs_res_mob_s::freq_domain_alloc_c_::types_opts::to_string() const +const char* csi_rs_res_mob_s::freq_domain_alloc_c_::types_opts::to_string() const { static const char* options[] = {"row1", "row2"}; return convert_enum_idx(options, 2, value, "csi_rs_res_mob_s::freq_domain_alloc_c_::types"); @@ -9817,7 +10346,7 @@ void csi_rs_cell_mob_s::to_json(json_writer& j) const j.end_obj(); } -std::string csi_rs_cell_mob_s::csi_rs_meas_bw_s_::nrof_prbs_opts::to_string() const +const char* csi_rs_cell_mob_s::csi_rs_meas_bw_s_::nrof_prbs_opts::to_string() const { static const char* options[] = {"size24", "size48", "size96", "size192", "size264"}; return convert_enum_idx(options, 5, value, "csi_rs_cell_mob_s::csi_rs_meas_bw_s_::nrof_prbs_e_"); @@ -9828,7 +10357,7 @@ uint16_t csi_rs_cell_mob_s::csi_rs_meas_bw_s_::nrof_prbs_opts::to_number() const return map_enum_number(options, 5, value, "csi_rs_cell_mob_s::csi_rs_meas_bw_s_::nrof_prbs_e_"); } -std::string csi_rs_cell_mob_s::density_opts::to_string() const +const char* csi_rs_cell_mob_s::density_opts::to_string() const { static const char* options[] = {"d1", "d3"}; return convert_enum_idx(options, 2, value, "csi_rs_cell_mob_s::density_e_"); @@ -10010,7 +10539,7 @@ void cells_to_add_mod_s::to_json(json_writer& j) const } // FilterCoefficient ::= ENUMERATED -std::string filt_coef_opts::to_string() const +const char* filt_coef_opts::to_string() const { static const char* options[] = {"fc0", "fc1", @@ -10112,6 +10641,21 @@ meas_trigger_quant_c& meas_trigger_quant_c::operator=(const meas_trigger_quant_c return *this; } +uint8_t& meas_trigger_quant_c::set_rsrp() +{ + set(types::rsrp); + return c.get(); +} +uint8_t& meas_trigger_quant_c::set_rsrq() +{ + set(types::rsrq); + return c.get(); +} +uint8_t& meas_trigger_quant_c::set_sinr() +{ + set(types::sinr); + return c.get(); +} void meas_trigger_quant_c::to_json(json_writer& j) const { j.start_obj(); @@ -10171,7 +10715,7 @@ SRSASN_CODE meas_trigger_quant_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_trigger_quant_c::types_opts::to_string() const +const char* meas_trigger_quant_c::types_opts::to_string() const { static const char* options[] = {"rsrp", "rsrq", "sinr"}; return convert_enum_idx(options, 3, value, "meas_trigger_quant_c::types"); @@ -10227,6 +10771,21 @@ meas_trigger_quant_eutra_c& meas_trigger_quant_eutra_c::operator=(const meas_tri return *this; } +uint8_t& meas_trigger_quant_eutra_c::set_rsrp() +{ + set(types::rsrp); + return c.get(); +} +uint8_t& meas_trigger_quant_eutra_c::set_rsrq() +{ + set(types::rsrq); + return c.get(); +} +uint8_t& meas_trigger_quant_eutra_c::set_sinr() +{ + set(types::sinr); + return c.get(); +} void meas_trigger_quant_eutra_c::to_json(json_writer& j) const { j.start_obj(); @@ -10286,7 +10845,7 @@ SRSASN_CODE meas_trigger_quant_eutra_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_trigger_quant_eutra_c::types_opts::to_string() const +const char* meas_trigger_quant_eutra_c::types_opts::to_string() const { static const char* options[] = {"rsrp", "rsrq", "sinr"}; return convert_enum_idx(options, 3, value, "meas_trigger_quant_eutra_c::types"); @@ -10342,6 +10901,21 @@ meas_trigger_quant_offset_c& meas_trigger_quant_offset_c::operator=(const meas_t return *this; } +int8_t& meas_trigger_quant_offset_c::set_rsrp() +{ + set(types::rsrp); + return c.get(); +} +int8_t& meas_trigger_quant_offset_c::set_rsrq() +{ + set(types::rsrq); + return c.get(); +} +int8_t& meas_trigger_quant_offset_c::set_sinr() +{ + set(types::sinr); + return c.get(); +} void meas_trigger_quant_offset_c::to_json(json_writer& j) const { j.start_obj(); @@ -10401,21 +10975,21 @@ SRSASN_CODE meas_trigger_quant_offset_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_trigger_quant_offset_c::types_opts::to_string() const +const char* meas_trigger_quant_offset_c::types_opts::to_string() const { static const char* options[] = {"rsrp", "rsrq", "sinr"}; return convert_enum_idx(options, 3, value, "meas_trigger_quant_offset_c::types"); } // NR-RS-Type ::= ENUMERATED -std::string nr_rs_type_opts::to_string() const +const char* nr_rs_type_opts::to_string() const { static const char* options[] = {"ssb", "csi-rs"}; return convert_enum_idx(options, 2, value, "nr_rs_type_e"); } // ReportInterval ::= ENUMERATED -std::string report_interv_opts::to_string() const +const char* report_interv_opts::to_string() const { static const char* options[] = {"ms120", "ms240", @@ -10488,7 +11062,7 @@ void ssb_cfg_mob_s::to_json(json_writer& j) const } // TimeToTrigger ::= ENUMERATED -std::string time_to_trigger_opts::to_string() const +const char* time_to_trigger_opts::to_string() const { static const char* options[] = {"ms0", "ms40", @@ -10752,6 +11326,36 @@ event_trigger_cfg_s::event_id_c_::operator=(const event_trigger_cfg_s::event_id_ return *this; } +event_trigger_cfg_s::event_id_c_::event_a1_s_& event_trigger_cfg_s::event_id_c_::set_event_a1() +{ + set(types::event_a1); + return c.get(); +} +event_trigger_cfg_s::event_id_c_::event_a2_s_& event_trigger_cfg_s::event_id_c_::set_event_a2() +{ + set(types::event_a2); + return c.get(); +} +event_trigger_cfg_s::event_id_c_::event_a3_s_& event_trigger_cfg_s::event_id_c_::set_event_a3() +{ + set(types::event_a3); + return c.get(); +} +event_trigger_cfg_s::event_id_c_::event_a4_s_& event_trigger_cfg_s::event_id_c_::set_event_a4() +{ + set(types::event_a4); + return c.get(); +} +event_trigger_cfg_s::event_id_c_::event_a5_s_& event_trigger_cfg_s::event_id_c_::set_event_a5() +{ + set(types::event_a5); + return c.get(); +} +event_trigger_cfg_s::event_id_c_::event_a6_s_& event_trigger_cfg_s::event_id_c_::set_event_a6() +{ + set(types::event_a6); + return c.get(); +} void event_trigger_cfg_s::event_id_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10932,7 +11536,7 @@ SRSASN_CODE event_trigger_cfg_s::event_id_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string event_trigger_cfg_s::event_id_c_::types_opts::to_string() const +const char* event_trigger_cfg_s::event_id_c_::types_opts::to_string() const { static const char* options[] = {"eventA1", "eventA2", "eventA3", "eventA4", "eventA5", "eventA6"}; return convert_enum_idx(options, 6, value, "event_trigger_cfg_s::event_id_c_::types"); @@ -10943,7 +11547,7 @@ uint8_t event_trigger_cfg_s::event_id_c_::types_opts::to_number() const return map_enum_number(options, 6, value, "event_trigger_cfg_s::event_id_c_::types"); } -std::string event_trigger_cfg_s::report_amount_opts::to_string() const +const char* event_trigger_cfg_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "event_trigger_cfg_s::report_amount_e_"); @@ -11061,6 +11665,16 @@ event_trigger_cfg_inter_rat_s::event_id_c_::operator=(const event_trigger_cfg_in return *this; } +event_trigger_cfg_inter_rat_s::event_id_c_::event_b1_s_& event_trigger_cfg_inter_rat_s::event_id_c_::set_event_b1() +{ + set(types::event_b1); + return c.get(); +} +event_trigger_cfg_inter_rat_s::event_id_c_::event_b2_s_& event_trigger_cfg_inter_rat_s::event_id_c_::set_event_b2() +{ + set(types::event_b2); + return c.get(); +} void event_trigger_cfg_inter_rat_s::event_id_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11145,7 +11759,7 @@ SRSASN_CODE event_trigger_cfg_inter_rat_s::event_id_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string event_trigger_cfg_inter_rat_s::event_id_c_::types_opts::to_string() const +const char* event_trigger_cfg_inter_rat_s::event_id_c_::types_opts::to_string() const { static const char* options[] = {"eventB1", "eventB2"}; return convert_enum_idx(options, 2, value, "event_trigger_cfg_inter_rat_s::event_id_c_::types"); @@ -11156,7 +11770,7 @@ uint8_t event_trigger_cfg_inter_rat_s::event_id_c_::types_opts::to_number() cons return map_enum_number(options, 2, value, "event_trigger_cfg_inter_rat_s::event_id_c_::types"); } -std::string event_trigger_cfg_inter_rat_s::report_amount_opts::to_string() const +const char* event_trigger_cfg_inter_rat_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "event_trigger_cfg_inter_rat_s::report_amount_e_"); @@ -11309,7 +11923,7 @@ void periodical_report_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string periodical_report_cfg_s::report_amount_opts::to_string() const +const char* periodical_report_cfg_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "periodical_report_cfg_s::report_amount_e_"); @@ -11352,7 +11966,7 @@ void periodical_report_cfg_inter_rat_s::to_json(json_writer& j) const j.end_obj(); } -std::string periodical_report_cfg_inter_rat_s::report_amount_opts::to_string() const +const char* periodical_report_cfg_inter_rat_s::report_amount_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "infinity"}; return convert_enum_idx(options, 8, value, "periodical_report_cfg_inter_rat_s::report_amount_e_"); @@ -11624,7 +12238,7 @@ void ssb_mtc2_s::to_json(json_writer& j) const j.end_obj(); } -std::string ssb_mtc2_s::periodicity_opts::to_string() const +const char* ssb_mtc2_s::periodicity_opts::to_string() const { static const char* options[] = {"sf5", "sf10", "sf20", "sf40", "sf80", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ssb_mtc2_s::periodicity_e_"); @@ -11733,6 +12347,16 @@ mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::operator=( return *this; } +dyn_octstring& mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::set_nr_scg() +{ + set(types::nr_scg); + return c.get(); +} +dyn_octstring& mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::set_eutra_scg() +{ + set(types::eutra_scg); + return c.get(); +} void mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::to_json(json_writer& j) const { j.start_obj(); @@ -11783,7 +12407,7 @@ SRSASN_CODE mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::unpac return SRSASN_SUCCESS; } -std::string mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::types_opts::to_string() const +const char* mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::types_opts::to_string() const { static const char* options[] = {"nr-SCG", "eutra-SCG"}; return convert_enum_idx(options, 2, value, "mrdc_secondary_cell_group_cfg_s::mrdc_secondary_cell_group_c_::types"); @@ -12162,7 +12786,7 @@ void meas_obj_nr_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_obj_nr_s::meas_cycle_scell_opts::to_string() const +const char* meas_obj_nr_s::meas_cycle_scell_opts::to_string() const { static const char* options[] = {"sf160", "sf256", "sf320", "sf512", "sf640", "sf1024", "sf1280"}; return convert_enum_idx(options, 7, value, "meas_obj_nr_s::meas_cycle_scell_e_"); @@ -12193,7 +12817,7 @@ void overheat_assist_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string overheat_assist_cfg_s::overheat_ind_prohibit_timer_opts::to_string() const +const char* overheat_assist_cfg_s::overheat_ind_prohibit_timer_opts::to_string() const { static const char* options[] = {"s0", "s0dot5", @@ -12218,7 +12842,7 @@ float overheat_assist_cfg_s::overheat_ind_prohibit_timer_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 2.0, 5.0, 10.0, 20.0, 30.0, 60.0, 90.0, 120.0, 300.0, 600.0}; return map_enum_number(options, 13, value, "overheat_assist_cfg_s::overheat_ind_prohibit_timer_e_"); } -std::string overheat_assist_cfg_s::overheat_ind_prohibit_timer_opts::to_number_string() const +const char* overheat_assist_cfg_s::overheat_ind_prohibit_timer_opts::to_number_string() const { static const char* options[] = {"0", "0.5", "1", "2", "5", "10", "20", "30", "60", "90", "120", "300", "600"}; return convert_enum_idx(options, 16, value, "overheat_assist_cfg_s::overheat_ind_prohibit_timer_e_"); @@ -12438,6 +13062,26 @@ report_cfg_inter_rat_s::report_type_c_::operator=(const report_cfg_inter_rat_s:: return *this; } +periodical_report_cfg_inter_rat_s& report_cfg_inter_rat_s::report_type_c_::set_periodical() +{ + set(types::periodical); + return c.get(); +} +event_trigger_cfg_inter_rat_s& report_cfg_inter_rat_s::report_type_c_::set_event_triggered() +{ + set(types::event_triggered); + return c.get(); +} +report_cgi_eutra_s& report_cfg_inter_rat_s::report_type_c_::set_report_cgi() +{ + set(types::report_cgi); + return c.get(); +} +report_sftd_eutra_s& report_cfg_inter_rat_s::report_type_c_::set_report_sftd() +{ + set(types::report_sftd); + return c.get(); +} void report_cfg_inter_rat_s::report_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12512,7 +13156,7 @@ SRSASN_CODE report_cfg_inter_rat_s::report_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string report_cfg_inter_rat_s::report_type_c_::types_opts::to_string() const +const char* report_cfg_inter_rat_s::report_type_c_::types_opts::to_string() const { static const char* options[] = {"periodical", "eventTriggered", "reportCGI", "reportSFTD"}; return convert_enum_idx(options, 4, value, "report_cfg_inter_rat_s::report_type_c_::types"); @@ -12631,6 +13275,26 @@ report_cfg_nr_s::report_type_c_::operator=(const report_cfg_nr_s::report_type_c_ return *this; } +periodical_report_cfg_s& report_cfg_nr_s::report_type_c_::set_periodical() +{ + set(types::periodical); + return c.get(); +} +event_trigger_cfg_s& report_cfg_nr_s::report_type_c_::set_event_triggered() +{ + set(types::event_triggered); + return c.get(); +} +report_cgi_s& report_cfg_nr_s::report_type_c_::set_report_cgi() +{ + set(types::report_cgi); + return c.get(); +} +report_sftd_nr_s& report_cfg_nr_s::report_type_c_::set_report_sftd() +{ + set(types::report_sftd); + return c.get(); +} void report_cfg_nr_s::report_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -12707,7 +13371,7 @@ SRSASN_CODE report_cfg_nr_s::report_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string report_cfg_nr_s::report_type_c_::types_opts::to_string() const +const char* report_cfg_nr_s::report_type_c_::types_opts::to_string() const { static const char* options[] = {"periodical", "eventTriggered", "reportCGI", "reportSFTD"}; return convert_enum_idx(options, 4, value, "report_cfg_nr_s::report_type_c_::types"); @@ -12848,7 +13512,7 @@ void gap_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string gap_cfg_s::mgl_opts::to_string() const +const char* gap_cfg_s::mgl_opts::to_string() const { static const char* options[] = {"ms1dot5", "ms3", "ms3dot5", "ms4", "ms5dot5", "ms6"}; return convert_enum_idx(options, 6, value, "gap_cfg_s::mgl_e_"); @@ -12858,13 +13522,13 @@ float gap_cfg_s::mgl_opts::to_number() const static const float options[] = {1.5, 3.0, 3.5, 4.0, 5.5, 6.0}; return map_enum_number(options, 6, value, "gap_cfg_s::mgl_e_"); } -std::string gap_cfg_s::mgl_opts::to_number_string() const +const char* gap_cfg_s::mgl_opts::to_number_string() const { static const char* options[] = {"1.5", "3", "3.5", "4", "5.5", "6"}; return convert_enum_idx(options, 6, value, "gap_cfg_s::mgl_e_"); } -std::string gap_cfg_s::mgrp_opts::to_string() const +const char* gap_cfg_s::mgrp_opts::to_string() const { static const char* options[] = {"ms20", "ms40", "ms80", "ms160"}; return convert_enum_idx(options, 4, value, "gap_cfg_s::mgrp_e_"); @@ -12875,7 +13539,7 @@ uint8_t gap_cfg_s::mgrp_opts::to_number() const return map_enum_number(options, 4, value, "gap_cfg_s::mgrp_e_"); } -std::string gap_cfg_s::mgta_opts::to_string() const +const char* gap_cfg_s::mgta_opts::to_string() const { static const char* options[] = {"ms0", "ms0dot25", "ms0dot5"}; return convert_enum_idx(options, 3, value, "gap_cfg_s::mgta_e_"); @@ -12885,13 +13549,13 @@ float gap_cfg_s::mgta_opts::to_number() const static const float options[] = {0.0, 0.25, 0.5}; return map_enum_number(options, 3, value, "gap_cfg_s::mgta_e_"); } -std::string gap_cfg_s::mgta_opts::to_number_string() const +const char* gap_cfg_s::mgta_opts::to_number_string() const { static const char* options[] = {"0", "0.25", "0.5"}; return convert_enum_idx(options, 3, value, "gap_cfg_s::mgta_e_"); } -std::string gap_cfg_s::ref_serv_cell_ind_opts::to_string() const +const char* gap_cfg_s::ref_serv_cell_ind_opts::to_string() const { static const char* options[] = {"pCell", "pSCell", "mcg-FR2"}; return convert_enum_idx(options, 3, value, "gap_cfg_s::ref_serv_cell_ind_e_"); @@ -12906,7 +13570,7 @@ uint8_t gap_cfg_s::ref_serv_cell_ind_opts::to_number() const } // MeasGapSharingScheme ::= ENUMERATED -std::string meas_gap_sharing_scheme_opts::to_string() const +const char* meas_gap_sharing_scheme_opts::to_string() const { static const char* options[] = {"scheme00", "scheme01", "scheme10", "scheme11"}; return convert_enum_idx(options, 4, value, "meas_gap_sharing_scheme_e"); @@ -12916,7 +13580,7 @@ float meas_gap_sharing_scheme_opts::to_number() const static const float options[] = {0.0, 0.1, 1.0, 1.1}; return map_enum_number(options, 4, value, "meas_gap_sharing_scheme_e"); } -std::string meas_gap_sharing_scheme_opts::to_number_string() const +const char* meas_gap_sharing_scheme_opts::to_number_string() const { static const char* options[] = {"0.0", "0.1", "1.0", "1.1"}; return convert_enum_idx(options, 4, value, "meas_gap_sharing_scheme_e"); @@ -13040,6 +13704,16 @@ meas_obj_to_add_mod_s::meas_obj_c_::operator=(const meas_obj_to_add_mod_s::meas_ return *this; } +meas_obj_nr_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_nr() +{ + set(types::meas_obj_nr); + return c.get(); +} +meas_obj_eutra_s& meas_obj_to_add_mod_s::meas_obj_c_::set_meas_obj_eutra() +{ + set(types::meas_obj_eutra); + return c.get(); +} void meas_obj_to_add_mod_s::meas_obj_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13094,7 +13768,7 @@ SRSASN_CODE meas_obj_to_add_mod_s::meas_obj_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_string() const +const char* meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_string() const { static const char* options[] = {"measObjectNR", "measObjectEUTRA"}; return convert_enum_idx(options, 2, value, "meas_obj_to_add_mod_s::meas_obj_c_::types"); @@ -13169,7 +13843,7 @@ void quant_cfg_nr_s::to_json(json_writer& j) const } // RAT-Type ::= ENUMERATED -std::string rat_type_opts::to_string() const +const char* rat_type_opts::to_string() const { static const char* options[] = {"nr", "eutra-nr", "eutra", "spare1"}; return convert_enum_idx(options, 4, value, "rat_type_e"); @@ -13327,6 +14001,16 @@ report_cfg_to_add_mod_s::report_cfg_c_::operator=(const report_cfg_to_add_mod_s: return *this; } +report_cfg_nr_s& report_cfg_to_add_mod_s::report_cfg_c_::set_report_cfg_nr() +{ + set(types::report_cfg_nr); + return c.get(); +} +report_cfg_inter_rat_s& report_cfg_to_add_mod_s::report_cfg_c_::set_report_cfg_inter_rat() +{ + set(types::report_cfg_inter_rat); + return c.get(); +} void report_cfg_to_add_mod_s::report_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13381,7 +14065,7 @@ SRSASN_CODE report_cfg_to_add_mod_s::report_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string report_cfg_to_add_mod_s::report_cfg_c_::types_opts::to_string() const +const char* report_cfg_to_add_mod_s::report_cfg_c_::types_opts::to_string() const { static const char* options[] = {"reportConfigNR", "reportConfigInterRAT"}; return convert_enum_idx(options, 2, value, "report_cfg_to_add_mod_s::report_cfg_c_::types"); @@ -13691,6 +14375,15 @@ void other_cfg_s::delay_budget_report_cfg_c_::set(types::options e) { type_ = e; } +void other_cfg_s::delay_budget_report_cfg_c_::set_release() +{ + set(types::release); +} +other_cfg_s::delay_budget_report_cfg_c_::setup_s_& other_cfg_s::delay_budget_report_cfg_c_::set_setup() +{ + set(types::setup); + return c; +} void other_cfg_s::delay_budget_report_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -13741,7 +14434,7 @@ SRSASN_CODE other_cfg_s::delay_budget_report_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string +const char* other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_prohibit_timer_opts::to_string() const { static const char* options[] = {"s0", "s0dot4", "s0dot8", "s1dot6", "s3", "s6", "s12", "s30"}; @@ -13754,7 +14447,7 @@ float other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_pro return map_enum_number( options, 8, value, "other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_prohibit_timer_e_"); } -std::string +const char* other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_prohibit_timer_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.8", "1.6", "3", "6", "12", "30"}; @@ -13762,14 +14455,14 @@ other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_prohibit_ options, 8, value, "other_cfg_s::delay_budget_report_cfg_c_::setup_s_::delay_budget_report_prohibit_timer_e_"); } -std::string other_cfg_s::delay_budget_report_cfg_c_::types_opts::to_string() const +const char* other_cfg_s::delay_budget_report_cfg_c_::types_opts::to_string() const { static const char* options[] = {"release", "setup"}; return convert_enum_idx(options, 2, value, "other_cfg_s::delay_budget_report_cfg_c_::types"); } // PeriodicRNAU-TimerValue ::= ENUMERATED -std::string periodic_rnau_timer_value_opts::to_string() const +const char* periodic_rnau_timer_value_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min360", "min720"}; return convert_enum_idx(options, 8, value, "periodic_rnau_timer_value_e"); @@ -13919,6 +14612,16 @@ ran_notif_area_info_c& ran_notif_area_info_c::operator=(const ran_notif_area_inf return *this; } +plmn_ran_area_cell_list_l& ran_notif_area_info_c::set_cell_list() +{ + set(types::cell_list); + return c.get(); +} +plmn_ran_area_cfg_list_l& ran_notif_area_info_c::set_ran_area_cfg_list() +{ + set(types::ran_area_cfg_list); + return c.get(); +} void ran_notif_area_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -13977,7 +14680,7 @@ SRSASN_CODE ran_notif_area_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ran_notif_area_info_c::types_opts::to_string() const +const char* ran_notif_area_info_c::types_opts::to_string() const { static const char* options[] = {"cellList", "ran-AreaConfigList"}; return convert_enum_idx(options, 2, value, "ran_notif_area_info_c::types"); @@ -14059,7 +14762,7 @@ void redirected_carrier_info_eutra_s::to_json(json_writer& j) const j.end_obj(); } -std::string redirected_carrier_info_eutra_s::cn_type_opts::to_string() const +const char* redirected_carrier_info_eutra_s::cn_type_opts::to_string() const { static const char* options[] = {"epc", "fiveGC"}; return convert_enum_idx(options, 2, value, "redirected_carrier_info_eutra_s::cn_type_e_"); @@ -14170,7 +14873,7 @@ void cell_resel_priorities_s::to_json(json_writer& j) const j.end_obj(); } -std::string cell_resel_priorities_s::t320_opts::to_string() const +const char* cell_resel_priorities_s::t320_opts::to_string() const { static const char* options[] = {"min5", "min10", "min20", "min30", "min60", "min120", "min180", "spare1"}; return convert_enum_idx(options, 8, value, "cell_resel_priorities_s::t320_e_"); @@ -14383,6 +15086,16 @@ meas_cfg_s::s_measure_cfg_c_& meas_cfg_s::s_measure_cfg_c_::operator=(const meas return *this; } +uint8_t& meas_cfg_s::s_measure_cfg_c_::set_ssb_rsrp() +{ + set(types::ssb_rsrp); + return c.get(); +} +uint8_t& meas_cfg_s::s_measure_cfg_c_::set_csi_rsrp() +{ + set(types::csi_rsrp); + return c.get(); +} void meas_cfg_s::s_measure_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -14433,7 +15146,7 @@ SRSASN_CODE meas_cfg_s::s_measure_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const +const char* meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const { static const char* options[] = {"ssb-RSRP", "csi-RSRP"}; return convert_enum_idx(options, 2, value, "meas_cfg_s::s_measure_cfg_c_::types"); @@ -14700,6 +15413,16 @@ redirected_carrier_info_c& redirected_carrier_info_c::operator=(const redirected return *this; } +carrier_info_nr_s& redirected_carrier_info_c::set_nr() +{ + set(types::nr); + return c.get(); +} +redirected_carrier_info_eutra_s& redirected_carrier_info_c::set_eutra() +{ + set(types::eutra); + return c.get(); +} void redirected_carrier_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -14752,7 +15475,7 @@ SRSASN_CODE redirected_carrier_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string redirected_carrier_info_c::types_opts::to_string() const +const char* redirected_carrier_info_c::types_opts::to_string() const { static const char* options[] = {"nr", "eutra"}; return convert_enum_idx(options, 2, value, "redirected_carrier_info_c::types"); @@ -14983,7 +15706,7 @@ void mob_from_nr_cmd_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string mob_from_nr_cmd_ies_s::target_rat_type_opts::to_string() const +const char* mob_from_nr_cmd_ies_s::target_rat_type_opts::to_string() const { static const char* options[] = {"eutra", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "mob_from_nr_cmd_ies_s::target_rat_type_e_"); @@ -15201,13 +15924,13 @@ void rrc_release_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_release_ies_s::depriorit_req_s_::depriorit_type_opts::to_string() const +const char* rrc_release_ies_s::depriorit_req_s_::depriorit_type_opts::to_string() const { static const char* options[] = {"frequency", "nr"}; return convert_enum_idx(options, 2, value, "rrc_release_ies_s::depriorit_req_s_::depriorit_type_e_"); } -std::string rrc_release_ies_s::depriorit_req_s_::depriorit_timer_opts::to_string() const +const char* rrc_release_ies_s::depriorit_req_s_::depriorit_timer_opts::to_string() const { static const char* options[] = {"min5", "min10", "min15", "min30"}; return convert_enum_idx(options, 4, value, "rrc_release_ies_s::depriorit_req_s_::depriorit_timer_e_"); @@ -15417,6 +16140,15 @@ void counter_check_s::crit_exts_c_::set(types::options e) { type_ = e; } +counter_check_ies_s& counter_check_s::crit_exts_c_::set_counter_check() +{ + set(types::counter_check); + return c; +} +void counter_check_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void counter_check_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15465,7 +16197,7 @@ SRSASN_CODE counter_check_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string counter_check_s::crit_exts_c_::types_opts::to_string() const +const char* counter_check_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"counterCheck", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "counter_check_s::crit_exts_c_::types"); @@ -15499,6 +16231,15 @@ void dl_info_transfer_s::crit_exts_c_::set(types::options e) { type_ = e; } +dl_info_transfer_ies_s& dl_info_transfer_s::crit_exts_c_::set_dl_info_transfer() +{ + set(types::dl_info_transfer); + return c; +} +void dl_info_transfer_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15547,7 +16288,7 @@ SRSASN_CODE dl_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_info_transfer_s::crit_exts_c_::types_opts::to_string() const +const char* dl_info_transfer_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"dlInformationTransfer", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "dl_info_transfer_s::crit_exts_c_::types"); @@ -15581,6 +16322,15 @@ void mob_from_nr_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +mob_from_nr_cmd_ies_s& mob_from_nr_cmd_s::crit_exts_c_::set_mob_from_nr_cmd() +{ + set(types::mob_from_nr_cmd); + return c; +} +void mob_from_nr_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void mob_from_nr_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15629,7 +16379,7 @@ SRSASN_CODE mob_from_nr_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mob_from_nr_cmd_s::crit_exts_c_::types_opts::to_string() const +const char* mob_from_nr_cmd_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"mobilityFromNRCommand", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "mob_from_nr_cmd_s::crit_exts_c_::types"); @@ -15663,6 +16413,15 @@ void rrc_recfg_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_recfg_ies_s& rrc_recfg_s::crit_exts_c_::set_rrc_recfg() +{ + set(types::rrc_recfg); + return c; +} +void rrc_recfg_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_recfg_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15711,7 +16470,7 @@ SRSASN_CODE rrc_recfg_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_recfg_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_recfg_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcReconfiguration", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_recfg_s::crit_exts_c_::types"); @@ -15745,6 +16504,15 @@ void rrc_reest_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_reest_ies_s& rrc_reest_s::crit_exts_c_::set_rrc_reest() +{ + set(types::rrc_reest); + return c; +} +void rrc_reest_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_reest_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15793,7 +16561,7 @@ SRSASN_CODE rrc_reest_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_reest_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_reest_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcReestablishment", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_reest_s::crit_exts_c_::types"); @@ -15827,6 +16595,15 @@ void rrc_release_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_release_ies_s& rrc_release_s::crit_exts_c_::set_rrc_release() +{ + set(types::rrc_release); + return c; +} +void rrc_release_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_release_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15875,7 +16652,7 @@ SRSASN_CODE rrc_release_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_release_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_release_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcRelease", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_release_s::crit_exts_c_::types"); @@ -15909,6 +16686,15 @@ void rrc_resume_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_resume_ies_s& rrc_resume_s::crit_exts_c_::set_rrc_resume() +{ + set(types::rrc_resume); + return c; +} +void rrc_resume_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_resume_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -15957,7 +16743,7 @@ SRSASN_CODE rrc_resume_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_resume_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_resume_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcResume", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_resume_s::crit_exts_c_::types"); @@ -15991,6 +16777,15 @@ void security_mode_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_cmd_ies_s& security_mode_cmd_s::crit_exts_c_::set_security_mode_cmd() +{ + set(types::security_mode_cmd); + return c; +} +void security_mode_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16039,7 +16834,7 @@ SRSASN_CODE security_mode_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string security_mode_cmd_s::crit_exts_c_::types_opts::to_string() const +const char* security_mode_cmd_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"securityModeCommand", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "security_mode_cmd_s::crit_exts_c_::types"); @@ -16073,6 +16868,15 @@ void ue_cap_enquiry_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_enquiry_ies_s& ue_cap_enquiry_s::crit_exts_c_::set_ue_cap_enquiry() +{ + set(types::ue_cap_enquiry); + return c; +} +void ue_cap_enquiry_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16121,7 +16925,7 @@ SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_cap_enquiry_s::crit_exts_c_::types_opts::to_string() const +const char* ue_cap_enquiry_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ueCapabilityEnquiry", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ue_cap_enquiry_s::crit_exts_c_::types"); @@ -16132,6 +16936,15 @@ void dl_dcch_msg_type_c::set(types::options e) { type_ = e; } +dl_dcch_msg_type_c::c1_c_& dl_dcch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void dl_dcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void dl_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -16373,6 +17186,79 @@ dl_dcch_msg_type_c::c1_c_& dl_dcch_msg_type_c::c1_c_::operator=(const dl_dcch_ms return *this; } +rrc_recfg_s& dl_dcch_msg_type_c::c1_c_::set_rrc_recfg() +{ + set(types::rrc_recfg); + return c.get(); +} +rrc_resume_s& dl_dcch_msg_type_c::c1_c_::set_rrc_resume() +{ + set(types::rrc_resume); + return c.get(); +} +rrc_release_s& dl_dcch_msg_type_c::c1_c_::set_rrc_release() +{ + set(types::rrc_release); + return c.get(); +} +rrc_reest_s& dl_dcch_msg_type_c::c1_c_::set_rrc_reest() +{ + set(types::rrc_reest); + return c.get(); +} +security_mode_cmd_s& dl_dcch_msg_type_c::c1_c_::set_security_mode_cmd() +{ + set(types::security_mode_cmd); + return c.get(); +} +dl_info_transfer_s& dl_dcch_msg_type_c::c1_c_::set_dl_info_transfer() +{ + set(types::dl_info_transfer); + return c.get(); +} +ue_cap_enquiry_s& dl_dcch_msg_type_c::c1_c_::set_ue_cap_enquiry() +{ + set(types::ue_cap_enquiry); + return c.get(); +} +counter_check_s& dl_dcch_msg_type_c::c1_c_::set_counter_check() +{ + set(types::counter_check); + return c.get(); +} +mob_from_nr_cmd_s& dl_dcch_msg_type_c::c1_c_::set_mob_from_nr_cmd() +{ + set(types::mob_from_nr_cmd); + return c.get(); +} +void dl_dcch_msg_type_c::c1_c_::set_spare7() +{ + set(types::spare7); +} +void dl_dcch_msg_type_c::c1_c_::set_spare6() +{ + set(types::spare6); +} +void dl_dcch_msg_type_c::c1_c_::set_spare5() +{ + set(types::spare5); +} +void dl_dcch_msg_type_c::c1_c_::set_spare4() +{ + set(types::spare4); +} +void dl_dcch_msg_type_c::c1_c_::set_spare3() +{ + set(types::spare3); +} +void dl_dcch_msg_type_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void dl_dcch_msg_type_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void dl_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16537,7 +17423,7 @@ SRSASN_CODE dl_dcch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_dcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* dl_dcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcReconfiguration", "rrcResume", @@ -16558,7 +17444,7 @@ std::string dl_dcch_msg_type_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 16, value, "dl_dcch_msg_type_c::c1_c_::types"); } -std::string dl_dcch_msg_type_c::types_opts::to_string() const +const char* dl_dcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "dl_dcch_msg_type_c::types"); @@ -16666,6 +17552,16 @@ paging_ue_id_c& paging_ue_id_c::operator=(const paging_ue_id_c& other) return *this; } +fixed_bitstring<48>& paging_ue_id_c::set_ng_minus5_g_s_tmsi() +{ + set(types::ng_minus5_g_s_tmsi); + return c.get >(); +} +fixed_bitstring<40>& paging_ue_id_c::set_full_i_rnti() +{ + set(types::full_i_rnti); + return c.get >(); +} void paging_ue_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -16716,7 +17612,7 @@ SRSASN_CODE paging_ue_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string paging_ue_id_c::types_opts::to_string() const +const char* paging_ue_id_c::types_opts::to_string() const { static const char* options[] = {"ng-5G-S-TMSI", "fullI-RNTI"}; return convert_enum_idx(options, 2, value, "paging_ue_id_c::types"); @@ -16814,6 +17710,15 @@ void pcch_msg_type_c::set(types::options e) { type_ = e; } +pcch_msg_type_c::c1_c_& pcch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void pcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void pcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -16866,6 +17771,15 @@ void pcch_msg_type_c::c1_c_::set(types::options e) { type_ = e; } +paging_s& pcch_msg_type_c::c1_c_::set_paging() +{ + set(types::paging); + return c; +} +void pcch_msg_type_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void pcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -16914,13 +17828,13 @@ SRSASN_CODE pcch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* pcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"paging", "spare1"}; return convert_enum_idx(options, 2, value, "pcch_msg_type_c::c1_c_::types"); } -std::string pcch_msg_type_c::types_opts::to_string() const +const char* pcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "pcch_msg_type_c::types"); @@ -16961,7 +17875,7 @@ void pcch_msg_s::to_json(json_writer& j) const } // EstablishmentCause ::= ENUMERATED -std::string establishment_cause_opts::to_string() const +const char* establishment_cause_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -17050,6 +17964,16 @@ init_ue_id_c& init_ue_id_c::operator=(const init_ue_id_c& other) return *this; } +fixed_bitstring<39>& init_ue_id_c::set_ng_minus5_g_s_tmsi_part1() +{ + set(types::ng_minus5_g_s_tmsi_part1); + return c.get >(); +} +fixed_bitstring<39>& init_ue_id_c::set_random_value() +{ + set(types::random_value); + return c.get >(); +} void init_ue_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -17100,7 +18024,7 @@ SRSASN_CODE init_ue_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string init_ue_id_c::types_opts::to_string() const +const char* init_ue_id_c::types_opts::to_string() const { static const char* options[] = {"ng-5G-S-TMSI-Part1", "randomValue"}; return convert_enum_idx(options, 2, value, "init_ue_id_c::types"); @@ -17138,14 +18062,14 @@ void reestab_ue_id_s::to_json(json_writer& j) const } // ReestablishmentCause ::= ENUMERATED -std::string reest_cause_opts::to_string() const +const char* reest_cause_opts::to_string() const { static const char* options[] = {"reconfigurationFailure", "handoverFailure", "otherFailure", "spare1"}; return convert_enum_idx(options, 4, value, "reest_cause_e"); } // ResumeCause ::= ENUMERATED -std::string resume_cause_opts::to_string() const +const char* resume_cause_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -17360,6 +18284,15 @@ void rrc_sys_info_request_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_sys_info_request_ies_s& rrc_sys_info_request_s::crit_exts_c_::set_rrc_sys_info_request() +{ + set(types::rrc_sys_info_request); + return c; +} +void rrc_sys_info_request_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_sys_info_request_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -17408,7 +18341,7 @@ SRSASN_CODE rrc_sys_info_request_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_sys_info_request_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_sys_info_request_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcSystemInfoRequest", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_sys_info_request_s::crit_exts_c_::types"); @@ -17419,6 +18352,15 @@ void ul_ccch_msg_type_c::set(types::options e) { type_ = e; } +ul_ccch_msg_type_c::c1_c_& ul_ccch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void ul_ccch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void ul_ccch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -17558,6 +18500,26 @@ ul_ccch_msg_type_c::c1_c_& ul_ccch_msg_type_c::c1_c_::operator=(const ul_ccch_ms return *this; } +rrc_setup_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_setup_request() +{ + set(types::rrc_setup_request); + return c.get(); +} +rrc_resume_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_resume_request() +{ + set(types::rrc_resume_request); + return c.get(); +} +rrc_reest_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_reest_request() +{ + set(types::rrc_reest_request); + return c.get(); +} +rrc_sys_info_request_s& ul_ccch_msg_type_c::c1_c_::set_rrc_sys_info_request() +{ + set(types::rrc_sys_info_request); + return c.get(); +} void ul_ccch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -17630,14 +18592,14 @@ SRSASN_CODE ul_ccch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_ccch_msg_type_c::c1_c_::types_opts::to_string() const +const char* ul_ccch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = { "rrcSetupRequest", "rrcResumeRequest", "rrcReestablishmentRequest", "rrcSystemInfoRequest"}; return convert_enum_idx(options, 4, value, "ul_ccch_msg_type_c::c1_c_::types"); } -std::string ul_ccch_msg_type_c::types_opts::to_string() const +const char* ul_ccch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_ccch_msg_type_c::types"); @@ -17732,6 +18694,15 @@ void ul_ccch1_msg_type_c::set(types::options e) { type_ = e; } +ul_ccch1_msg_type_c::c1_c_& ul_ccch1_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void ul_ccch1_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void ul_ccch1_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -17784,6 +18755,23 @@ void ul_ccch1_msg_type_c::c1_c_::set(types::options e) { type_ = e; } +rrc_resume_request1_s& ul_ccch1_msg_type_c::c1_c_::set_rrc_resume_request1() +{ + set(types::rrc_resume_request1); + return c; +} +void ul_ccch1_msg_type_c::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_ccch1_msg_type_c::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_ccch1_msg_type_c::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_ccch1_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -17844,7 +18832,7 @@ SRSASN_CODE ul_ccch1_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_ccch1_msg_type_c::c1_c_::types_opts::to_string() const +const char* ul_ccch1_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"rrcResumeRequest1", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_ccch1_msg_type_c::c1_c_::types"); @@ -17855,7 +18843,7 @@ uint8_t ul_ccch1_msg_type_c::c1_c_::types_opts::to_number() const return map_enum_number(options, 1, value, "ul_ccch1_msg_type_c::c1_c_::types"); } -std::string ul_ccch1_msg_type_c::types_opts::to_string() const +const char* ul_ccch1_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_ccch1_msg_type_c::types"); @@ -18011,6 +18999,16 @@ plmn_id_eutra_minus5_gc_c& plmn_id_eutra_minus5_gc_c::operator=(const plmn_id_eu return *this; } +plmn_id_s& plmn_id_eutra_minus5_gc_c::set_plmn_id_eutra_minus5_gc() +{ + set(types::plmn_id_eutra_minus5_gc); + return c.get(); +} +uint8_t& plmn_id_eutra_minus5_gc_c::set_plmn_idx() +{ + set(types::plmn_idx); + return c.get(); +} void plmn_id_eutra_minus5_gc_c::to_json(json_writer& j) const { j.start_obj(); @@ -18062,7 +19060,7 @@ SRSASN_CODE plmn_id_eutra_minus5_gc_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string plmn_id_eutra_minus5_gc_c::types_opts::to_string() const +const char* plmn_id_eutra_minus5_gc_c::types_opts::to_string() const { static const char* options[] = {"plmn-Identity-EUTRA-5GC", "plmn-index"}; return convert_enum_idx(options, 2, value, "plmn_id_eutra_minus5_gc_c::types"); @@ -18137,6 +19135,16 @@ cell_id_eutra_minus5_gc_c& cell_id_eutra_minus5_gc_c::operator=(const cell_id_eu return *this; } +fixed_bitstring<28>& cell_id_eutra_minus5_gc_c::set_cell_id_eutra() +{ + set(types::cell_id_eutra); + return c.get >(); +} +uint8_t& cell_id_eutra_minus5_gc_c::set_cell_id_idx() +{ + set(types::cell_id_idx); + return c.get(); +} void cell_id_eutra_minus5_gc_c::to_json(json_writer& j) const { j.start_obj(); @@ -18187,7 +19195,7 @@ SRSASN_CODE cell_id_eutra_minus5_gc_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cell_id_eutra_minus5_gc_c::types_opts::to_string() const +const char* cell_id_eutra_minus5_gc_c::types_opts::to_string() const { static const char* options[] = {"cellIdentity-EUTRA", "cellId-index"}; return convert_enum_idx(options, 2, value, "cell_id_eutra_minus5_gc_c::types"); @@ -18773,7 +19781,7 @@ void eutra_rstd_info_s::to_json(json_writer& j) const } // MIMO-LayersDL ::= ENUMERATED -std::string mimo_layers_dl_opts::to_string() const +const char* mimo_layers_dl_opts::to_string() const { static const char* options[] = {"twoLayers", "fourLayers", "eightLayers"}; return convert_enum_idx(options, 3, value, "mimo_layers_dl_e"); @@ -18785,7 +19793,7 @@ uint8_t mimo_layers_dl_opts::to_number() const } // MIMO-LayersUL ::= ENUMERATED -std::string mimo_layers_ul_opts::to_string() const +const char* mimo_layers_ul_opts::to_string() const { static const char* options[] = {"oneLayer", "twoLayers", "fourLayers"}; return convert_enum_idx(options, 3, value, "mimo_layers_ul_e"); @@ -18994,7 +20002,7 @@ void meas_result_serv_mo_s::to_json(json_writer& j) const } // ReducedAggregatedBandwidth ::= ENUMERATED -std::string reduced_aggregated_bw_opts::to_string() const +const char* reduced_aggregated_bw_opts::to_string() const { static const char* options[] = { "mhz0", "mhz10", "mhz20", "mhz30", "mhz40", "mhz50", "mhz60", "mhz80", "mhz100", "mhz200", "mhz300", "mhz400"}; @@ -19348,6 +20356,16 @@ rrc_recfg_complete_v1560_ies_s::scg_resp_c_::operator=(const rrc_recfg_complete_ return *this; } +dyn_octstring& rrc_recfg_complete_v1560_ies_s::scg_resp_c_::set_nr_scg_resp() +{ + set(types::nr_scg_resp); + return c.get(); +} +dyn_octstring& rrc_recfg_complete_v1560_ies_s::scg_resp_c_::set_eutra_scg_resp() +{ + set(types::eutra_scg_resp); + return c.get(); +} void rrc_recfg_complete_v1560_ies_s::scg_resp_c_::to_json(json_writer& j) const { j.start_obj(); @@ -19398,7 +20416,7 @@ SRSASN_CODE rrc_recfg_complete_v1560_ies_s::scg_resp_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_recfg_complete_v1560_ies_s::scg_resp_c_::types_opts::to_string() const +const char* rrc_recfg_complete_v1560_ies_s::scg_resp_c_::types_opts::to_string() const { static const char* options[] = {"nr-SCG-Response", "eutra-SCG-Response"}; return convert_enum_idx(options, 2, value, "rrc_recfg_complete_v1560_ies_s::scg_resp_c_::types"); @@ -19452,7 +20470,7 @@ SRSASN_CODE delay_budget_report_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string delay_budget_report_c::type1_opts::to_string() const +const char* delay_budget_report_c::type1_opts::to_string() const { static const char* options[] = {"msMinus1280", "msMinus640", @@ -19480,7 +20498,7 @@ int16_t delay_budget_report_c::type1_opts::to_number() const return map_enum_number(options, 17, value, "delay_budget_report_c::type1_e_"); } -std::string delay_budget_report_c::types_opts::to_string() const +const char* delay_budget_report_c::types_opts::to_string() const { static const char* options[] = {"type1"}; return convert_enum_idx(options, 1, value, "delay_budget_report_c::types"); @@ -19517,7 +20535,7 @@ void fail_info_rlc_bearer_s::to_json(json_writer& j) const j.end_obj(); } -std::string fail_info_rlc_bearer_s::fail_type_opts::to_string() const +const char* fail_info_rlc_bearer_s::fail_type_opts::to_string() const { static const char* options[] = {"rlc-failure", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "fail_info_rlc_bearer_s::fail_type_e_"); @@ -19573,7 +20591,7 @@ void fail_report_scg_s::to_json(json_writer& j) const j.end_obj(); } -std::string fail_report_scg_s::fail_type_opts::to_string() const +const char* fail_report_scg_s::fail_type_opts::to_string() const { static const char* options[] = {"t310-Expiry", "randomAccessProblem", @@ -19648,7 +20666,7 @@ void fail_report_scg_eutra_s::to_json(json_writer& j) const j.end_obj(); } -std::string fail_report_scg_eutra_s::fail_type_opts::to_string() const +const char* fail_report_scg_eutra_s::fail_type_opts::to_string() const { static const char* options[] = {"t313-Expiry", "randomAccessProblem", @@ -19671,6 +20689,15 @@ void location_meas_info_c::set(types::options e) { type_ = e; } +eutra_rstd_info_list_l& location_meas_info_c::set_eutra_rstd() +{ + set(types::eutra_rstd); + return c; +} +void location_meas_info_c::set_eutra_fine_timing_detection() +{ + set(types::eutra_fine_timing_detection); +} void location_meas_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -19722,7 +20749,7 @@ SRSASN_CODE location_meas_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string location_meas_info_c::types_opts::to_string() const +const char* location_meas_info_c::types_opts::to_string() const { static const char* options[] = {"eutra-RSTD", "eutra-FineTimingDetection"}; return convert_enum_idx(options, 2, value, "location_meas_info_c::types"); @@ -19952,6 +20979,16 @@ meas_results_s::meas_result_neigh_cells_c_::operator=(const meas_results_s::meas return *this; } +meas_result_list_nr_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_list_nr() +{ + set(types::meas_result_list_nr); + return c.get(); +} +meas_result_list_eutra_l& meas_results_s::meas_result_neigh_cells_c_::set_meas_result_list_eutra() +{ + set(types::meas_result_list_eutra); + return c.get(); +} void meas_results_s::meas_result_neigh_cells_c_::to_json(json_writer& j) const { j.start_obj(); @@ -20012,7 +21049,7 @@ SRSASN_CODE meas_results_s::meas_result_neigh_cells_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const +const char* meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const { static const char* options[] = {"measResultListNR", "measResultListEUTRA"}; return convert_enum_idx(options, 2, value, "meas_results_s::meas_result_neigh_cells_c_::types"); @@ -20166,6 +21203,16 @@ s_nssai_c& s_nssai_c::operator=(const s_nssai_c& other) return *this; } +fixed_bitstring<8>& s_nssai_c::set_sst() +{ + set(types::sst); + return c.get >(); +} +fixed_bitstring<32>& s_nssai_c::set_sst_sd() +{ + set(types::sst_sd); + return c.get >(); +} void s_nssai_c::to_json(json_writer& j) const { j.start_obj(); @@ -20216,7 +21263,7 @@ SRSASN_CODE s_nssai_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s_nssai_c::types_opts::to_string() const +const char* s_nssai_c::types_opts::to_string() const { static const char* options[] = {"sst", "sst-SD"}; return convert_enum_idx(options, 2, value, "s_nssai_c::types"); @@ -20755,7 +21802,7 @@ void rrc_setup_complete_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrc_setup_complete_ies_s::guami_type_opts::to_string() const +const char* rrc_setup_complete_ies_s::guami_type_opts::to_string() const { static const char* options[] = {"native", "mapped"}; return convert_enum_idx(options, 2, value, "rrc_setup_complete_ies_s::guami_type_e_"); @@ -20830,6 +21877,16 @@ rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_& rrc_setup_complete_ies_s: return *this; } +fixed_bitstring<48>& rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::set_ng_minus5_g_s_tmsi() +{ + set(types::ng_minus5_g_s_tmsi); + return c.get >(); +} +fixed_bitstring<9>& rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::set_ng_minus5_g_s_tmsi_part2() +{ + set(types::ng_minus5_g_s_tmsi_part2); + return c.get >(); +} void rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::to_json(json_writer& j) const { j.start_obj(); @@ -20880,7 +21937,7 @@ SRSASN_CODE rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::unpack(cbit_r return SRSASN_SUCCESS; } -std::string rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::types_opts::to_string() const +const char* rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::types_opts::to_string() const { static const char* options[] = {"ng-5G-S-TMSI", "ng-5G-S-TMSI-Part2"}; return convert_enum_idx(options, 2, value, "rrc_setup_complete_ies_s::ng_minus5_g_s_tmsi_value_c_::types"); @@ -21287,6 +22344,15 @@ void counter_check_resp_s::crit_exts_c_::set(types::options e) { type_ = e; } +counter_check_resp_ies_s& counter_check_resp_s::crit_exts_c_::set_counter_check_resp() +{ + set(types::counter_check_resp); + return c; +} +void counter_check_resp_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21335,7 +22401,7 @@ SRSASN_CODE counter_check_resp_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string counter_check_resp_s::crit_exts_c_::types_opts::to_string() const +const char* counter_check_resp_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"counterCheckResponse", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "counter_check_resp_s::crit_exts_c_::types"); @@ -21366,6 +22432,15 @@ void fail_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +fail_info_ies_s& fail_info_s::crit_exts_c_::set_fail_info() +{ + set(types::fail_info); + return c; +} +void fail_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void fail_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21414,7 +22489,7 @@ SRSASN_CODE fail_info_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string fail_info_s::crit_exts_c_::types_opts::to_string() const +const char* fail_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"failureInformation", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "fail_info_s::crit_exts_c_::types"); @@ -21445,6 +22520,15 @@ void location_meas_ind_s::crit_exts_c_::set(types::options e) { type_ = e; } +location_meas_ind_ies_s& location_meas_ind_s::crit_exts_c_::set_location_meas_ind() +{ + set(types::location_meas_ind); + return c; +} +void location_meas_ind_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void location_meas_ind_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21493,7 +22577,7 @@ SRSASN_CODE location_meas_ind_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string location_meas_ind_s::crit_exts_c_::types_opts::to_string() const +const char* location_meas_ind_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"locationMeasurementIndication", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "location_meas_ind_s::crit_exts_c_::types"); @@ -21524,6 +22608,15 @@ void meas_report_s::crit_exts_c_::set(types::options e) { type_ = e; } +meas_report_ies_s& meas_report_s::crit_exts_c_::set_meas_report() +{ + set(types::meas_report); + return c; +} +void meas_report_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void meas_report_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21572,7 +22665,7 @@ SRSASN_CODE meas_report_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_report_s::crit_exts_c_::types_opts::to_string() const +const char* meas_report_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"measurementReport", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "meas_report_s::crit_exts_c_::types"); @@ -21606,6 +22699,15 @@ void rrc_recfg_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_recfg_complete_ies_s& rrc_recfg_complete_s::crit_exts_c_::set_rrc_recfg_complete() +{ + set(types::rrc_recfg_complete); + return c; +} +void rrc_recfg_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21654,7 +22756,7 @@ SRSASN_CODE rrc_recfg_complete_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_recfg_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_recfg_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcReconfigurationComplete", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_recfg_complete_s::crit_exts_c_::types"); @@ -21688,6 +22790,15 @@ void rrc_reest_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_reest_complete_ies_s& rrc_reest_complete_s::crit_exts_c_::set_rrc_reest_complete() +{ + set(types::rrc_reest_complete); + return c; +} +void rrc_reest_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21736,7 +22847,7 @@ SRSASN_CODE rrc_reest_complete_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_reest_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_reest_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcReestablishmentComplete", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_reest_complete_s::crit_exts_c_::types"); @@ -21770,6 +22881,15 @@ void rrc_resume_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_resume_complete_ies_s& rrc_resume_complete_s::crit_exts_c_::set_rrc_resume_complete() +{ + set(types::rrc_resume_complete); + return c; +} +void rrc_resume_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_resume_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21818,7 +22938,7 @@ SRSASN_CODE rrc_resume_complete_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_resume_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_resume_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcResumeComplete", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_resume_complete_s::crit_exts_c_::types"); @@ -21852,6 +22972,15 @@ void rrc_setup_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +rrc_setup_complete_ies_s& rrc_setup_complete_s::crit_exts_c_::set_rrc_setup_complete() +{ + set(types::rrc_setup_complete); + return c; +} +void rrc_setup_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void rrc_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21900,7 +23029,7 @@ SRSASN_CODE rrc_setup_complete_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rrc_setup_complete_s::crit_exts_c_::types_opts::to_string() const +const char* rrc_setup_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"rrcSetupComplete", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "rrc_setup_complete_s::crit_exts_c_::types"); @@ -21931,6 +23060,15 @@ void scg_fail_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_fail_info_ies_s& scg_fail_info_s::crit_exts_c_::set_scg_fail_info() +{ + set(types::scg_fail_info); + return c; +} +void scg_fail_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_fail_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -21979,7 +23117,7 @@ SRSASN_CODE scg_fail_info_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string scg_fail_info_s::crit_exts_c_::types_opts::to_string() const +const char* scg_fail_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"scgFailureInformation", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "scg_fail_info_s::crit_exts_c_::types"); @@ -22010,6 +23148,15 @@ void scg_fail_info_eutra_s::crit_exts_c_::set(types::options e) { type_ = e; } +scg_fail_info_eutra_ies_s& scg_fail_info_eutra_s::crit_exts_c_::set_scg_fail_info_eutra() +{ + set(types::scg_fail_info_eutra); + return c; +} +void scg_fail_info_eutra_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void scg_fail_info_eutra_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22058,7 +23205,7 @@ SRSASN_CODE scg_fail_info_eutra_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string scg_fail_info_eutra_s::crit_exts_c_::types_opts::to_string() const +const char* scg_fail_info_eutra_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"scgFailureInformationEUTRA", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "scg_fail_info_eutra_s::crit_exts_c_::types"); @@ -22092,6 +23239,15 @@ void security_mode_complete_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_complete_ies_s& security_mode_complete_s::crit_exts_c_::set_security_mode_complete() +{ + set(types::security_mode_complete); + return c; +} +void security_mode_complete_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22140,7 +23296,7 @@ SRSASN_CODE security_mode_complete_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string security_mode_complete_s::crit_exts_c_::types_opts::to_string() const +const char* security_mode_complete_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"securityModeComplete", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "security_mode_complete_s::crit_exts_c_::types"); @@ -22174,6 +23330,15 @@ void security_mode_fail_s::crit_exts_c_::set(types::options e) { type_ = e; } +security_mode_fail_ies_s& security_mode_fail_s::crit_exts_c_::set_security_mode_fail() +{ + set(types::security_mode_fail); + return c; +} +void security_mode_fail_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22222,7 +23387,7 @@ SRSASN_CODE security_mode_fail_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string security_mode_fail_s::crit_exts_c_::types_opts::to_string() const +const char* security_mode_fail_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"securityModeFailure", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "security_mode_fail_s::crit_exts_c_::types"); @@ -22253,6 +23418,15 @@ void ueassist_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ueassist_info_ies_s& ueassist_info_s::crit_exts_c_::set_ue_assist_info() +{ + set(types::ue_assist_info); + return c; +} +void ueassist_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ueassist_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22301,7 +23475,7 @@ SRSASN_CODE ueassist_info_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ueassist_info_s::crit_exts_c_::types_opts::to_string() const +const char* ueassist_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ueAssistanceInformation", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ueassist_info_s::crit_exts_c_::types"); @@ -22335,6 +23509,15 @@ void ue_cap_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_cap_info_ies_s& ue_cap_info_s::crit_exts_c_::set_ue_cap_info() +{ + set(types::ue_cap_info); + return c; +} +void ue_cap_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22383,7 +23566,7 @@ SRSASN_CODE ue_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_cap_info_s::crit_exts_c_::types_opts::to_string() const +const char* ue_cap_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ueCapabilityInformation", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ue_cap_info_s::crit_exts_c_::types"); @@ -22414,6 +23597,15 @@ void ul_info_transfer_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_info_transfer_ies_s& ul_info_transfer_s::crit_exts_c_::set_ul_info_transfer() +{ + set(types::ul_info_transfer); + return c; +} +void ul_info_transfer_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22462,7 +23654,7 @@ SRSASN_CODE ul_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_info_transfer_s::crit_exts_c_::types_opts::to_string() const +const char* ul_info_transfer_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"ulInformationTransfer", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ul_info_transfer_s::crit_exts_c_::types"); @@ -22493,6 +23685,15 @@ void ul_info_transfer_mrdc_s::crit_exts_c_::set(types::options e) { type_ = e; } +ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_& ul_info_transfer_mrdc_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ul_info_transfer_mrdc_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ul_info_transfer_mrdc_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22545,6 +23746,23 @@ void ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ul_info_transfer_mrdc_ies_s& ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::set_ul_info_transfer_mrdc() +{ + set(types::ul_info_transfer_mrdc); + return c; +} +void ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -22605,13 +23823,13 @@ SRSASN_CODE ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"ulInformationTransferMRDC", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ul_info_transfer_mrdc_s::crit_exts_c_::c1_c_::types"); } -std::string ul_info_transfer_mrdc_s::crit_exts_c_::types_opts::to_string() const +const char* ul_info_transfer_mrdc_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ul_info_transfer_mrdc_s::crit_exts_c_::types"); @@ -22627,6 +23845,15 @@ void ul_dcch_msg_type_c::set(types::options e) { type_ = e; } +ul_dcch_msg_type_c::c1_c_& ul_dcch_msg_type_c::set_c1() +{ + set(types::c1); + return c; +} +void ul_dcch_msg_type_c::set_msg_class_ext() +{ + set(types::msg_class_ext); +} void ul_dcch_msg_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -22910,6 +24137,86 @@ ul_dcch_msg_type_c::c1_c_& ul_dcch_msg_type_c::c1_c_::operator=(const ul_dcch_ms return *this; } +meas_report_s& ul_dcch_msg_type_c::c1_c_::set_meas_report() +{ + set(types::meas_report); + return c.get(); +} +rrc_recfg_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_recfg_complete() +{ + set(types::rrc_recfg_complete); + return c.get(); +} +rrc_setup_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_setup_complete() +{ + set(types::rrc_setup_complete); + return c.get(); +} +rrc_reest_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_reest_complete() +{ + set(types::rrc_reest_complete); + return c.get(); +} +rrc_resume_complete_s& ul_dcch_msg_type_c::c1_c_::set_rrc_resume_complete() +{ + set(types::rrc_resume_complete); + return c.get(); +} +security_mode_complete_s& ul_dcch_msg_type_c::c1_c_::set_security_mode_complete() +{ + set(types::security_mode_complete); + return c.get(); +} +security_mode_fail_s& ul_dcch_msg_type_c::c1_c_::set_security_mode_fail() +{ + set(types::security_mode_fail); + return c.get(); +} +ul_info_transfer_s& ul_dcch_msg_type_c::c1_c_::set_ul_info_transfer() +{ + set(types::ul_info_transfer); + return c.get(); +} +location_meas_ind_s& ul_dcch_msg_type_c::c1_c_::set_location_meas_ind() +{ + set(types::location_meas_ind); + return c.get(); +} +ue_cap_info_s& ul_dcch_msg_type_c::c1_c_::set_ue_cap_info() +{ + set(types::ue_cap_info); + return c.get(); +} +counter_check_resp_s& ul_dcch_msg_type_c::c1_c_::set_counter_check_resp() +{ + set(types::counter_check_resp); + return c.get(); +} +ueassist_info_s& ul_dcch_msg_type_c::c1_c_::set_ue_assist_info() +{ + set(types::ue_assist_info); + return c.get(); +} +fail_info_s& ul_dcch_msg_type_c::c1_c_::set_fail_info() +{ + set(types::fail_info); + return c.get(); +} +ul_info_transfer_mrdc_s& ul_dcch_msg_type_c::c1_c_::set_ul_info_transfer_mrdc() +{ + set(types::ul_info_transfer_mrdc); + return c.get(); +} +scg_fail_info_s& ul_dcch_msg_type_c::c1_c_::set_scg_fail_info() +{ + set(types::scg_fail_info); + return c.get(); +} +scg_fail_info_eutra_s& ul_dcch_msg_type_c::c1_c_::set_scg_fail_info_eutra() +{ + set(types::scg_fail_info_eutra); + return c.get(); +} void ul_dcch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -23102,7 +24409,7 @@ SRSASN_CODE ul_dcch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_dcch_msg_type_c::c1_c_::types_opts::to_string() const +const char* ul_dcch_msg_type_c::c1_c_::types_opts::to_string() const { static const char* options[] = {"measurementReport", "rrcReconfigurationComplete", @@ -23123,7 +24430,7 @@ std::string ul_dcch_msg_type_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 16, value, "ul_dcch_msg_type_c::c1_c_::types"); } -std::string ul_dcch_msg_type_c::types_opts::to_string() const +const char* ul_dcch_msg_type_c::types_opts::to_string() const { static const char* options[] = {"c1", "messageClassExtension"}; return convert_enum_idx(options, 2, value, "ul_dcch_msg_type_c::types"); @@ -23408,6 +24715,26 @@ csi_rs_res_map_s::freq_domain_alloc_c_::operator=(const csi_rs_res_map_s::freq_d return *this; } +fixed_bitstring<4>& csi_rs_res_map_s::freq_domain_alloc_c_::set_row1() +{ + set(types::row1); + return c.get >(); +} +fixed_bitstring<12>& csi_rs_res_map_s::freq_domain_alloc_c_::set_row2() +{ + set(types::row2); + return c.get >(); +} +fixed_bitstring<3>& csi_rs_res_map_s::freq_domain_alloc_c_::set_row4() +{ + set(types::row4); + return c.get >(); +} +fixed_bitstring<6>& csi_rs_res_map_s::freq_domain_alloc_c_::set_other() +{ + set(types::other); + return c.get >(); +} void csi_rs_res_map_s::freq_domain_alloc_c_::to_json(json_writer& j) const { j.start_obj(); @@ -23476,7 +24803,7 @@ SRSASN_CODE csi_rs_res_map_s::freq_domain_alloc_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::to_string() const +const char* csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::to_string() const { static const char* options[] = {"row1", "row2", "row4", "other"}; return convert_enum_idx(options, 4, value, "csi_rs_res_map_s::freq_domain_alloc_c_::types"); @@ -23487,7 +24814,7 @@ uint8_t csi_rs_res_map_s::freq_domain_alloc_c_::types_opts::to_number() const return map_enum_number(options, 3, value, "csi_rs_res_map_s::freq_domain_alloc_c_::types"); } -std::string csi_rs_res_map_s::nrof_ports_opts::to_string() const +const char* csi_rs_res_map_s::nrof_ports_opts::to_string() const { static const char* options[] = {"p1", "p2", "p4", "p8", "p12", "p16", "p24", "p32"}; return convert_enum_idx(options, 8, value, "csi_rs_res_map_s::nrof_ports_e_"); @@ -23498,7 +24825,7 @@ uint8_t csi_rs_res_map_s::nrof_ports_opts::to_number() const return map_enum_number(options, 8, value, "csi_rs_res_map_s::nrof_ports_e_"); } -std::string csi_rs_res_map_s::cdm_type_opts::to_string() const +const char* csi_rs_res_map_s::cdm_type_opts::to_string() const { static const char* options[] = {"noCDM", "fd-CDM2", "cdm4-FD2-TD2", "cdm8-FD2-TD4"}; return convert_enum_idx(options, 4, value, "csi_rs_res_map_s::cdm_type_e_"); @@ -23522,6 +24849,23 @@ void csi_rs_res_map_s::density_c_::set(types::options e) { type_ = e; } +csi_rs_res_map_s::density_c_::dot5_e_& csi_rs_res_map_s::density_c_::set_dot5() +{ + set(types::dot5); + return c; +} +void csi_rs_res_map_s::density_c_::set_one() +{ + set(types::one); +} +void csi_rs_res_map_s::density_c_::set_three() +{ + set(types::three); +} +void csi_rs_res_map_s::density_c_::set_spare() +{ + set(types::spare); +} void csi_rs_res_map_s::density_c_::to_json(json_writer& j) const { j.start_obj(); @@ -23581,13 +24925,13 @@ SRSASN_CODE csi_rs_res_map_s::density_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_rs_res_map_s::density_c_::dot5_opts::to_string() const +const char* csi_rs_res_map_s::density_c_::dot5_opts::to_string() const { static const char* options[] = {"evenPRBs", "oddPRBs"}; return convert_enum_idx(options, 2, value, "csi_rs_res_map_s::density_c_::dot5_e_"); } -std::string csi_rs_res_map_s::density_c_::types_opts::to_string() const +const char* csi_rs_res_map_s::density_c_::types_opts::to_string() const { static const char* options[] = {"dot5", "one", "three", "spare"}; return convert_enum_idx(options, 4, value, "csi_rs_res_map_s::density_c_::types"); @@ -23709,6 +25053,71 @@ csi_res_periodicity_and_offset_c::operator=(const csi_res_periodicity_and_offset return *this; } +uint8_t& csi_res_periodicity_and_offset_c::set_slots4() +{ + set(types::slots4); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots5() +{ + set(types::slots5); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots8() +{ + set(types::slots8); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots10() +{ + set(types::slots10); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots16() +{ + set(types::slots16); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots20() +{ + set(types::slots20); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots32() +{ + set(types::slots32); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots40() +{ + set(types::slots40); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots64() +{ + set(types::slots64); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots80() +{ + set(types::slots80); + return c.get(); +} +uint8_t& csi_res_periodicity_and_offset_c::set_slots160() +{ + set(types::slots160); + return c.get(); +} +uint16_t& csi_res_periodicity_and_offset_c::set_slots320() +{ + set(types::slots320); + return c.get(); +} +uint16_t& csi_res_periodicity_and_offset_c::set_slots640() +{ + set(types::slots640); + return c.get(); +} void csi_res_periodicity_and_offset_c::to_json(json_writer& j) const { j.start_obj(); @@ -23858,7 +25267,7 @@ SRSASN_CODE csi_res_periodicity_and_offset_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_res_periodicity_and_offset_c::types_opts::to_string() const +const char* csi_res_periodicity_and_offset_c::types_opts::to_string() const { static const char* options[] = {"slots4", "slots5", @@ -23977,7 +25386,7 @@ void ptrs_dl_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string ptrs_dl_cfg_s::res_elem_offset_opts::to_string() const +const char* ptrs_dl_cfg_s::res_elem_offset_opts::to_string() const { static const char* options[] = {"offset01", "offset10", "offset11"}; return convert_enum_idx(options, 3, value, "ptrs_dl_cfg_s::res_elem_offset_e_"); @@ -23987,7 +25396,7 @@ float ptrs_dl_cfg_s::res_elem_offset_opts::to_number() const static const float options[] = {0.1, 1.0, 1.1}; return map_enum_number(options, 3, value, "ptrs_dl_cfg_s::res_elem_offset_e_"); } -std::string ptrs_dl_cfg_s::res_elem_offset_opts::to_number_string() const +const char* ptrs_dl_cfg_s::res_elem_offset_opts::to_number_string() const { static const char* options[] = {"0.1", "1.0", "1.1"}; return convert_enum_idx(options, 3, value, "ptrs_dl_cfg_s::res_elem_offset_e_"); @@ -24086,6 +25495,16 @@ qcl_info_s::ref_sig_c_& qcl_info_s::ref_sig_c_::operator=(const qcl_info_s::ref_ return *this; } +uint8_t& qcl_info_s::ref_sig_c_::set_csi_rs() +{ + set(types::csi_rs); + return c.get(); +} +uint8_t& qcl_info_s::ref_sig_c_::set_ssb() +{ + set(types::ssb); + return c.get(); +} void qcl_info_s::ref_sig_c_::to_json(json_writer& j) const { j.start_obj(); @@ -24136,13 +25555,13 @@ SRSASN_CODE qcl_info_s::ref_sig_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string qcl_info_s::ref_sig_c_::types_opts::to_string() const +const char* qcl_info_s::ref_sig_c_::types_opts::to_string() const { static const char* options[] = {"csi-rs", "ssb"}; return convert_enum_idx(options, 2, value, "qcl_info_s::ref_sig_c_::types"); } -std::string qcl_info_s::qcl_type_opts::to_string() const +const char* qcl_info_s::qcl_type_opts::to_string() const { static const char* options[] = {"typeA", "typeB", "typeC", "typeD"}; return convert_enum_idx(options, 4, value, "qcl_info_s::qcl_type_e_"); @@ -24224,7 +25643,7 @@ void dmrs_dl_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string dmrs_dl_cfg_s::dmrs_add_position_opts::to_string() const +const char* dmrs_dl_cfg_s::dmrs_add_position_opts::to_string() const { static const char* options[] = {"pos0", "pos1", "pos3"}; return convert_enum_idx(options, 3, value, "dmrs_dl_cfg_s::dmrs_add_position_e_"); @@ -24270,7 +25689,7 @@ void dl_preemption_s::to_json(json_writer& j) const j.end_obj(); } -std::string dl_preemption_s::time_freq_set_opts::to_string() const +const char* dl_preemption_s::time_freq_set_opts::to_string() const { static const char* options[] = {"set0", "set1"}; return convert_enum_idx(options, 2, value, "dl_preemption_s::time_freq_set_e_"); @@ -24407,7 +25826,7 @@ void radio_link_monitoring_rs_s::to_json(json_writer& j) const j.end_obj(); } -std::string radio_link_monitoring_rs_s::purpose_opts::to_string() const +const char* radio_link_monitoring_rs_s::purpose_opts::to_string() const { static const char* options[] = {"beamFailure", "rlf", "both"}; return convert_enum_idx(options, 3, value, "radio_link_monitoring_rs_s::purpose_e_"); @@ -24458,6 +25877,16 @@ radio_link_monitoring_rs_s::detection_res_c_::operator=(const radio_link_monitor return *this; } +uint8_t& radio_link_monitoring_rs_s::detection_res_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& radio_link_monitoring_rs_s::detection_res_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} void radio_link_monitoring_rs_s::detection_res_c_::to_json(json_writer& j) const { j.start_obj(); @@ -24508,7 +25937,7 @@ SRSASN_CODE radio_link_monitoring_rs_s::detection_res_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string radio_link_monitoring_rs_s::detection_res_c_::types_opts::to_string() const +const char* radio_link_monitoring_rs_s::detection_res_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index"}; return convert_enum_idx(options, 2, value, "radio_link_monitoring_rs_s::detection_res_c_::types"); @@ -24620,6 +26049,16 @@ rate_match_pattern_s::pattern_type_c_::operator=(const rate_match_pattern_s::pat return *this; } +rate_match_pattern_s::pattern_type_c_::bitmaps_s_& rate_match_pattern_s::pattern_type_c_::set_bitmaps() +{ + set(types::bitmaps); + return c.get(); +} +uint8_t& rate_match_pattern_s::pattern_type_c_::set_ctrl_res_set() +{ + set(types::ctrl_res_set); + return c.get(); +} void rate_match_pattern_s::pattern_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -24761,6 +26200,16 @@ rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::oper return *this; } +fixed_bitstring<14>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::set_one_slot() +{ + set(types::one_slot); + return c.get >(); +} +fixed_bitstring<28>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::set_two_slots() +{ + set(types::two_slots); + return c.get >(); +} void rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::to_json(json_writer& j) const { j.start_obj(); @@ -24811,7 +26260,7 @@ SRSASN_CODE rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_bl return SRSASN_SUCCESS; } -std::string rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::types_opts::to_string() const +const char* rate_match_pattern_s::pattern_type_c_::bitmaps_s_::symbols_in_res_block_c_::types_opts::to_string() const { static const char* options[] = {"oneSlot", "twoSlots"}; return convert_enum_idx( @@ -24954,6 +26403,41 @@ rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::o return *this; } +fixed_bitstring<2>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n2() +{ + set(types::n2); + return c.get >(); +} +fixed_bitstring<4>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n4() +{ + set(types::n4); + return c.get >(); +} +fixed_bitstring<5>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n5() +{ + set(types::n5); + return c.get >(); +} +fixed_bitstring<8>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n8() +{ + set(types::n8); + return c.get >(); +} +fixed_bitstring<10>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n10() +{ + set(types::n10); + return c.get >(); +} +fixed_bitstring<20>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n20() +{ + set(types::n20); + return c.get >(); +} +fixed_bitstring<40>& rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::set_n40() +{ + set(types::n40); + return c.get >(); +} void rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::to_json(json_writer& j) const { j.start_obj(); @@ -25049,7 +26533,7 @@ SRSASN_CODE rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_p return SRSASN_SUCCESS; } -std::string rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::types_opts::to_string() const +const char* rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::types_opts::to_string() const { static const char* options[] = {"n2", "n4", "n5", "n8", "n10", "n20", "n40"}; return convert_enum_idx( @@ -25062,13 +26546,13 @@ uint8_t rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_patte options, 7, value, "rate_match_pattern_s::pattern_type_c_::bitmaps_s_::periodicity_and_pattern_c_::types"); } -std::string rate_match_pattern_s::pattern_type_c_::types_opts::to_string() const +const char* rate_match_pattern_s::pattern_type_c_::types_opts::to_string() const { static const char* options[] = {"bitmaps", "controlResourceSet"}; return convert_enum_idx(options, 2, value, "rate_match_pattern_s::pattern_type_c_::types"); } -std::string rate_match_pattern_s::dummy_opts::to_string() const +const char* rate_match_pattern_s::dummy_opts::to_string() const { static const char* options[] = {"dynamic", "semiStatic"}; return convert_enum_idx(options, 2, value, "rate_match_pattern_s::dummy_e_"); @@ -25118,6 +26602,16 @@ rate_match_pattern_group_item_c_::operator=(const rate_match_pattern_group_item_ return *this; } +uint8_t& rate_match_pattern_group_item_c_::set_cell_level() +{ + set(types::cell_level); + return c.get(); +} +uint8_t& rate_match_pattern_group_item_c_::set_bwp_level() +{ + set(types::bwp_level); + return c.get(); +} void rate_match_pattern_group_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -25168,7 +26662,7 @@ SRSASN_CODE rate_match_pattern_group_item_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rate_match_pattern_group_item_c_::types_opts::to_string() const +const char* rate_match_pattern_group_item_c_::types_opts::to_string() const { static const char* options[] = {"cellLevel", "bwpLevel"}; return convert_enum_idx(options, 2, value, "rate_match_pattern_group_item_c_::types"); @@ -25803,7 +27297,7 @@ void pdsch_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_cfg_s::vrb_to_prb_interleaver_opts::to_string() const +const char* pdsch_cfg_s::vrb_to_prb_interleaver_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::vrb_to_prb_interleaver_e_"); @@ -25814,7 +27308,7 @@ uint8_t pdsch_cfg_s::vrb_to_prb_interleaver_opts::to_number() const return map_enum_number(options, 2, value, "pdsch_cfg_s::vrb_to_prb_interleaver_e_"); } -std::string pdsch_cfg_s::res_alloc_opts::to_string() const +const char* pdsch_cfg_s::res_alloc_opts::to_string() const { static const char* options[] = {"resourceAllocationType0", "resourceAllocationType1", "dynamicSwitch"}; return convert_enum_idx(options, 3, value, "pdsch_cfg_s::res_alloc_e_"); @@ -25825,7 +27319,7 @@ uint8_t pdsch_cfg_s::res_alloc_opts::to_number() const return map_enum_number(options, 2, value, "pdsch_cfg_s::res_alloc_e_"); } -std::string pdsch_cfg_s::pdsch_aggregation_factor_opts::to_string() const +const char* pdsch_cfg_s::pdsch_aggregation_factor_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8"}; return convert_enum_idx(options, 3, value, "pdsch_cfg_s::pdsch_aggregation_factor_e_"); @@ -25836,7 +27330,7 @@ uint8_t pdsch_cfg_s::pdsch_aggregation_factor_opts::to_number() const return map_enum_number(options, 3, value, "pdsch_cfg_s::pdsch_aggregation_factor_e_"); } -std::string pdsch_cfg_s::rbg_size_opts::to_string() const +const char* pdsch_cfg_s::rbg_size_opts::to_string() const { static const char* options[] = {"config1", "config2"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::rbg_size_e_"); @@ -25847,7 +27341,7 @@ uint8_t pdsch_cfg_s::rbg_size_opts::to_number() const return map_enum_number(options, 2, value, "pdsch_cfg_s::rbg_size_e_"); } -std::string pdsch_cfg_s::mcs_table_opts::to_string() const +const char* pdsch_cfg_s::mcs_table_opts::to_string() const { static const char* options[] = {"qam256", "qam64LowSE"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::mcs_table_e_"); @@ -25858,7 +27352,7 @@ uint16_t pdsch_cfg_s::mcs_table_opts::to_number() const return map_enum_number(options, 2, value, "pdsch_cfg_s::mcs_table_e_"); } -std::string pdsch_cfg_s::max_nrof_code_words_sched_by_dci_opts::to_string() const +const char* pdsch_cfg_s::max_nrof_code_words_sched_by_dci_opts::to_string() const { static const char* options[] = {"n1", "n2"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::max_nrof_code_words_sched_by_dci_e_"); @@ -25937,6 +27431,16 @@ pdsch_cfg_s::prb_bundling_type_c_::operator=(const pdsch_cfg_s::prb_bundling_typ return *this; } +pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_& pdsch_cfg_s::prb_bundling_type_c_::set_static_bundling() +{ + set(types::static_bundling); + return c.get(); +} +pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_& pdsch_cfg_s::prb_bundling_type_c_::set_dynamic_bundling() +{ + set(types::dynamic_bundling); + return c.get(); +} void pdsch_cfg_s::prb_bundling_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -26020,7 +27524,7 @@ SRSASN_CODE pdsch_cfg_s::prb_bundling_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::to_string() const +const char* pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts::to_string() const { static const char* options[] = {"n4", "wideband"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_e_"); @@ -26031,14 +27535,14 @@ uint8_t pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_opts: return map_enum_number(options, 1, value, "pdsch_cfg_s::prb_bundling_type_c_::static_bundling_s_::bundle_size_e_"); } -std::string pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set1_opts::to_string() const +const char* pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set1_opts::to_string() const { static const char* options[] = {"n4", "wideband", "n2-wideband", "n4-wideband"}; return convert_enum_idx( options, 4, value, "pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set1_e_"); } -std::string pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set2_opts::to_string() const +const char* pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set2_opts::to_string() const { static const char* options[] = {"n4", "wideband"}; return convert_enum_idx( @@ -26051,7 +27555,7 @@ uint8_t pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set2 options, 1, value, "pdsch_cfg_s::prb_bundling_type_c_::dynamic_bundling_s_::bundle_size_set2_e_"); } -std::string pdsch_cfg_s::prb_bundling_type_c_::types_opts::to_string() const +const char* pdsch_cfg_s::prb_bundling_type_c_::types_opts::to_string() const { static const char* options[] = {"staticBundling", "dynamicBundling"}; return convert_enum_idx(options, 2, value, "pdsch_cfg_s::prb_bundling_type_c_::types"); @@ -26130,7 +27634,7 @@ void radio_link_monitoring_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string radio_link_monitoring_cfg_s::beam_fail_instance_max_count_opts::to_string() const +const char* radio_link_monitoring_cfg_s::beam_fail_instance_max_count_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "radio_link_monitoring_cfg_s::beam_fail_instance_max_count_e_"); @@ -26141,7 +27645,7 @@ uint8_t radio_link_monitoring_cfg_s::beam_fail_instance_max_count_opts::to_numbe return map_enum_number(options, 8, value, "radio_link_monitoring_cfg_s::beam_fail_instance_max_count_e_"); } -std::string radio_link_monitoring_cfg_s::beam_fail_detection_timer_opts::to_string() const +const char* radio_link_monitoring_cfg_s::beam_fail_detection_timer_opts::to_string() const { static const char* options[] = {"pbfd1", "pbfd2", "pbfd3", "pbfd4", "pbfd5", "pbfd6", "pbfd8", "pbfd10"}; return convert_enum_idx(options, 8, value, "radio_link_monitoring_cfg_s::beam_fail_detection_timer_e_"); @@ -26195,7 +27699,7 @@ void sps_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string sps_cfg_s::periodicity_opts::to_string() const +const char* sps_cfg_s::periodicity_opts::to_string() const { static const char* options[] = {"ms10", "ms20", @@ -26339,7 +27843,7 @@ void bwp_dl_s::to_json(json_writer& j) const } // Alpha ::= ENUMERATED -std::string alpha_opts::to_string() const +const char* alpha_opts::to_string() const { static const char* options[] = {"alpha0", "alpha04", "alpha05", "alpha06", "alpha07", "alpha08", "alpha09", "alpha1"}; return convert_enum_idx(options, 8, value, "alpha_e"); @@ -26349,7 +27853,7 @@ float alpha_opts::to_number() const static const float options[] = {0.0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}; return map_enum_number(options, 8, value, "alpha_e"); } -std::string alpha_opts::to_number_string() const +const char* alpha_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1"}; return convert_enum_idx(options, 8, value, "alpha_e"); @@ -26638,7 +28142,7 @@ void ptrs_ul_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string ptrs_ul_cfg_s::transform_precoder_disabled_s_::max_nrof_ports_opts::to_string() const +const char* ptrs_ul_cfg_s::transform_precoder_disabled_s_::max_nrof_ports_opts::to_string() const { static const char* options[] = {"n1", "n2"}; return convert_enum_idx(options, 2, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::max_nrof_ports_e_"); @@ -26649,7 +28153,7 @@ uint8_t ptrs_ul_cfg_s::transform_precoder_disabled_s_::max_nrof_ports_opts::to_n return map_enum_number(options, 2, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::max_nrof_ports_e_"); } -std::string ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_opts::to_string() const +const char* ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_opts::to_string() const { static const char* options[] = {"offset01", "offset10", "offset11"}; return convert_enum_idx(options, 3, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_e_"); @@ -26659,13 +28163,13 @@ float ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_opts::to_nu static const float options[] = {0.1, 1.0, 1.1}; return map_enum_number(options, 3, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_e_"); } -std::string ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_opts::to_number_string() const +const char* ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_opts::to_number_string() const { static const char* options[] = {"0.1", "1.0", "1.1"}; return convert_enum_idx(options, 3, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::res_elem_offset_e_"); } -std::string ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_opts::to_string() const +const char* ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_opts::to_string() const { static const char* options[] = {"p00", "p01", "p10", "p11"}; return convert_enum_idx(options, 4, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_e_"); @@ -26675,14 +28179,14 @@ float ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_opts::to_number() static const float options[] = {0.0, 0.1, 1.0, 1.1}; return map_enum_number(options, 4, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_e_"); } -std::string ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_opts::to_number_string() const +const char* ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_opts::to_number_string() const { static const char* options[] = {"0.0", "0.1", "1.0", "1.1"}; return convert_enum_idx(options, 4, value, "ptrs_ul_cfg_s::transform_precoder_disabled_s_::ptrs_pwr_e_"); } // PUCCH-MaxCodeRate ::= ENUMERATED -std::string pucch_max_code_rate_opts::to_string() const +const char* pucch_max_code_rate_opts::to_string() const { static const char* options[] = { "zeroDot08", "zeroDot15", "zeroDot25", "zeroDot35", "zeroDot45", "zeroDot60", "zeroDot80"}; @@ -26693,7 +28197,7 @@ float pucch_max_code_rate_opts::to_number() const static const float options[] = {0.08, 0.15, 0.25, 0.35, 0.45, 0.6, 0.8}; return map_enum_number(options, 7, value, "pucch_max_code_rate_e"); } -std::string pucch_max_code_rate_opts::to_number_string() const +const char* pucch_max_code_rate_opts::to_number_string() const { static const char* options[] = {"0.08", "0.15", "0.25", "0.35", "0.45", "0.60", "0.80"}; return convert_enum_idx(options, 7, value, "pucch_max_code_rate_e"); @@ -26767,6 +28271,16 @@ pucch_pathloss_ref_rs_s::ref_sig_c_::operator=(const pucch_pathloss_ref_rs_s::re return *this; } +uint8_t& pucch_pathloss_ref_rs_s::ref_sig_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& pucch_pathloss_ref_rs_s::ref_sig_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} void pucch_pathloss_ref_rs_s::ref_sig_c_::to_json(json_writer& j) const { j.start_obj(); @@ -26817,7 +28331,7 @@ SRSASN_CODE pucch_pathloss_ref_rs_s::ref_sig_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pucch_pathloss_ref_rs_s::ref_sig_c_::types_opts::to_string() const +const char* pucch_pathloss_ref_rs_s::ref_sig_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index"}; return convert_enum_idx(options, 2, value, "pucch_pathloss_ref_rs_s::ref_sig_c_::types"); @@ -26959,7 +28473,7 @@ void pucch_format4_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_format4_s::occ_len_opts::to_string() const +const char* pucch_format4_s::occ_len_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "pucch_format4_s::occ_len_e_"); @@ -26970,7 +28484,7 @@ uint8_t pucch_format4_s::occ_len_opts::to_number() const return map_enum_number(options, 2, value, "pucch_format4_s::occ_len_e_"); } -std::string pucch_format4_s::occ_idx_opts::to_string() const +const char* pucch_format4_s::occ_idx_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3"}; return convert_enum_idx(options, 4, value, "pucch_format4_s::occ_idx_e_"); @@ -27049,6 +28563,16 @@ pusch_pathloss_ref_rs_s::ref_sig_c_::operator=(const pusch_pathloss_ref_rs_s::re return *this; } +uint8_t& pusch_pathloss_ref_rs_s::ref_sig_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& pusch_pathloss_ref_rs_s::ref_sig_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} void pusch_pathloss_ref_rs_s::ref_sig_c_::to_json(json_writer& j) const { j.start_obj(); @@ -27099,7 +28623,7 @@ SRSASN_CODE pusch_pathloss_ref_rs_s::ref_sig_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pusch_pathloss_ref_rs_s::ref_sig_c_::types_opts::to_string() const +const char* pusch_pathloss_ref_rs_s::ref_sig_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index"}; return convert_enum_idx(options, 2, value, "pusch_pathloss_ref_rs_s::ref_sig_c_::types"); @@ -27134,7 +28658,7 @@ void sri_pusch_pwr_ctrl_s::to_json(json_writer& j) const j.end_obj(); } -std::string sri_pusch_pwr_ctrl_s::sri_pusch_closed_loop_idx_opts::to_string() const +const char* sri_pusch_pwr_ctrl_s::sri_pusch_closed_loop_idx_opts::to_string() const { static const char* options[] = {"i0", "i1"}; return convert_enum_idx(options, 2, value, "sri_pusch_pwr_ctrl_s::sri_pusch_closed_loop_idx_e_"); @@ -27277,6 +28801,90 @@ srs_periodicity_and_offset_c& srs_periodicity_and_offset_c::operator=(const srs_ return *this; } +void srs_periodicity_and_offset_c::set_sl1() +{ + set(types::sl1); +} +uint8_t& srs_periodicity_and_offset_c::set_sl2() +{ + set(types::sl2); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl4() +{ + set(types::sl4); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl5() +{ + set(types::sl5); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl8() +{ + set(types::sl8); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl10() +{ + set(types::sl10); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl16() +{ + set(types::sl16); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl20() +{ + set(types::sl20); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl32() +{ + set(types::sl32); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl40() +{ + set(types::sl40); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl64() +{ + set(types::sl64); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl80() +{ + set(types::sl80); + return c.get(); +} +uint8_t& srs_periodicity_and_offset_c::set_sl160() +{ + set(types::sl160); + return c.get(); +} +uint16_t& srs_periodicity_and_offset_c::set_sl320() +{ + set(types::sl320); + return c.get(); +} +uint16_t& srs_periodicity_and_offset_c::set_sl640() +{ + set(types::sl640); + return c.get(); +} +uint16_t& srs_periodicity_and_offset_c::set_sl1280() +{ + set(types::sl1280); + return c.get(); +} +uint16_t& srs_periodicity_and_offset_c::set_sl2560() +{ + set(types::sl2560); + return c.get(); +} void srs_periodicity_and_offset_c::to_json(json_writer& j) const { j.start_obj(); @@ -27459,7 +29067,7 @@ SRSASN_CODE srs_periodicity_and_offset_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srs_periodicity_and_offset_c::types_opts::to_string() const +const char* srs_periodicity_and_offset_c::types_opts::to_string() const { static const char* options[] = {"sl1", "sl2", @@ -27592,6 +29200,21 @@ srs_spatial_relation_info_s::ref_sig_c_::operator=(const srs_spatial_relation_in return *this; } +uint8_t& srs_spatial_relation_info_s::ref_sig_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& srs_spatial_relation_info_s::ref_sig_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} +srs_spatial_relation_info_s::ref_sig_c_::srs_s_& srs_spatial_relation_info_s::ref_sig_c_::set_srs() +{ + set(types::srs); + return c.get(); +} void srs_spatial_relation_info_s::ref_sig_c_::to_json(json_writer& j) const { j.start_obj(); @@ -27657,7 +29280,7 @@ SRSASN_CODE srs_spatial_relation_info_s::ref_sig_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srs_spatial_relation_info_s::ref_sig_c_::types_opts::to_string() const +const char* srs_spatial_relation_info_s::ref_sig_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index", "srs"}; return convert_enum_idx(options, 3, value, "srs_spatial_relation_info_s::ref_sig_c_::types"); @@ -27731,6 +29354,16 @@ cg_uci_on_pusch_c& cg_uci_on_pusch_c::operator=(const cg_uci_on_pusch_c& other) return *this; } +cg_uci_on_pusch_c::dynamic_l_& cg_uci_on_pusch_c::set_dynamic_type() +{ + set(types::dynamic_type); + return c.get(); +} +beta_offsets_s& cg_uci_on_pusch_c::set_semi_static() +{ + set(types::semi_static); + return c.get(); +} void cg_uci_on_pusch_c::to_json(json_writer& j) const { j.start_obj(); @@ -27786,7 +29419,7 @@ SRSASN_CODE cg_uci_on_pusch_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cg_uci_on_pusch_c::types_opts::to_string() const +const char* cg_uci_on_pusch_c::types_opts::to_string() const { static const char* options[] = {"dynamic", "semiStatic"}; return convert_enum_idx(options, 2, value, "cg_uci_on_pusch_c::types"); @@ -27915,7 +29548,7 @@ void dmrs_ul_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string dmrs_ul_cfg_s::dmrs_add_position_opts::to_string() const +const char* dmrs_ul_cfg_s::dmrs_add_position_opts::to_string() const { static const char* options[] = {"pos0", "pos1", "pos3"}; return convert_enum_idx(options, 3, value, "dmrs_ul_cfg_s::dmrs_add_position_e_"); @@ -27994,6 +29627,16 @@ prach_res_ded_bfr_c& prach_res_ded_bfr_c::operator=(const prach_res_ded_bfr_c& o return *this; } +bfr_ssb_res_s& prach_res_ded_bfr_c::set_ssb() +{ + set(types::ssb); + return c.get(); +} +bfr_csirs_res_s& prach_res_ded_bfr_c::set_csi_rs() +{ + set(types::csi_rs); + return c.get(); +} void prach_res_ded_bfr_c::to_json(json_writer& j) const { j.start_obj(); @@ -28046,7 +29689,7 @@ SRSASN_CODE prach_res_ded_bfr_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string prach_res_ded_bfr_c::types_opts::to_string() const +const char* prach_res_ded_bfr_c::types_opts::to_string() const { static const char* options[] = {"ssb", "csi-RS"}; return convert_enum_idx(options, 2, value, "prach_res_ded_bfr_c::types"); @@ -28113,7 +29756,7 @@ void pucch_format_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pucch_format_cfg_s::nrof_slots_opts::to_string() const +const char* pucch_format_cfg_s::nrof_slots_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8"}; return convert_enum_idx(options, 3, value, "pucch_format_cfg_s::nrof_slots_e_"); @@ -28383,6 +30026,31 @@ pucch_res_s::format_c_& pucch_res_s::format_c_::operator=(const pucch_res_s::for return *this; } +pucch_format0_s& pucch_res_s::format_c_::set_format0() +{ + set(types::format0); + return c.get(); +} +pucch_format1_s& pucch_res_s::format_c_::set_format1() +{ + set(types::format1); + return c.get(); +} +pucch_format2_s& pucch_res_s::format_c_::set_format2() +{ + set(types::format2); + return c.get(); +} +pucch_format3_s& pucch_res_s::format_c_::set_format3() +{ + set(types::format3); + return c.get(); +} +pucch_format4_s& pucch_res_s::format_c_::set_format4() +{ + set(types::format4); + return c.get(); +} void pucch_res_s::format_c_::to_json(json_writer& j) const { j.start_obj(); @@ -28465,7 +30133,7 @@ SRSASN_CODE pucch_res_s::format_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pucch_res_s::format_c_::types_opts::to_string() const +const char* pucch_res_s::format_c_::types_opts::to_string() const { static const char* options[] = {"format0", "format1", "format2", "format3", "format4"}; return convert_enum_idx(options, 5, value, "pucch_res_s::format_c_::types"); @@ -28634,6 +30302,21 @@ pucch_spatial_relation_info_s::ref_sig_c_::operator=(const pucch_spatial_relatio return *this; } +uint8_t& pucch_spatial_relation_info_s::ref_sig_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& pucch_spatial_relation_info_s::ref_sig_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} +pucch_spatial_relation_info_s::ref_sig_c_::srs_s_& pucch_spatial_relation_info_s::ref_sig_c_::set_srs() +{ + set(types::srs); + return c.get(); +} void pucch_spatial_relation_info_s::ref_sig_c_::to_json(json_writer& j) const { j.start_obj(); @@ -28699,13 +30382,13 @@ SRSASN_CODE pucch_spatial_relation_info_s::ref_sig_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pucch_spatial_relation_info_s::ref_sig_c_::types_opts::to_string() const +const char* pucch_spatial_relation_info_s::ref_sig_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index", "srs"}; return convert_enum_idx(options, 3, value, "pucch_spatial_relation_info_s::ref_sig_c_::types"); } -std::string pucch_spatial_relation_info_s::closed_loop_idx_opts::to_string() const +const char* pucch_spatial_relation_info_s::closed_loop_idx_opts::to_string() const { static const char* options[] = {"i0", "i1"}; return convert_enum_idx(options, 2, value, "pucch_spatial_relation_info_s::closed_loop_idx_e_"); @@ -28882,7 +30565,7 @@ void ra_prioritization_s::to_json(json_writer& j) const j.end_obj(); } -std::string ra_prioritization_s::pwr_ramp_step_high_prio_opts::to_string() const +const char* ra_prioritization_s::pwr_ramp_step_high_prio_opts::to_string() const { static const char* options[] = {"dB0", "dB2", "dB4", "dB6"}; return convert_enum_idx(options, 4, value, "ra_prioritization_s::pwr_ramp_step_high_prio_e_"); @@ -28893,7 +30576,7 @@ uint8_t ra_prioritization_s::pwr_ramp_step_high_prio_opts::to_number() const return map_enum_number(options, 4, value, "ra_prioritization_s::pwr_ramp_step_high_prio_e_"); } -std::string ra_prioritization_s::scaling_factor_bi_opts::to_string() const +const char* ra_prioritization_s::scaling_factor_bi_opts::to_string() const { static const char* options[] = {"zero", "dot25", "dot5", "dot75"}; return convert_enum_idx(options, 4, value, "ra_prioritization_s::scaling_factor_bi_e_"); @@ -28998,7 +30681,7 @@ void srs_res_s::to_json(json_writer& j) const j.end_obj(); } -std::string srs_res_s::nrof_srs_ports_opts::to_string() const +const char* srs_res_s::nrof_srs_ports_opts::to_string() const { static const char* options[] = {"port1", "ports2", "ports4"}; return convert_enum_idx(options, 3, value, "srs_res_s::nrof_srs_ports_e_"); @@ -29009,7 +30692,7 @@ uint8_t srs_res_s::nrof_srs_ports_opts::to_number() const return map_enum_number(options, 3, value, "srs_res_s::nrof_srs_ports_e_"); } -std::string srs_res_s::ptrs_port_idx_opts::to_string() const +const char* srs_res_s::ptrs_port_idx_opts::to_string() const { static const char* options[] = {"n0", "n1"}; return convert_enum_idx(options, 2, value, "srs_res_s::ptrs_port_idx_e_"); @@ -29087,6 +30770,16 @@ srs_res_s::tx_comb_c_& srs_res_s::tx_comb_c_::operator=(const srs_res_s::tx_comb return *this; } +srs_res_s::tx_comb_c_::n2_s_& srs_res_s::tx_comb_c_::set_n2() +{ + set(types::n2); + return c.get(); +} +srs_res_s::tx_comb_c_::n4_s_& srs_res_s::tx_comb_c_::set_n4() +{ + set(types::n4); + return c.get(); +} void srs_res_s::tx_comb_c_::to_json(json_writer& j) const { j.start_obj(); @@ -29149,7 +30842,7 @@ SRSASN_CODE srs_res_s::tx_comb_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srs_res_s::tx_comb_c_::types_opts::to_string() const +const char* srs_res_s::tx_comb_c_::types_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "srs_res_s::tx_comb_c_::types"); @@ -29160,7 +30853,7 @@ uint8_t srs_res_s::tx_comb_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "srs_res_s::tx_comb_c_::types"); } -std::string srs_res_s::res_map_s_::nrof_symbols_opts::to_string() const +const char* srs_res_s::res_map_s_::nrof_symbols_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4"}; return convert_enum_idx(options, 3, value, "srs_res_s::res_map_s_::nrof_symbols_e_"); @@ -29171,7 +30864,7 @@ uint8_t srs_res_s::res_map_s_::nrof_symbols_opts::to_number() const return map_enum_number(options, 3, value, "srs_res_s::res_map_s_::nrof_symbols_e_"); } -std::string srs_res_s::res_map_s_::repeat_factor_opts::to_string() const +const char* srs_res_s::res_map_s_::repeat_factor_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4"}; return convert_enum_idx(options, 3, value, "srs_res_s::res_map_s_::repeat_factor_e_"); @@ -29182,7 +30875,7 @@ uint8_t srs_res_s::res_map_s_::repeat_factor_opts::to_number() const return map_enum_number(options, 3, value, "srs_res_s::res_map_s_::repeat_factor_e_"); } -std::string srs_res_s::group_or_seq_hop_opts::to_string() const +const char* srs_res_s::group_or_seq_hop_opts::to_string() const { static const char* options[] = {"neither", "groupHopping", "sequenceHopping"}; return convert_enum_idx(options, 3, value, "srs_res_s::group_or_seq_hop_e_"); @@ -29267,6 +30960,21 @@ srs_res_s::res_type_c_& srs_res_s::res_type_c_::operator=(const srs_res_s::res_t return *this; } +srs_res_s::res_type_c_::aperiodic_s_& srs_res_s::res_type_c_::set_aperiodic() +{ + set(types::aperiodic); + return c.get(); +} +srs_res_s::res_type_c_::semi_persistent_s_& srs_res_s::res_type_c_::set_semi_persistent() +{ + set(types::semi_persistent); + return c.get(); +} +srs_res_s::res_type_c_::periodic_s_& srs_res_s::res_type_c_::set_periodic() +{ + set(types::periodic); + return c.get(); +} void srs_res_s::res_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -29340,7 +31048,7 @@ SRSASN_CODE srs_res_s::res_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srs_res_s::res_type_c_::types_opts::to_string() const +const char* srs_res_s::res_type_c_::types_opts::to_string() const { static const char* options[] = {"aperiodic", "semi-persistent", "periodic"}; return convert_enum_idx(options, 3, value, "srs_res_s::res_type_c_::types"); @@ -29516,6 +31224,21 @@ srs_res_set_s::res_type_c_& srs_res_set_s::res_type_c_::operator=(const srs_res_ return *this; } +srs_res_set_s::res_type_c_::aperiodic_s_& srs_res_set_s::res_type_c_::set_aperiodic() +{ + set(types::aperiodic); + return c.get(); +} +srs_res_set_s::res_type_c_::semi_persistent_s_& srs_res_set_s::res_type_c_::set_semi_persistent() +{ + set(types::semi_persistent); + return c.get(); +} +srs_res_set_s::res_type_c_::periodic_s_& srs_res_set_s::res_type_c_::set_periodic() +{ + set(types::periodic); + return c.get(); +} void srs_res_set_s::res_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -29685,13 +31408,13 @@ void srs_res_set_s::res_type_c_::aperiodic_s_::to_json(json_writer& j) const j.end_obj(); } -std::string srs_res_set_s::res_type_c_::types_opts::to_string() const +const char* srs_res_set_s::res_type_c_::types_opts::to_string() const { static const char* options[] = {"aperiodic", "semi-persistent", "periodic"}; return convert_enum_idx(options, 3, value, "srs_res_set_s::res_type_c_::types"); } -std::string srs_res_set_s::usage_opts::to_string() const +const char* srs_res_set_s::usage_opts::to_string() const { static const char* options[] = {"beamManagement", "codebook", "nonCodebook", "antennaSwitching"}; return convert_enum_idx(options, 4, value, "srs_res_set_s::usage_e_"); @@ -29741,6 +31464,16 @@ srs_res_set_s::pathloss_ref_rs_c_::operator=(const srs_res_set_s::pathloss_ref_r return *this; } +uint8_t& srs_res_set_s::pathloss_ref_rs_c_::set_ssb_idx() +{ + set(types::ssb_idx); + return c.get(); +} +uint8_t& srs_res_set_s::pathloss_ref_rs_c_::set_csi_rs_idx() +{ + set(types::csi_rs_idx); + return c.get(); +} void srs_res_set_s::pathloss_ref_rs_c_::to_json(json_writer& j) const { j.start_obj(); @@ -29791,13 +31524,13 @@ SRSASN_CODE srs_res_set_s::pathloss_ref_rs_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string srs_res_set_s::pathloss_ref_rs_c_::types_opts::to_string() const +const char* srs_res_set_s::pathloss_ref_rs_c_::types_opts::to_string() const { static const char* options[] = {"ssb-Index", "csi-RS-Index"}; return convert_enum_idx(options, 2, value, "srs_res_set_s::pathloss_ref_rs_c_::types"); } -std::string srs_res_set_s::srs_pwr_ctrl_adjustment_states_opts::to_string() const +const char* srs_res_set_s::srs_pwr_ctrl_adjustment_states_opts::to_string() const { static const char* options[] = {"sameAsFci2", "separateClosedLoop"}; return convert_enum_idx(options, 2, value, "srs_res_set_s::srs_pwr_ctrl_adjustment_states_e_"); @@ -29973,6 +31706,78 @@ sched_request_res_cfg_s::periodicity_and_offset_c_& sched_request_res_cfg_s::per return *this; } +void sched_request_res_cfg_s::periodicity_and_offset_c_::set_sym2() +{ + set(types::sym2); +} +void sched_request_res_cfg_s::periodicity_and_offset_c_::set_sym6or7() +{ + set(types::sym6or7); +} +void sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl1() +{ + set(types::sl1); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl2() +{ + set(types::sl2); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl4() +{ + set(types::sl4); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl5() +{ + set(types::sl5); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl8() +{ + set(types::sl8); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl10() +{ + set(types::sl10); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl16() +{ + set(types::sl16); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl20() +{ + set(types::sl20); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl40() +{ + set(types::sl40); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl80() +{ + set(types::sl80); + return c.get(); +} +uint8_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl160() +{ + set(types::sl160); + return c.get(); +} +uint16_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl320() +{ + set(types::sl320); + return c.get(); +} +uint16_t& sched_request_res_cfg_s::periodicity_and_offset_c_::set_sl640() +{ + set(types::sl640); + return c.get(); +} void sched_request_res_cfg_s::periodicity_and_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -30131,7 +31936,7 @@ SRSASN_CODE sched_request_res_cfg_s::periodicity_and_offset_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string sched_request_res_cfg_s::periodicity_and_offset_c_::types_opts::to_string() const +const char* sched_request_res_cfg_s::periodicity_and_offset_c_::types_opts::to_string() const { static const char* options[] = {"sym2", "sym6or7", @@ -30253,6 +32058,16 @@ uci_on_pusch_s::beta_offsets_c_::operator=(const uci_on_pusch_s::beta_offsets_c_ return *this; } +uci_on_pusch_s::beta_offsets_c_::dynamic_l_& uci_on_pusch_s::beta_offsets_c_::set_dynamic_type() +{ + set(types::dynamic_type); + return c.get(); +} +beta_offsets_s& uci_on_pusch_s::beta_offsets_c_::set_semi_static() +{ + set(types::semi_static); + return c.get(); +} void uci_on_pusch_s::beta_offsets_c_::to_json(json_writer& j) const { j.start_obj(); @@ -30308,13 +32123,13 @@ SRSASN_CODE uci_on_pusch_s::beta_offsets_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string uci_on_pusch_s::beta_offsets_c_::types_opts::to_string() const +const char* uci_on_pusch_s::beta_offsets_c_::types_opts::to_string() const { static const char* options[] = {"dynamic", "semiStatic"}; return convert_enum_idx(options, 2, value, "uci_on_pusch_s::beta_offsets_c_::types"); } -std::string uci_on_pusch_s::scaling_opts::to_string() const +const char* uci_on_pusch_s::scaling_opts::to_string() const { static const char* options[] = {"f0p5", "f0p65", "f0p8", "f1"}; return convert_enum_idx(options, 4, value, "uci_on_pusch_s::scaling_e_"); @@ -30478,7 +32293,7 @@ void beam_fail_recovery_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string beam_fail_recovery_cfg_s::ssb_per_rach_occasion_opts::to_string() const +const char* beam_fail_recovery_cfg_s::ssb_per_rach_occasion_opts::to_string() const { static const char* options[] = {"oneEighth", "oneFourth", "oneHalf", "one", "two", "four", "eight", "sixteen"}; return convert_enum_idx(options, 8, value, "beam_fail_recovery_cfg_s::ssb_per_rach_occasion_e_"); @@ -30488,13 +32303,13 @@ float beam_fail_recovery_cfg_s::ssb_per_rach_occasion_opts::to_number() const static const float options[] = {0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 6.0}; return map_enum_number(options, 8, value, "beam_fail_recovery_cfg_s::ssb_per_rach_occasion_e_"); } -std::string beam_fail_recovery_cfg_s::ssb_per_rach_occasion_opts::to_number_string() const +const char* beam_fail_recovery_cfg_s::ssb_per_rach_occasion_opts::to_number_string() const { static const char* options[] = {"1/8", "1/4", "1/2", "1", "2", "4", "8", "6"}; return convert_enum_idx(options, 8, value, "beam_fail_recovery_cfg_s::ssb_per_rach_occasion_e_"); } -std::string beam_fail_recovery_cfg_s::beam_fail_recovery_timer_opts::to_string() const +const char* beam_fail_recovery_cfg_s::beam_fail_recovery_timer_opts::to_string() const { static const char* options[] = {"ms10", "ms20", "ms40", "ms60", "ms80", "ms100", "ms150", "ms200"}; return convert_enum_idx(options, 8, value, "beam_fail_recovery_cfg_s::beam_fail_recovery_timer_e_"); @@ -30698,13 +32513,13 @@ void cfgured_grant_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string cfgured_grant_cfg_s::freq_hop_opts::to_string() const +const char* cfgured_grant_cfg_s::freq_hop_opts::to_string() const { static const char* options[] = {"intraSlot", "interSlot"}; return convert_enum_idx(options, 2, value, "cfgured_grant_cfg_s::freq_hop_e_"); } -std::string cfgured_grant_cfg_s::mcs_table_opts::to_string() const +const char* cfgured_grant_cfg_s::mcs_table_opts::to_string() const { static const char* options[] = {"qam256", "qam64LowSE"}; return convert_enum_idx(options, 2, value, "cfgured_grant_cfg_s::mcs_table_e_"); @@ -30715,7 +32530,7 @@ uint16_t cfgured_grant_cfg_s::mcs_table_opts::to_number() const return map_enum_number(options, 2, value, "cfgured_grant_cfg_s::mcs_table_e_"); } -std::string cfgured_grant_cfg_s::mcs_table_transform_precoder_opts::to_string() const +const char* cfgured_grant_cfg_s::mcs_table_transform_precoder_opts::to_string() const { static const char* options[] = {"qam256", "qam64LowSE"}; return convert_enum_idx(options, 2, value, "cfgured_grant_cfg_s::mcs_table_transform_precoder_e_"); @@ -30726,7 +32541,7 @@ uint16_t cfgured_grant_cfg_s::mcs_table_transform_precoder_opts::to_number() con return map_enum_number(options, 2, value, "cfgured_grant_cfg_s::mcs_table_transform_precoder_e_"); } -std::string cfgured_grant_cfg_s::res_alloc_opts::to_string() const +const char* cfgured_grant_cfg_s::res_alloc_opts::to_string() const { static const char* options[] = {"resourceAllocationType0", "resourceAllocationType1", "dynamicSwitch"}; return convert_enum_idx(options, 3, value, "cfgured_grant_cfg_s::res_alloc_e_"); @@ -30737,7 +32552,7 @@ uint8_t cfgured_grant_cfg_s::res_alloc_opts::to_number() const return map_enum_number(options, 2, value, "cfgured_grant_cfg_s::res_alloc_e_"); } -std::string cfgured_grant_cfg_s::pwr_ctrl_loop_to_use_opts::to_string() const +const char* cfgured_grant_cfg_s::pwr_ctrl_loop_to_use_opts::to_string() const { static const char* options[] = {"n0", "n1"}; return convert_enum_idx(options, 2, value, "cfgured_grant_cfg_s::pwr_ctrl_loop_to_use_e_"); @@ -30748,13 +32563,13 @@ uint8_t cfgured_grant_cfg_s::pwr_ctrl_loop_to_use_opts::to_number() const return map_enum_number(options, 2, value, "cfgured_grant_cfg_s::pwr_ctrl_loop_to_use_e_"); } -std::string cfgured_grant_cfg_s::transform_precoder_opts::to_string() const +const char* cfgured_grant_cfg_s::transform_precoder_opts::to_string() const { static const char* options[] = {"enabled", "disabled"}; return convert_enum_idx(options, 2, value, "cfgured_grant_cfg_s::transform_precoder_e_"); } -std::string cfgured_grant_cfg_s::rep_k_opts::to_string() const +const char* cfgured_grant_cfg_s::rep_k_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx(options, 4, value, "cfgured_grant_cfg_s::rep_k_e_"); @@ -30765,7 +32580,7 @@ uint8_t cfgured_grant_cfg_s::rep_k_opts::to_number() const return map_enum_number(options, 4, value, "cfgured_grant_cfg_s::rep_k_e_"); } -std::string cfgured_grant_cfg_s::rep_k_rv_opts::to_string() const +const char* cfgured_grant_cfg_s::rep_k_rv_opts::to_string() const { static const char* options[] = {"s1-0231", "s2-0303", "s3-0000"}; return convert_enum_idx(options, 3, value, "cfgured_grant_cfg_s::rep_k_rv_e_"); @@ -30776,7 +32591,7 @@ uint8_t cfgured_grant_cfg_s::rep_k_rv_opts::to_number() const return map_enum_number(options, 3, value, "cfgured_grant_cfg_s::rep_k_rv_e_"); } -std::string cfgured_grant_cfg_s::periodicity_opts::to_string() const +const char* cfgured_grant_cfg_s::periodicity_opts::to_string() const { static const char* options[] = { "sym2", "sym7", "sym1x14", "sym2x14", "sym4x14", "sym5x14", "sym8x14", "sym10x14", @@ -31227,19 +33042,19 @@ void pusch_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pusch_cfg_s::tx_cfg_opts::to_string() const +const char* pusch_cfg_s::tx_cfg_opts::to_string() const { static const char* options[] = {"codebook", "nonCodebook"}; return convert_enum_idx(options, 2, value, "pusch_cfg_s::tx_cfg_e_"); } -std::string pusch_cfg_s::freq_hop_opts::to_string() const +const char* pusch_cfg_s::freq_hop_opts::to_string() const { static const char* options[] = {"intraSlot", "interSlot"}; return convert_enum_idx(options, 2, value, "pusch_cfg_s::freq_hop_e_"); } -std::string pusch_cfg_s::res_alloc_opts::to_string() const +const char* pusch_cfg_s::res_alloc_opts::to_string() const { static const char* options[] = {"resourceAllocationType0", "resourceAllocationType1", "dynamicSwitch"}; return convert_enum_idx(options, 3, value, "pusch_cfg_s::res_alloc_e_"); @@ -31250,7 +33065,7 @@ uint8_t pusch_cfg_s::res_alloc_opts::to_number() const return map_enum_number(options, 2, value, "pusch_cfg_s::res_alloc_e_"); } -std::string pusch_cfg_s::pusch_aggregation_factor_opts::to_string() const +const char* pusch_cfg_s::pusch_aggregation_factor_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8"}; return convert_enum_idx(options, 3, value, "pusch_cfg_s::pusch_aggregation_factor_e_"); @@ -31261,7 +33076,7 @@ uint8_t pusch_cfg_s::pusch_aggregation_factor_opts::to_number() const return map_enum_number(options, 3, value, "pusch_cfg_s::pusch_aggregation_factor_e_"); } -std::string pusch_cfg_s::mcs_table_opts::to_string() const +const char* pusch_cfg_s::mcs_table_opts::to_string() const { static const char* options[] = {"qam256", "qam64LowSE"}; return convert_enum_idx(options, 2, value, "pusch_cfg_s::mcs_table_e_"); @@ -31272,7 +33087,7 @@ uint16_t pusch_cfg_s::mcs_table_opts::to_number() const return map_enum_number(options, 2, value, "pusch_cfg_s::mcs_table_e_"); } -std::string pusch_cfg_s::mcs_table_transform_precoder_opts::to_string() const +const char* pusch_cfg_s::mcs_table_transform_precoder_opts::to_string() const { static const char* options[] = {"qam256", "qam64LowSE"}; return convert_enum_idx(options, 2, value, "pusch_cfg_s::mcs_table_transform_precoder_e_"); @@ -31283,13 +33098,13 @@ uint16_t pusch_cfg_s::mcs_table_transform_precoder_opts::to_number() const return map_enum_number(options, 2, value, "pusch_cfg_s::mcs_table_transform_precoder_e_"); } -std::string pusch_cfg_s::transform_precoder_opts::to_string() const +const char* pusch_cfg_s::transform_precoder_opts::to_string() const { static const char* options[] = {"enabled", "disabled"}; return convert_enum_idx(options, 2, value, "pusch_cfg_s::transform_precoder_e_"); } -std::string pusch_cfg_s::codebook_subset_opts::to_string() const +const char* pusch_cfg_s::codebook_subset_opts::to_string() const { static const char* options[] = {"fullyAndPartialAndNonCoherent", "partialAndNonCoherent", "nonCoherent"}; return convert_enum_idx(options, 3, value, "pusch_cfg_s::codebook_subset_e_"); @@ -31511,14 +33326,14 @@ void bwp_ul_s::to_json(json_writer& j) const } // CA-BandwidthClassEUTRA ::= ENUMERATED -std::string ca_bw_class_eutra_opts::to_string() const +const char* ca_bw_class_eutra_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f"}; return convert_enum_idx(options, 6, value, "ca_bw_class_eutra_e"); } // CA-BandwidthClassNR ::= ENUMERATED -std::string ca_bw_class_nr_opts::to_string() const +const char* ca_bw_class_nr_opts::to_string() const { static const char* options[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q"}; return convert_enum_idx(options, 17, value, "ca_bw_class_nr_e"); @@ -31592,6 +33407,16 @@ band_params_c& band_params_c::operator=(const band_params_c& other) return *this; } +band_params_c::eutra_s_& band_params_c::set_eutra() +{ + set(types::eutra); + return c.get(); +} +band_params_c::nr_s_& band_params_c::set_nr() +{ + set(types::nr); + return c.get(); +} void band_params_c::to_json(json_writer& j) const { j.start_obj(); @@ -31692,7 +33517,7 @@ SRSASN_CODE band_params_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_params_c::types_opts::to_string() const +const char* band_params_c::types_opts::to_string() const { static const char* options[] = {"eutra", "nr"}; return convert_enum_idx(options, 2, value, "band_params_c::types"); @@ -31828,7 +33653,7 @@ void ca_params_nr_s::to_json(json_writer& j) const j.end_obj(); } -std::string ca_params_nr_s::supported_num_tag_opts::to_string() const +const char* ca_params_nr_s::supported_num_tag_opts::to_string() const { static const char* options[] = {"n2", "n3", "n4"}; return convert_enum_idx(options, 3, value, "ca_params_nr_s::supported_num_tag_e_"); @@ -31951,13 +33776,13 @@ void mrdc_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string mrdc_params_s::ul_sharing_eutra_nr_opts::to_string() const +const char* mrdc_params_s::ul_sharing_eutra_nr_opts::to_string() const { static const char* options[] = {"tdm", "fdm", "both"}; return convert_enum_idx(options, 3, value, "mrdc_params_s::ul_sharing_eutra_nr_e_"); } -std::string mrdc_params_s::ul_switching_time_eutra_nr_opts::to_string() const +const char* mrdc_params_s::ul_switching_time_eutra_nr_opts::to_string() const { static const char* options[] = {"type1", "type2"}; return convert_enum_idx(options, 2, value, "mrdc_params_s::ul_switching_time_eutra_nr_e_"); @@ -31968,7 +33793,7 @@ uint8_t mrdc_params_s::ul_switching_time_eutra_nr_opts::to_number() const return map_enum_number(options, 2, value, "mrdc_params_s::ul_switching_time_eutra_nr_e_"); } -std::string mrdc_params_s::intra_band_endc_support_opts::to_string() const +const char* mrdc_params_s::intra_band_endc_support_opts::to_string() const { static const char* options[] = {"non-contiguous", "both"}; return convert_enum_idx(options, 2, value, "mrdc_params_s::intra_band_endc_support_e_"); @@ -32096,7 +33921,7 @@ void srs_switching_time_eutra_s::to_json(json_writer& j) const j.end_obj(); } -std::string srs_switching_time_eutra_s::switching_time_dl_opts::to_string() const +const char* srs_switching_time_eutra_s::switching_time_dl_opts::to_string() const { static const char* options[] = {"n0", "n0dot5", @@ -32120,14 +33945,14 @@ float srs_switching_time_eutra_s::switching_time_dl_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0}; return map_enum_number(options, 15, value, "srs_switching_time_eutra_s::switching_time_dl_e_"); } -std::string srs_switching_time_eutra_s::switching_time_dl_opts::to_number_string() const +const char* srs_switching_time_eutra_s::switching_time_dl_opts::to_number_string() const { static const char* options[] = { "0", "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5", "5.5", "6", "6.5", "7"}; return convert_enum_idx(options, 15, value, "srs_switching_time_eutra_s::switching_time_dl_e_"); } -std::string srs_switching_time_eutra_s::switching_time_ul_opts::to_string() const +const char* srs_switching_time_eutra_s::switching_time_ul_opts::to_string() const { static const char* options[] = {"n0", "n0dot5", @@ -32151,7 +33976,7 @@ float srs_switching_time_eutra_s::switching_time_ul_opts::to_number() const static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0}; return map_enum_number(options, 15, value, "srs_switching_time_eutra_s::switching_time_ul_e_"); } -std::string srs_switching_time_eutra_s::switching_time_ul_opts::to_number_string() const +const char* srs_switching_time_eutra_s::switching_time_ul_opts::to_number_string() const { static const char* options[] = { "0", "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5", "5.5", "6", "6.5", "7"}; @@ -32199,7 +34024,7 @@ void srs_switching_time_nr_s::to_json(json_writer& j) const j.end_obj(); } -std::string srs_switching_time_nr_s::switching_time_dl_opts::to_string() const +const char* srs_switching_time_nr_s::switching_time_dl_opts::to_string() const { static const char* options[] = {"n0us", "n30us", "n100us", "n140us", "n200us", "n300us", "n500us", "n900us"}; return convert_enum_idx(options, 8, value, "srs_switching_time_nr_s::switching_time_dl_e_"); @@ -32210,7 +34035,7 @@ uint16_t srs_switching_time_nr_s::switching_time_dl_opts::to_number() const return map_enum_number(options, 8, value, "srs_switching_time_nr_s::switching_time_dl_e_"); } -std::string srs_switching_time_nr_s::switching_time_ul_opts::to_string() const +const char* srs_switching_time_nr_s::switching_time_ul_opts::to_string() const { static const char* options[] = {"n0us", "n30us", "n100us", "n140us", "n200us", "n300us", "n500us", "n900us"}; return convert_enum_idx(options, 8, value, "srs_switching_time_nr_s::switching_time_ul_e_"); @@ -32357,6 +34182,16 @@ band_params_v1540_s::srs_carrier_switch_c_::operator=(const band_params_v1540_s: return *this; } +band_params_v1540_s::srs_carrier_switch_c_::nr_s_& band_params_v1540_s::srs_carrier_switch_c_::set_nr() +{ + set(types::nr); + return c.get(); +} +band_params_v1540_s::srs_carrier_switch_c_::eutra_s_& band_params_v1540_s::srs_carrier_switch_c_::set_eutra() +{ + set(types::eutra); + return c.get(); +} void band_params_v1540_s::srs_carrier_switch_c_::to_json(json_writer& j) const { j.start_obj(); @@ -32421,13 +34256,13 @@ SRSASN_CODE band_params_v1540_s::srs_carrier_switch_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_params_v1540_s::srs_carrier_switch_c_::types_opts::to_string() const +const char* band_params_v1540_s::srs_carrier_switch_c_::types_opts::to_string() const { static const char* options[] = {"nr", "eutra"}; return convert_enum_idx(options, 2, value, "band_params_v1540_s::srs_carrier_switch_c_::types"); } -std::string band_params_v1540_s::srs_tx_switch_s_::supported_srs_tx_port_switch_opts::to_string() const +const char* band_params_v1540_s::srs_tx_switch_s_::supported_srs_tx_port_switch_opts::to_string() const { static const char* options[] = {"t1r2", "t1r4", "t2r4", "t1r4-t2r4", "t1r1", "t2r2", "t4r4", "notSupported"}; return convert_enum_idx(options, 8, value, "band_params_v1540_s::srs_tx_switch_s_::supported_srs_tx_port_switch_e_"); @@ -32979,7 +34814,7 @@ void supported_csi_rs_res_s::to_json(json_writer& j) const j.end_obj(); } -std::string supported_csi_rs_res_s::max_num_tx_ports_per_res_opts::to_string() const +const char* supported_csi_rs_res_s::max_num_tx_ports_per_res_opts::to_string() const { static const char* options[] = {"p2", "p4", "p8", "p12", "p16", "p24", "p32"}; return convert_enum_idx(options, 7, value, "supported_csi_rs_res_s::max_num_tx_ports_per_res_e_"); @@ -33032,7 +34867,7 @@ void beam_management_ssb_csi_rs_s::to_json(json_writer& j) const j.end_obj(); } -std::string beam_management_ssb_csi_rs_s::max_num_ssb_csi_rs_res_one_tx_opts::to_string() const +const char* beam_management_ssb_csi_rs_s::max_num_ssb_csi_rs_res_one_tx_opts::to_string() const { static const char* options[] = {"n0", "n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 5, value, "beam_management_ssb_csi_rs_s::max_num_ssb_csi_rs_res_one_tx_e_"); @@ -33043,7 +34878,7 @@ uint8_t beam_management_ssb_csi_rs_s::max_num_ssb_csi_rs_res_one_tx_opts::to_num return map_enum_number(options, 5, value, "beam_management_ssb_csi_rs_s::max_num_ssb_csi_rs_res_one_tx_e_"); } -std::string beam_management_ssb_csi_rs_s::max_num_csi_rs_res_opts::to_string() const +const char* beam_management_ssb_csi_rs_s::max_num_csi_rs_res_opts::to_string() const { static const char* options[] = {"n0", "n4", "n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 6, value, "beam_management_ssb_csi_rs_s::max_num_csi_rs_res_e_"); @@ -33054,7 +34889,7 @@ uint8_t beam_management_ssb_csi_rs_s::max_num_csi_rs_res_opts::to_number() const return map_enum_number(options, 6, value, "beam_management_ssb_csi_rs_s::max_num_csi_rs_res_e_"); } -std::string beam_management_ssb_csi_rs_s::max_num_csi_rs_res_two_tx_opts::to_string() const +const char* beam_management_ssb_csi_rs_s::max_num_csi_rs_res_two_tx_opts::to_string() const { static const char* options[] = {"n0", "n4", "n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 6, value, "beam_management_ssb_csi_rs_s::max_num_csi_rs_res_two_tx_e_"); @@ -33065,13 +34900,13 @@ uint8_t beam_management_ssb_csi_rs_s::max_num_csi_rs_res_two_tx_opts::to_number( return map_enum_number(options, 6, value, "beam_management_ssb_csi_rs_s::max_num_csi_rs_res_two_tx_e_"); } -std::string beam_management_ssb_csi_rs_s::supported_csi_rs_density_opts::to_string() const +const char* beam_management_ssb_csi_rs_s::supported_csi_rs_density_opts::to_string() const { static const char* options[] = {"one", "three", "oneAndThree"}; return convert_enum_idx(options, 3, value, "beam_management_ssb_csi_rs_s::supported_csi_rs_density_e_"); } -std::string beam_management_ssb_csi_rs_s::max_num_aperiodic_csi_rs_res_opts::to_string() const +const char* beam_management_ssb_csi_rs_s::max_num_aperiodic_csi_rs_res_opts::to_string() const { static const char* options[] = {"n0", "n1", "n4", "n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 7, value, "beam_management_ssb_csi_rs_s::max_num_aperiodic_csi_rs_res_e_"); @@ -33143,7 +34978,7 @@ void csi_rs_im_reception_for_feedback_s::to_json(json_writer& j) const j.end_obj(); } -std::string csi_rs_im_reception_for_feedback_s::max_cfg_num_csi_im_per_cc_opts::to_string() const +const char* csi_rs_im_reception_for_feedback_s::max_cfg_num_csi_im_per_cc_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 6, value, "csi_rs_im_reception_for_feedback_s::max_cfg_num_csi_im_per_cc_e_"); @@ -33224,7 +35059,7 @@ void csi_report_framework_s::to_json(json_writer& j) const j.end_obj(); } -std::string csi_report_framework_s::max_num_aperiodic_csi_trigger_state_per_cc_opts::to_string() const +const char* csi_report_framework_s::max_num_aperiodic_csi_trigger_state_per_cc_opts::to_string() const { static const char* options[] = {"n3", "n7", "n15", "n31", "n63", "n128"}; return convert_enum_idx(options, 6, value, "csi_report_framework_s::max_num_aperiodic_csi_trigger_state_per_cc_e_"); @@ -33353,13 +35188,13 @@ void codebook_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string codebook_params_s::type1_s_::single_panel_s_::modes_opts::to_string() const +const char* codebook_params_s::type1_s_::single_panel_s_::modes_opts::to_string() const { static const char* options[] = {"mode1", "mode1andMode2"}; return convert_enum_idx(options, 2, value, "codebook_params_s::type1_s_::single_panel_s_::modes_e_"); } -std::string codebook_params_s::type1_s_::multi_panel_s_::modes_opts::to_string() const +const char* codebook_params_s::type1_s_::multi_panel_s_::modes_opts::to_string() const { static const char* options[] = {"mode1", "mode2", "both"}; return convert_enum_idx(options, 3, value, "codebook_params_s::type1_s_::multi_panel_s_::modes_e_"); @@ -33370,7 +35205,7 @@ uint8_t codebook_params_s::type1_s_::multi_panel_s_::modes_opts::to_number() con return map_enum_number(options, 2, value, "codebook_params_s::type1_s_::multi_panel_s_::modes_e_"); } -std::string codebook_params_s::type1_s_::multi_panel_s_::nrof_panels_opts::to_string() const +const char* codebook_params_s::type1_s_::multi_panel_s_::nrof_panels_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "codebook_params_s::type1_s_::multi_panel_s_::nrof_panels_e_"); @@ -33381,13 +35216,13 @@ uint8_t codebook_params_s::type1_s_::multi_panel_s_::nrof_panels_opts::to_number return map_enum_number(options, 2, value, "codebook_params_s::type1_s_::multi_panel_s_::nrof_panels_e_"); } -std::string codebook_params_s::type2_s_::amplitude_scaling_type_opts::to_string() const +const char* codebook_params_s::type2_s_::amplitude_scaling_type_opts::to_string() const { static const char* options[] = {"wideband", "widebandAndSubband"}; return convert_enum_idx(options, 2, value, "codebook_params_s::type2_s_::amplitude_scaling_type_e_"); } -std::string codebook_params_s::type2_port_sel_s_::amplitude_scaling_type_opts::to_string() const +const char* codebook_params_s::type2_port_sel_s_::amplitude_scaling_type_opts::to_string() const { static const char* options[] = {"wideband", "widebandAndSubband"}; return convert_enum_idx(options, 2, value, "codebook_params_s::type2_port_sel_s_::amplitude_scaling_type_e_"); @@ -33419,7 +35254,7 @@ void dummy_g_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_g_s::max_num_ssb_csi_rs_res_one_tx_opts::to_string() const +const char* dummy_g_s::max_num_ssb_csi_rs_res_one_tx_opts::to_string() const { static const char* options[] = {"n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 4, value, "dummy_g_s::max_num_ssb_csi_rs_res_one_tx_e_"); @@ -33430,7 +35265,7 @@ uint8_t dummy_g_s::max_num_ssb_csi_rs_res_one_tx_opts::to_number() const return map_enum_number(options, 4, value, "dummy_g_s::max_num_ssb_csi_rs_res_one_tx_e_"); } -std::string dummy_g_s::max_num_ssb_csi_rs_res_two_tx_opts::to_string() const +const char* dummy_g_s::max_num_ssb_csi_rs_res_two_tx_opts::to_string() const { static const char* options[] = {"n0", "n4", "n8", "n16", "n32", "n64"}; return convert_enum_idx(options, 6, value, "dummy_g_s::max_num_ssb_csi_rs_res_two_tx_e_"); @@ -33441,7 +35276,7 @@ uint8_t dummy_g_s::max_num_ssb_csi_rs_res_two_tx_opts::to_number() const return map_enum_number(options, 6, value, "dummy_g_s::max_num_ssb_csi_rs_res_two_tx_e_"); } -std::string dummy_g_s::supported_csi_rs_density_opts::to_string() const +const char* dummy_g_s::supported_csi_rs_density_opts::to_string() const { static const char* options[] = {"one", "three", "oneAndThree"}; return convert_enum_idx(options, 3, value, "dummy_g_s::supported_csi_rs_density_e_"); @@ -33588,7 +35423,7 @@ void spatial_relations_s::to_json(json_writer& j) const j.end_obj(); } -std::string spatial_relations_s::max_num_cfgured_spatial_relations_opts::to_string() const +const char* spatial_relations_s::max_num_cfgured_spatial_relations_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "n96"}; return convert_enum_idx(options, 6, value, "spatial_relations_s::max_num_cfgured_spatial_relations_e_"); @@ -33599,7 +35434,7 @@ uint8_t spatial_relations_s::max_num_cfgured_spatial_relations_opts::to_number() return map_enum_number(options, 6, value, "spatial_relations_s::max_num_cfgured_spatial_relations_e_"); } -std::string spatial_relations_s::max_num_active_spatial_relations_opts::to_string() const +const char* spatial_relations_s::max_num_active_spatial_relations_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n14"}; return convert_enum_idx(options, 5, value, "spatial_relations_s::max_num_active_spatial_relations_e_"); @@ -33610,7 +35445,7 @@ uint8_t spatial_relations_s::max_num_active_spatial_relations_opts::to_number() return map_enum_number(options, 5, value, "spatial_relations_s::max_num_active_spatial_relations_e_"); } -std::string spatial_relations_s::max_num_dl_rs_qcl_type_d_opts::to_string() const +const char* spatial_relations_s::max_num_dl_rs_qcl_type_d_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n14"}; return convert_enum_idx(options, 5, value, "spatial_relations_s::max_num_dl_rs_qcl_type_d_e_"); @@ -34279,7 +36114,7 @@ void mimo_params_per_band_s::to_json(json_writer& j) const j.end_obj(); } -std::string mimo_params_per_band_s::tci_state_pdsch_s_::max_num_cfgured_tcistates_per_cc_opts::to_string() const +const char* mimo_params_per_band_s::tci_state_pdsch_s_::max_num_cfgured_tcistates_per_cc_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "n128"}; return convert_enum_idx( @@ -34292,7 +36127,7 @@ uint8_t mimo_params_per_band_s::tci_state_pdsch_s_::max_num_cfgured_tcistates_pe options, 6, value, "mimo_params_per_band_s::tci_state_pdsch_s_::max_num_cfgured_tcistates_per_cc_e_"); } -std::string mimo_params_per_band_s::tci_state_pdsch_s_::max_num_active_tci_per_bwp_opts::to_string() const +const char* mimo_params_per_band_s::tci_state_pdsch_s_::max_num_active_tci_per_bwp_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8"}; return convert_enum_idx( @@ -34305,13 +36140,13 @@ uint8_t mimo_params_per_band_s::tci_state_pdsch_s_::max_num_active_tci_per_bwp_o options, 4, value, "mimo_params_per_band_s::tci_state_pdsch_s_::max_num_active_tci_per_bwp_e_"); } -std::string mimo_params_per_band_s::pusch_trans_coherence_opts::to_string() const +const char* mimo_params_per_band_s::pusch_trans_coherence_opts::to_string() const { static const char* options[] = {"nonCoherent", "partialCoherent", "fullCoherent"}; return convert_enum_idx(options, 3, value, "mimo_params_per_band_s::pusch_trans_coherence_e_"); } -std::string mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus15k_hz_opts::to_string() const +const char* mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus15k_hz_opts::to_string() const { static const char* options[] = {"n4", "n7", "n14"}; return convert_enum_idx( @@ -34324,7 +36159,7 @@ uint8_t mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus15k_hz options, 3, value, "mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus15k_hz_e_"); } -std::string mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus30k_hz_opts::to_string() const +const char* mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"n4", "n7", "n14"}; return convert_enum_idx( @@ -34337,7 +36172,7 @@ uint8_t mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus30k_hz options, 3, value, "mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus30k_hz_e_"); } -std::string mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus60k_hz_opts::to_string() const +const char* mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"n4", "n7", "n14"}; return convert_enum_idx( @@ -34350,7 +36185,7 @@ uint8_t mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus60k_hz options, 3, value, "mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus60k_hz_e_"); } -std::string mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus120k_hz_opts::to_string() const +const char* mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"n4", "n7", "n14"}; return convert_enum_idx( @@ -34363,7 +36198,7 @@ uint8_t mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus120k_h options, 3, value, "mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus120k_hz_e_"); } -std::string mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus240k_hz_opts::to_string() const +const char* mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus240k_hz_opts::to_string() const { static const char* options[] = {"n4", "n7", "n14"}; return convert_enum_idx( @@ -34376,7 +36211,7 @@ uint8_t mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus240k_h options, 3, value, "mimo_params_per_band_s::max_num_rx_tx_beam_switch_dl_s_::scs_minus240k_hz_e_"); } -std::string mimo_params_per_band_s::max_num_non_group_beam_report_opts::to_string() const +const char* mimo_params_per_band_s::max_num_non_group_beam_report_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4"}; return convert_enum_idx(options, 3, value, "mimo_params_per_band_s::max_num_non_group_beam_report_e_"); @@ -34387,7 +36222,7 @@ uint8_t mimo_params_per_band_s::max_num_non_group_beam_report_opts::to_number() return map_enum_number(options, 3, value, "mimo_params_per_band_s::max_num_non_group_beam_report_e_"); } -std::string mimo_params_per_band_s::ul_beam_management_s_::max_num_srs_res_per_set_bm_opts::to_string() const +const char* mimo_params_per_band_s::ul_beam_management_s_::max_num_srs_res_per_set_bm_opts::to_string() const { static const char* options[] = {"n2", "n4", "n8", "n16"}; return convert_enum_idx( @@ -34400,7 +36235,7 @@ uint8_t mimo_params_per_band_s::ul_beam_management_s_::max_num_srs_res_per_set_b options, 4, value, "mimo_params_per_band_s::ul_beam_management_s_::max_num_srs_res_per_set_bm_e_"); } -std::string mimo_params_per_band_s::beam_report_timing_s_::scs_minus15k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_report_timing_s_::scs_minus15k_hz_opts::to_string() const { static const char* options[] = {"sym2", "sym4", "sym8"}; return convert_enum_idx(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus15k_hz_e_"); @@ -34411,7 +36246,7 @@ uint8_t mimo_params_per_band_s::beam_report_timing_s_::scs_minus15k_hz_opts::to_ return map_enum_number(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus15k_hz_e_"); } -std::string mimo_params_per_band_s::beam_report_timing_s_::scs_minus30k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_report_timing_s_::scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"sym4", "sym8", "sym14", "sym28"}; return convert_enum_idx(options, 4, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus30k_hz_e_"); @@ -34422,7 +36257,7 @@ uint8_t mimo_params_per_band_s::beam_report_timing_s_::scs_minus30k_hz_opts::to_ return map_enum_number(options, 4, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus30k_hz_e_"); } -std::string mimo_params_per_band_s::beam_report_timing_s_::scs_minus60k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_report_timing_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"sym8", "sym14", "sym28"}; return convert_enum_idx(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus60k_hz_e_"); @@ -34433,7 +36268,7 @@ uint8_t mimo_params_per_band_s::beam_report_timing_s_::scs_minus60k_hz_opts::to_ return map_enum_number(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus60k_hz_e_"); } -std::string mimo_params_per_band_s::beam_report_timing_s_::scs_minus120k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_report_timing_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"sym14", "sym28", "sym56"}; return convert_enum_idx(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus120k_hz_e_"); @@ -34444,7 +36279,7 @@ uint8_t mimo_params_per_band_s::beam_report_timing_s_::scs_minus120k_hz_opts::to return map_enum_number(options, 3, value, "mimo_params_per_band_s::beam_report_timing_s_::scs_minus120k_hz_e_"); } -std::string mimo_params_per_band_s::beam_switch_timing_s_::scs_minus60k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_switch_timing_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"sym14", "sym28", "sym48", "sym224", "sym336"}; return convert_enum_idx(options, 5, value, "mimo_params_per_band_s::beam_switch_timing_s_::scs_minus60k_hz_e_"); @@ -34455,7 +36290,7 @@ uint16_t mimo_params_per_band_s::beam_switch_timing_s_::scs_minus60k_hz_opts::to return map_enum_number(options, 5, value, "mimo_params_per_band_s::beam_switch_timing_s_::scs_minus60k_hz_e_"); } -std::string mimo_params_per_band_s::beam_switch_timing_s_::scs_minus120k_hz_opts::to_string() const +const char* mimo_params_per_band_s::beam_switch_timing_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"sym14", "sym28", "sym48", "sym224", "sym336"}; return convert_enum_idx(options, 5, value, "mimo_params_per_band_s::beam_switch_timing_s_::scs_minus120k_hz_e_"); @@ -34729,7 +36564,7 @@ void band_nr_s::to_json(json_writer& j) const j.end_obj(); } -std::string band_nr_s::bwp_same_numerology_opts::to_string() const +const char* band_nr_s::bwp_same_numerology_opts::to_string() const { static const char* options[] = {"upto2", "upto4"}; return convert_enum_idx(options, 2, value, "band_nr_s::bwp_same_numerology_e_"); @@ -34740,7 +36575,7 @@ uint8_t band_nr_s::bwp_same_numerology_opts::to_number() const return map_enum_number(options, 2, value, "band_nr_s::bwp_same_numerology_e_"); } -std::string band_nr_s::ue_pwr_class_opts::to_string() const +const char* band_nr_s::ue_pwr_class_opts::to_string() const { static const char* options[] = {"pc1", "pc2", "pc3", "pc4"}; return convert_enum_idx(options, 4, value, "band_nr_s::ue_pwr_class_e_"); @@ -34818,6 +36653,16 @@ band_nr_s::ch_bws_dl_c_& band_nr_s::ch_bws_dl_c_::operator=(const band_nr_s::ch_ return *this; } +band_nr_s::ch_bws_dl_c_::fr1_s_& band_nr_s::ch_bws_dl_c_::set_fr1() +{ + set(types::fr1); + return c.get(); +} +band_nr_s::ch_bws_dl_c_::fr2_s_& band_nr_s::ch_bws_dl_c_::set_fr2() +{ + set(types::fr2); + return c.get(); +} void band_nr_s::ch_bws_dl_c_::to_json(json_writer& j) const { j.start_obj(); @@ -34923,7 +36768,7 @@ SRSASN_CODE band_nr_s::ch_bws_dl_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_nr_s::ch_bws_dl_c_::types_opts::to_string() const +const char* band_nr_s::ch_bws_dl_c_::types_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "band_nr_s::ch_bws_dl_c_::types"); @@ -35001,6 +36846,16 @@ band_nr_s::ch_bws_ul_c_& band_nr_s::ch_bws_ul_c_::operator=(const band_nr_s::ch_ return *this; } +band_nr_s::ch_bws_ul_c_::fr1_s_& band_nr_s::ch_bws_ul_c_::set_fr1() +{ + set(types::fr1); + return c.get(); +} +band_nr_s::ch_bws_ul_c_::fr2_s_& band_nr_s::ch_bws_ul_c_::set_fr2() +{ + set(types::fr2); + return c.get(); +} void band_nr_s::ch_bws_ul_c_::to_json(json_writer& j) const { j.start_obj(); @@ -35106,7 +36961,7 @@ SRSASN_CODE band_nr_s::ch_bws_ul_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_nr_s::ch_bws_ul_c_::types_opts::to_string() const +const char* band_nr_s::ch_bws_ul_c_::types_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "band_nr_s::ch_bws_ul_c_::types"); @@ -35117,7 +36972,7 @@ uint8_t band_nr_s::ch_bws_ul_c_::types_opts::to_number() const return map_enum_number(options, 2, value, "band_nr_s::ch_bws_ul_c_::types"); } -std::string band_nr_s::max_ul_duty_cycle_pc2_fr1_opts::to_string() const +const char* band_nr_s::max_ul_duty_cycle_pc2_fr1_opts::to_string() const { static const char* options[] = {"n60", "n70", "n80", "n90", "n100"}; return convert_enum_idx(options, 5, value, "band_nr_s::max_ul_duty_cycle_pc2_fr1_e_"); @@ -35128,7 +36983,7 @@ uint8_t band_nr_s::max_ul_duty_cycle_pc2_fr1_opts::to_number() const return map_enum_number(options, 5, value, "band_nr_s::max_ul_duty_cycle_pc2_fr1_e_"); } -std::string band_nr_s::max_ul_duty_cycle_fr2_opts::to_string() const +const char* band_nr_s::max_ul_duty_cycle_fr2_opts::to_string() const { static const char* options[] = {"n15", "n20", "n25", "n30", "n40", "n50", "n60", "n70", "n80", "n90", "n100"}; return convert_enum_idx(options, 11, value, "band_nr_s::max_ul_duty_cycle_fr2_e_"); @@ -35206,6 +37061,16 @@ band_nr_s::ch_bws_dl_v1590_c_& band_nr_s::ch_bws_dl_v1590_c_::operator=(const ba return *this; } +band_nr_s::ch_bws_dl_v1590_c_::fr1_s_& band_nr_s::ch_bws_dl_v1590_c_::set_fr1() +{ + set(types::fr1); + return c.get(); +} +band_nr_s::ch_bws_dl_v1590_c_::fr2_s_& band_nr_s::ch_bws_dl_v1590_c_::set_fr2() +{ + set(types::fr2); + return c.get(); +} void band_nr_s::ch_bws_dl_v1590_c_::to_json(json_writer& j) const { j.start_obj(); @@ -35311,7 +37176,7 @@ SRSASN_CODE band_nr_s::ch_bws_dl_v1590_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_nr_s::ch_bws_dl_v1590_c_::types_opts::to_string() const +const char* band_nr_s::ch_bws_dl_v1590_c_::types_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "band_nr_s::ch_bws_dl_v1590_c_::types"); @@ -35389,6 +37254,16 @@ band_nr_s::ch_bws_ul_v1590_c_& band_nr_s::ch_bws_ul_v1590_c_::operator=(const ba return *this; } +band_nr_s::ch_bws_ul_v1590_c_::fr1_s_& band_nr_s::ch_bws_ul_v1590_c_::set_fr1() +{ + set(types::fr1); + return c.get(); +} +band_nr_s::ch_bws_ul_v1590_c_::fr2_s_& band_nr_s::ch_bws_ul_v1590_c_::set_fr2() +{ + set(types::fr2); + return c.get(); +} void band_nr_s::ch_bws_ul_v1590_c_::to_json(json_writer& j) const { j.start_obj(); @@ -35494,7 +37369,7 @@ SRSASN_CODE band_nr_s::ch_bws_ul_v1590_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string band_nr_s::ch_bws_ul_v1590_c_::types_opts::to_string() const +const char* band_nr_s::ch_bws_ul_v1590_c_::types_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "band_nr_s::ch_bws_ul_v1590_c_::types"); @@ -35645,7 +37520,7 @@ void cfra_s::to_json(json_writer& j) const j.end_obj(); } -std::string cfra_s::occasions_s_::ssb_per_rach_occasion_opts::to_string() const +const char* cfra_s::occasions_s_::ssb_per_rach_occasion_opts::to_string() const { static const char* options[] = {"oneEighth", "oneFourth", "oneHalf", "one", "two", "four", "eight", "sixteen"}; return convert_enum_idx(options, 8, value, "cfra_s::occasions_s_::ssb_per_rach_occasion_e_"); @@ -35655,7 +37530,7 @@ float cfra_s::occasions_s_::ssb_per_rach_occasion_opts::to_number() const static const float options[] = {0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 6.0}; return map_enum_number(options, 8, value, "cfra_s::occasions_s_::ssb_per_rach_occasion_e_"); } -std::string cfra_s::occasions_s_::ssb_per_rach_occasion_opts::to_number_string() const +const char* cfra_s::occasions_s_::ssb_per_rach_occasion_opts::to_number_string() const { static const char* options[] = {"1/8", "1/4", "1/2", "1", "2", "4", "8", "6"}; return convert_enum_idx(options, 8, value, "cfra_s::occasions_s_::ssb_per_rach_occasion_e_"); @@ -35728,6 +37603,16 @@ cfra_s::res_c_& cfra_s::res_c_::operator=(const cfra_s::res_c_& other) return *this; } +cfra_s::res_c_::ssb_s_& cfra_s::res_c_::set_ssb() +{ + set(types::ssb); + return c.get(); +} +cfra_s::res_c_::csirs_s_& cfra_s::res_c_::set_csirs() +{ + set(types::csirs); + return c.get(); +} void cfra_s::res_c_::to_json(json_writer& j) const { j.start_obj(); @@ -35798,7 +37683,7 @@ SRSASN_CODE cfra_s::res_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cfra_s::res_c_::types_opts::to_string() const +const char* cfra_s::res_c_::types_opts::to_string() const { static const char* options[] = {"ssb", "csirs"}; return convert_enum_idx(options, 2, value, "cfra_s::res_c_::types"); @@ -35919,6 +37804,17 @@ csi_associated_report_cfg_info_s::res_for_ch_c_::operator=(const csi_associated_ return *this; } +csi_associated_report_cfg_info_s::res_for_ch_c_::nzp_csi_rs_s_& +csi_associated_report_cfg_info_s::res_for_ch_c_::set_nzp_csi_rs() +{ + set(types::nzp_csi_rs); + return c.get(); +} +uint8_t& csi_associated_report_cfg_info_s::res_for_ch_c_::set_csi_ssb_res_set() +{ + set(types::csi_ssb_res_set); + return c.get(); +} void csi_associated_report_cfg_info_s::res_for_ch_c_::to_json(json_writer& j) const { j.start_obj(); @@ -35987,7 +37883,7 @@ SRSASN_CODE csi_associated_report_cfg_info_s::res_for_ch_c_::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string csi_associated_report_cfg_info_s::res_for_ch_c_::types_opts::to_string() const +const char* csi_associated_report_cfg_info_s::res_for_ch_c_::types_opts::to_string() const { static const char* options[] = {"nzp-CSI-RS", "csi-SSB-ResourceSet"}; return convert_enum_idx(options, 2, value, "csi_associated_report_cfg_info_s::res_for_ch_c_::types"); @@ -36148,6 +38044,16 @@ csi_im_res_s::csi_im_res_elem_pattern_c_::operator=(const csi_im_res_s::csi_im_r return *this; } +csi_im_res_s::csi_im_res_elem_pattern_c_::pattern0_s_& csi_im_res_s::csi_im_res_elem_pattern_c_::set_pattern0() +{ + set(types::pattern0); + return c.get(); +} +csi_im_res_s::csi_im_res_elem_pattern_c_::pattern1_s_& csi_im_res_s::csi_im_res_elem_pattern_c_::set_pattern1() +{ + set(types::pattern1); + return c.get(); +} void csi_im_res_s::csi_im_res_elem_pattern_c_::to_json(json_writer& j) const { j.start_obj(); @@ -36210,7 +38116,7 @@ SRSASN_CODE csi_im_res_s::csi_im_res_elem_pattern_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_im_res_s::csi_im_res_elem_pattern_c_::pattern0_s_::subcarrier_location_p0_opts::to_string() const +const char* csi_im_res_s::csi_im_res_elem_pattern_c_::pattern0_s_::subcarrier_location_p0_opts::to_string() const { static const char* options[] = {"s0", "s2", "s4", "s6", "s8", "s10"}; return convert_enum_idx( @@ -36223,7 +38129,7 @@ uint8_t csi_im_res_s::csi_im_res_elem_pattern_c_::pattern0_s_::subcarrier_locati options, 6, value, "csi_im_res_s::csi_im_res_elem_pattern_c_::pattern0_s_::subcarrier_location_p0_e_"); } -std::string csi_im_res_s::csi_im_res_elem_pattern_c_::pattern1_s_::subcarrier_location_p1_opts::to_string() const +const char* csi_im_res_s::csi_im_res_elem_pattern_c_::pattern1_s_::subcarrier_location_p1_opts::to_string() const { static const char* options[] = {"s0", "s4", "s8"}; return convert_enum_idx( @@ -36236,7 +38142,7 @@ uint8_t csi_im_res_s::csi_im_res_elem_pattern_c_::pattern1_s_::subcarrier_locati options, 3, value, "csi_im_res_s::csi_im_res_elem_pattern_c_::pattern1_s_::subcarrier_location_p1_e_"); } -std::string csi_im_res_s::csi_im_res_elem_pattern_c_::types_opts::to_string() const +const char* csi_im_res_s::csi_im_res_elem_pattern_c_::types_opts::to_string() const { static const char* options[] = {"pattern0", "pattern1"}; return convert_enum_idx(options, 2, value, "csi_im_res_s::csi_im_res_elem_pattern_c_::types"); @@ -36370,6 +38276,56 @@ csi_report_periodicity_and_offset_c::operator=(const csi_report_periodicity_and_ return *this; } +uint8_t& csi_report_periodicity_and_offset_c::set_slots4() +{ + set(types::slots4); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots5() +{ + set(types::slots5); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots8() +{ + set(types::slots8); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots10() +{ + set(types::slots10); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots16() +{ + set(types::slots16); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots20() +{ + set(types::slots20); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots40() +{ + set(types::slots40); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots80() +{ + set(types::slots80); + return c.get(); +} +uint8_t& csi_report_periodicity_and_offset_c::set_slots160() +{ + set(types::slots160); + return c.get(); +} +uint16_t& csi_report_periodicity_and_offset_c::set_slots320() +{ + set(types::slots320); + return c.get(); +} void csi_report_periodicity_and_offset_c::to_json(json_writer& j) const { j.start_obj(); @@ -36492,7 +38448,7 @@ SRSASN_CODE csi_report_periodicity_and_offset_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_report_periodicity_and_offset_c::types_opts::to_string() const +const char* csi_report_periodicity_and_offset_c::types_opts::to_string() const { static const char* options[] = { "slots4", "slots5", "slots8", "slots10", "slots16", "slots20", "slots40", "slots80", "slots160", "slots320"}; @@ -36615,6 +38571,16 @@ codebook_cfg_s::codebook_type_c_::operator=(const codebook_cfg_s::codebook_type_ return *this; } +codebook_cfg_s::codebook_type_c_::type1_s_& codebook_cfg_s::codebook_type_c_::set_type1() +{ + set(types::type1); + return c.get(); +} +codebook_cfg_s::codebook_type_c_::type2_s_& codebook_cfg_s::codebook_type_c_::set_type2() +{ + set(types::type2); + return c.get(); +} void codebook_cfg_s::codebook_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -36755,6 +38721,18 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::operator=( return *this; } +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_& +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::set_type_i_single_panel() +{ + set(types::type_i_single_panel); + return c.get(); +} +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_& +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::set_type_i_multi_panel() +{ + set(types::type_i_multi_panel); + return c.get(); +} void codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -36894,6 +38872,18 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_: return *this; } +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_::two_s_& +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_::set_two() +{ + set(types::two); + return c.get(); +} +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_::more_than_two_s_& +codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_::set_more_than_two() +{ + set(types::more_than_two); + return c.get(); +} void codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_::to_json( json_writer& j) const { @@ -37183,6 +39173,84 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_: return *this; } +fixed_bitstring<8>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_two_one_type_i_single_panel_restrict() +{ + set(types::two_one_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<64>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_two_two_type_i_single_panel_restrict() +{ + set(types::two_two_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<16>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_four_one_type_i_single_panel_restrict() +{ + set(types::four_one_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<96>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_three_two_type_i_single_panel_restrict() +{ + set(types::three_two_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<24>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_six_one_type_i_single_panel_restrict() +{ + set(types::six_one_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<128>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_four_two_type_i_single_panel_restrict() +{ + set(types::four_two_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<32>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_eight_one_type_i_single_panel_restrict() +{ + set(types::eight_one_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<192>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_four_three_type_i_single_panel_restrict() +{ + set(types::four_three_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<192>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_six_two_type_i_single_panel_restrict() +{ + set(types::six_two_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<48>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_twelve_one_type_i_single_panel_restrict() +{ + set(types::twelve_one_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<256>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_four_four_type_i_single_panel_restrict() +{ + set(types::four_four_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<256>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_eight_two_type_i_single_panel_restrict() +{ + set(types::eight_two_type_i_single_panel_restrict); + return c.get >(); +} +fixed_bitstring<64>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_:: + nr_of_ant_ports_c_::more_than_two_s_::n1_n2_c_::set_sixteen_one_type_i_single_panel_restrict() +{ + set(types::sixteen_one_type_i_single_panel_restrict); + return c.get >(); +} void codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_:: more_than_two_s_::n1_n2_c_::to_json(json_writer& j) const { @@ -37341,7 +39409,7 @@ SRSASN_CODE codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_sing return SRSASN_SUCCESS; } -std::string codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_:: +const char* codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_:: more_than_two_s_::n1_n2_c_::types_opts::to_string() const { static const char* options[] = {"two-one-TypeI-SinglePanel-Restriction", @@ -37364,7 +39432,7 @@ std::string codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_sing "ports_c_::more_than_two_s_::n1_n2_c_::types"); } -std::string codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_:: +const char* codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_single_panel_s_::nr_of_ant_ports_c_:: types_opts::to_string() const { static const char* options[] = {"two", "moreThanTwo"}; @@ -37530,6 +39598,54 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_:: return *this; } +fixed_bitstring<8>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_two_two_one_type_i_multi_panel_restrict() +{ + set(types::two_two_one_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<16>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_two_four_one_type_i_multi_panel_restrict() +{ + set(types::two_four_one_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<8>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_four_two_one_type_i_multi_panel_restrict() +{ + set(types::four_two_one_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<64>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_two_two_two_type_i_multi_panel_restrict() +{ + set(types::two_two_two_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<32>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_two_eight_one_type_i_multi_panel_restrict() +{ + set(types::two_eight_one_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<16>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_four_four_one_type_i_multi_panel_restrict() +{ + set(types::four_four_one_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<128>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_two_four_two_type_i_multi_panel_restrict() +{ + set(types::two_four_two_type_i_multi_panel_restrict); + return c.get >(); +} +fixed_bitstring<64>& codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_:: + set_four_two_two_type_i_multi_panel_restrict() +{ + set(types::four_two_two_type_i_multi_panel_restrict); + return c.get >(); +} void codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_::to_json( json_writer& j) const { @@ -37640,7 +39756,7 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_:: return SRSASN_SUCCESS; } -std::string +const char* codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_::types_opts::to_string() const { @@ -37659,7 +39775,7 @@ codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_:: "codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::type_i_multi_panel_s_::ng_n1_n2_c_::types"); } -std::string codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::types_opts::to_string() const +const char* codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::types_opts::to_string() const { static const char* options[] = {"typeI-SinglePanel", "typeI-MultiPanel"}; return convert_enum_idx(options, 2, value, "codebook_cfg_s::codebook_type_c_::type1_s_::sub_type_c_::types"); @@ -37735,6 +39851,18 @@ codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::operator=( return *this; } +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::set_type_ii() +{ + set(types::type_ii); + return c.get(); +} +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_port_sel_s_& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::set_type_ii_port_sel() +{ + set(types::type_ii_port_sel); + return c.get(); +} void codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -38018,6 +40146,84 @@ codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codeb return *this; } +fixed_bitstring<16>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_two_one() +{ + set(types::two_one); + return c.get >(); +} +fixed_bitstring<43>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_two_two() +{ + set(types::two_two); + return c.get >(); +} +fixed_bitstring<32>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_four_one() +{ + set(types::four_one); + return c.get >(); +} +fixed_bitstring<59>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_three_two() +{ + set(types::three_two); + return c.get >(); +} +fixed_bitstring<48>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_six_one() +{ + set(types::six_one); + return c.get >(); +} +fixed_bitstring<75>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_four_two() +{ + set(types::four_two); + return c.get >(); +} +fixed_bitstring<64>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_eight_one() +{ + set(types::eight_one); + return c.get >(); +} +fixed_bitstring<107>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_four_three() +{ + set(types::four_three); + return c.get >(); +} +fixed_bitstring<107>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_six_two() +{ + set(types::six_two); + return c.get >(); +} +fixed_bitstring<96>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_twelve_one() +{ + set(types::twelve_one); + return c.get >(); +} +fixed_bitstring<139>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_four_four() +{ + set(types::four_four); + return c.get >(); +} +fixed_bitstring<139>& +codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::set_eight_two() +{ + set(types::eight_two); + return c.get >(); +} +fixed_bitstring<128>& codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_:: + n1_n2_codebook_subset_restrict_c_::set_sixteen_one() +{ + set(types::sixteen_one); + return c.get >(); +} void codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::to_json( json_writer& j) const { @@ -38178,7 +40384,7 @@ codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codeb return SRSASN_SUCCESS; } -std::string codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_:: +const char* codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_:: types_opts::to_string() const { static const char* options[] = {"two-one", @@ -38201,7 +40407,7 @@ std::string codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_: "codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_s_::n1_n2_codebook_subset_restrict_c_::types"); } -std::string +const char* codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_port_sel_s_::port_sel_sampling_size_opts::to_string() const { @@ -38224,13 +40430,13 @@ codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_port_sel_s_::po "codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::type_ii_port_sel_s_::port_sel_sampling_size_e_"); } -std::string codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::types_opts::to_string() const +const char* codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::types_opts::to_string() const { static const char* options[] = {"typeII", "typeII-PortSelection"}; return convert_enum_idx(options, 2, value, "codebook_cfg_s::codebook_type_c_::type2_s_::sub_type_c_::types"); } -std::string codebook_cfg_s::codebook_type_c_::type2_s_::phase_alphabet_size_opts::to_string() const +const char* codebook_cfg_s::codebook_type_c_::type2_s_::phase_alphabet_size_opts::to_string() const { static const char* options[] = {"n4", "n8"}; return convert_enum_idx(options, 2, value, "codebook_cfg_s::codebook_type_c_::type2_s_::phase_alphabet_size_e_"); @@ -38241,7 +40447,7 @@ uint8_t codebook_cfg_s::codebook_type_c_::type2_s_::phase_alphabet_size_opts::to return map_enum_number(options, 2, value, "codebook_cfg_s::codebook_type_c_::type2_s_::phase_alphabet_size_e_"); } -std::string codebook_cfg_s::codebook_type_c_::type2_s_::nof_beams_opts::to_string() const +const char* codebook_cfg_s::codebook_type_c_::type2_s_::nof_beams_opts::to_string() const { static const char* options[] = {"two", "three", "four"}; return convert_enum_idx(options, 3, value, "codebook_cfg_s::codebook_type_c_::type2_s_::nof_beams_e_"); @@ -38252,7 +40458,7 @@ uint8_t codebook_cfg_s::codebook_type_c_::type2_s_::nof_beams_opts::to_number() return map_enum_number(options, 3, value, "codebook_cfg_s::codebook_type_c_::type2_s_::nof_beams_e_"); } -std::string codebook_cfg_s::codebook_type_c_::types_opts::to_string() const +const char* codebook_cfg_s::codebook_type_c_::types_opts::to_string() const { static const char* options[] = {"type1", "type2"}; return convert_enum_idx(options, 2, value, "codebook_cfg_s::codebook_type_c_::types"); @@ -38372,6 +40578,25 @@ port_idx_for8_ranks_c& port_idx_for8_ranks_c::operator=(const port_idx_for8_rank return *this; } +port_idx_for8_ranks_c::port_idx8_s_& port_idx_for8_ranks_c::set_port_idx8() +{ + set(types::port_idx8); + return c.get(); +} +port_idx_for8_ranks_c::port_idx4_s_& port_idx_for8_ranks_c::set_port_idx4() +{ + set(types::port_idx4); + return c.get(); +} +port_idx_for8_ranks_c::port_idx2_s_& port_idx_for8_ranks_c::set_port_idx2() +{ + set(types::port_idx2); + return c.get(); +} +void port_idx_for8_ranks_c::set_port_idx1() +{ + set(types::port_idx1); +} void port_idx_for8_ranks_c::to_json(json_writer& j) const { j.start_obj(); @@ -38701,7 +40926,7 @@ SRSASN_CODE port_idx_for8_ranks_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string port_idx_for8_ranks_c::types_opts::to_string() const +const char* port_idx_for8_ranks_c::types_opts::to_string() const { static const char* options[] = {"portIndex8", "portIndex4", "portIndex2", "portIndex1"}; return convert_enum_idx(options, 4, value, "port_idx_for8_ranks_c::types"); @@ -39016,6 +41241,28 @@ csi_report_cfg_s::report_cfg_type_c_::operator=(const csi_report_cfg_s::report_c return *this; } +csi_report_cfg_s::report_cfg_type_c_::periodic_s_& csi_report_cfg_s::report_cfg_type_c_::set_periodic() +{ + set(types::periodic); + return c.get(); +} +csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pucch_s_& +csi_report_cfg_s::report_cfg_type_c_::set_semi_persistent_on_pucch() +{ + set(types::semi_persistent_on_pucch); + return c.get(); +} +csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pusch_s_& +csi_report_cfg_s::report_cfg_type_c_::set_semi_persistent_on_pusch() +{ + set(types::semi_persistent_on_pusch); + return c.get(); +} +csi_report_cfg_s::report_cfg_type_c_::aperiodic_s_& csi_report_cfg_s::report_cfg_type_c_::set_aperiodic() +{ + set(types::aperiodic); + return c.get(); +} void csi_report_cfg_s::report_cfg_type_c_::to_json(json_writer& j) const { j.start_obj(); @@ -39130,7 +41377,7 @@ SRSASN_CODE csi_report_cfg_s::report_cfg_type_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pusch_s_::report_slot_cfg_opts::to_string() const +const char* csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pusch_s_::report_slot_cfg_opts::to_string() const { static const char* options[] = {"sl5", "sl10", "sl20", "sl40", "sl80", "sl160", "sl320"}; return convert_enum_idx( @@ -39143,7 +41390,7 @@ uint16_t csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pusch_s_::repo options, 7, value, "csi_report_cfg_s::report_cfg_type_c_::semi_persistent_on_pusch_s_::report_slot_cfg_e_"); } -std::string csi_report_cfg_s::report_cfg_type_c_::types_opts::to_string() const +const char* csi_report_cfg_s::report_cfg_type_c_::types_opts::to_string() const { static const char* options[] = {"periodic", "semiPersistentOnPUCCH", "semiPersistentOnPUSCH", "aperiodic"}; return convert_enum_idx(options, 4, value, "csi_report_cfg_s::report_cfg_type_c_::types"); @@ -39153,6 +41400,39 @@ void csi_report_cfg_s::report_quant_c_::set(types::options e) { type_ = e; } +void csi_report_cfg_s::report_quant_c_::set_none() +{ + set(types::none); +} +void csi_report_cfg_s::report_quant_c_::set_cri_ri_pmi_cqi() +{ + set(types::cri_ri_pmi_cqi); +} +void csi_report_cfg_s::report_quant_c_::set_cri_ri_i1() +{ + set(types::cri_ri_i1); +} +csi_report_cfg_s::report_quant_c_::cri_ri_i1_cqi_s_& csi_report_cfg_s::report_quant_c_::set_cri_ri_i1_cqi() +{ + set(types::cri_ri_i1_cqi); + return c; +} +void csi_report_cfg_s::report_quant_c_::set_cri_ri_cqi() +{ + set(types::cri_ri_cqi); +} +void csi_report_cfg_s::report_quant_c_::set_cri_rsrp() +{ + set(types::cri_rsrp); +} +void csi_report_cfg_s::report_quant_c_::set_ssb_idx_rsrp() +{ + set(types::ssb_idx_rsrp); +} +void csi_report_cfg_s::report_quant_c_::set_cri_ri_li_pmi_cqi() +{ + set(types::cri_ri_li_pmi_cqi); +} void csi_report_cfg_s::report_quant_c_::to_json(json_writer& j) const { j.start_obj(); @@ -39247,7 +41527,7 @@ SRSASN_CODE csi_report_cfg_s::report_quant_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_report_cfg_s::report_quant_c_::cri_ri_i1_cqi_s_::pdsch_bundle_size_for_csi_opts::to_string() const +const char* csi_report_cfg_s::report_quant_c_::cri_ri_i1_cqi_s_::pdsch_bundle_size_for_csi_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx( @@ -39260,7 +41540,7 @@ uint8_t csi_report_cfg_s::report_quant_c_::cri_ri_i1_cqi_s_::pdsch_bundle_size_f options, 2, value, "csi_report_cfg_s::report_quant_c_::cri_ri_i1_cqi_s_::pdsch_bundle_size_for_csi_e_"); } -std::string csi_report_cfg_s::report_quant_c_::types_opts::to_string() const +const char* csi_report_cfg_s::report_quant_c_::types_opts::to_string() const { static const char* options[] = {"none", "cri-RI-PMI-CQI", @@ -39273,13 +41553,13 @@ std::string csi_report_cfg_s::report_quant_c_::types_opts::to_string() const return convert_enum_idx(options, 8, value, "csi_report_cfg_s::report_quant_c_::types"); } -std::string csi_report_cfg_s::report_freq_cfg_s_::cqi_format_ind_opts::to_string() const +const char* csi_report_cfg_s::report_freq_cfg_s_::cqi_format_ind_opts::to_string() const { static const char* options[] = {"widebandCQI", "subbandCQI"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::report_freq_cfg_s_::cqi_format_ind_e_"); } -std::string csi_report_cfg_s::report_freq_cfg_s_::pmi_format_ind_opts::to_string() const +const char* csi_report_cfg_s::report_freq_cfg_s_::pmi_format_ind_opts::to_string() const { static const char* options[] = {"widebandPMI", "subbandPMI"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::report_freq_cfg_s_::pmi_format_ind_e_"); @@ -39535,6 +41815,91 @@ csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::operator=( return *this; } +fixed_bitstring<3>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands3() +{ + set(types::subbands3); + return c.get >(); +} +fixed_bitstring<4>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands4() +{ + set(types::subbands4); + return c.get >(); +} +fixed_bitstring<5>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands5() +{ + set(types::subbands5); + return c.get >(); +} +fixed_bitstring<6>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands6() +{ + set(types::subbands6); + return c.get >(); +} +fixed_bitstring<7>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands7() +{ + set(types::subbands7); + return c.get >(); +} +fixed_bitstring<8>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands8() +{ + set(types::subbands8); + return c.get >(); +} +fixed_bitstring<9>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands9() +{ + set(types::subbands9); + return c.get >(); +} +fixed_bitstring<10>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands10() +{ + set(types::subbands10); + return c.get >(); +} +fixed_bitstring<11>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands11() +{ + set(types::subbands11); + return c.get >(); +} +fixed_bitstring<12>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands12() +{ + set(types::subbands12); + return c.get >(); +} +fixed_bitstring<13>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands13() +{ + set(types::subbands13); + return c.get >(); +} +fixed_bitstring<14>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands14() +{ + set(types::subbands14); + return c.get >(); +} +fixed_bitstring<15>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands15() +{ + set(types::subbands15); + return c.get >(); +} +fixed_bitstring<16>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands16() +{ + set(types::subbands16); + return c.get >(); +} +fixed_bitstring<17>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands17() +{ + set(types::subbands17); + return c.get >(); +} +fixed_bitstring<18>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands18() +{ + set(types::subbands18); + return c.get >(); +} +fixed_bitstring<19>& csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::set_subbands19_v1530() +{ + set(types::subbands19_v1530); + return c.get >(); +} void csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::to_json(json_writer& j) const { j.start_obj(); @@ -39722,7 +42087,7 @@ SRSASN_CODE csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::unpack(cbi return SRSASN_SUCCESS; } -std::string csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::types_opts::to_string() const +const char* csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::types_opts::to_string() const { static const char* options[] = {"subbands3", "subbands4", @@ -39749,19 +42114,19 @@ uint8_t csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::types_opts::to return map_enum_number(options, 17, value, "csi_report_cfg_s::report_freq_cfg_s_::csi_report_band_c_::types"); } -std::string csi_report_cfg_s::time_restrict_for_ch_meass_opts::to_string() const +const char* csi_report_cfg_s::time_restrict_for_ch_meass_opts::to_string() const { static const char* options[] = {"configured", "notConfigured"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::time_restrict_for_ch_meass_e_"); } -std::string csi_report_cfg_s::time_restrict_for_interference_meass_opts::to_string() const +const char* csi_report_cfg_s::time_restrict_for_interference_meass_opts::to_string() const { static const char* options[] = {"configured", "notConfigured"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::time_restrict_for_interference_meass_e_"); } -std::string csi_report_cfg_s::dummy_opts::to_string() const +const char* csi_report_cfg_s::dummy_opts::to_string() const { static const char* options[] = {"n1", "n2"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::dummy_e_"); @@ -39776,6 +42141,15 @@ void csi_report_cfg_s::group_based_beam_report_c_::set(types::options e) { type_ = e; } +void csi_report_cfg_s::group_based_beam_report_c_::set_enabled() +{ + set(types::enabled); +} +csi_report_cfg_s::group_based_beam_report_c_::disabled_s_& csi_report_cfg_s::group_based_beam_report_c_::set_disabled() +{ + set(types::disabled); + return c; +} void csi_report_cfg_s::group_based_beam_report_c_::to_json(json_writer& j) const { j.start_obj(); @@ -39834,7 +42208,7 @@ SRSASN_CODE csi_report_cfg_s::group_based_beam_report_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_report_cfg_s::group_based_beam_report_c_::disabled_s_::nrof_reported_rs_opts::to_string() const +const char* csi_report_cfg_s::group_based_beam_report_c_::disabled_s_::nrof_reported_rs_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4"}; return convert_enum_idx( @@ -39847,13 +42221,13 @@ uint8_t csi_report_cfg_s::group_based_beam_report_c_::disabled_s_::nrof_reported options, 4, value, "csi_report_cfg_s::group_based_beam_report_c_::disabled_s_::nrof_reported_rs_e_"); } -std::string csi_report_cfg_s::group_based_beam_report_c_::types_opts::to_string() const +const char* csi_report_cfg_s::group_based_beam_report_c_::types_opts::to_string() const { static const char* options[] = {"enabled", "disabled"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::group_based_beam_report_c_::types"); } -std::string csi_report_cfg_s::cqi_table_opts::to_string() const +const char* csi_report_cfg_s::cqi_table_opts::to_string() const { static const char* options[] = {"table1", "table2", "table3", "spare1"}; return convert_enum_idx(options, 4, value, "csi_report_cfg_s::cqi_table_e_"); @@ -39864,7 +42238,7 @@ uint8_t csi_report_cfg_s::cqi_table_opts::to_number() const return map_enum_number(options, 3, value, "csi_report_cfg_s::cqi_table_e_"); } -std::string csi_report_cfg_s::subband_size_opts::to_string() const +const char* csi_report_cfg_s::subband_size_opts::to_string() const { static const char* options[] = {"value1", "value2"}; return convert_enum_idx(options, 2, value, "csi_report_cfg_s::subband_size_e_"); @@ -39875,7 +42249,7 @@ uint8_t csi_report_cfg_s::subband_size_opts::to_number() const return map_enum_number(options, 2, value, "csi_report_cfg_s::subband_size_e_"); } -std::string csi_report_cfg_s::semi_persistent_on_pusch_v1530_s_::report_slot_cfg_v1530_opts::to_string() const +const char* csi_report_cfg_s::semi_persistent_on_pusch_v1530_s_::report_slot_cfg_v1530_opts::to_string() const { static const char* options[] = {"sl4", "sl8", "sl16"}; return convert_enum_idx( @@ -39988,6 +42362,17 @@ csi_res_cfg_s::csi_rs_res_set_list_c_::operator=(const csi_res_cfg_s::csi_rs_res return *this; } +csi_res_cfg_s::csi_rs_res_set_list_c_::nzp_csi_rs_ssb_s_& csi_res_cfg_s::csi_rs_res_set_list_c_::set_nzp_csi_rs_ssb() +{ + set(types::nzp_csi_rs_ssb); + return c.get(); +} +csi_res_cfg_s::csi_rs_res_set_list_c_::csi_im_res_set_list_l_& +csi_res_cfg_s::csi_rs_res_set_list_c_::set_csi_im_res_set_list() +{ + set(types::csi_im_res_set_list); + return c.get(); +} void csi_res_cfg_s::csi_rs_res_set_list_c_::to_json(json_writer& j) const { j.start_obj(); @@ -40080,13 +42465,13 @@ SRSASN_CODE csi_res_cfg_s::csi_rs_res_set_list_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string csi_res_cfg_s::csi_rs_res_set_list_c_::types_opts::to_string() const +const char* csi_res_cfg_s::csi_rs_res_set_list_c_::types_opts::to_string() const { static const char* options[] = {"nzp-CSI-RS-SSB", "csi-IM-ResourceSetList"}; return convert_enum_idx(options, 2, value, "csi_res_cfg_s::csi_rs_res_set_list_c_::types"); } -std::string csi_res_cfg_s::res_type_opts::to_string() const +const char* csi_res_cfg_s::res_type_opts::to_string() const { static const char* options[] = {"aperiodic", "semiPersistent", "periodic"}; return convert_enum_idx(options, 3, value, "csi_res_cfg_s::res_type_e_"); @@ -40189,7 +42574,7 @@ void nzp_csi_rs_res_s::to_json(json_writer& j) const j.end_obj(); } -std::string nzp_csi_rs_res_s::pwr_ctrl_offset_ss_opts::to_string() const +const char* nzp_csi_rs_res_s::pwr_ctrl_offset_ss_opts::to_string() const { static const char* options[] = {"db-3", "db0", "db3", "db6"}; return convert_enum_idx(options, 4, value, "nzp_csi_rs_res_s::pwr_ctrl_offset_ss_e_"); @@ -40258,7 +42643,7 @@ void nzp_csi_rs_res_set_s::to_json(json_writer& j) const j.end_obj(); } -std::string nzp_csi_rs_res_set_s::repeat_opts::to_string() const +const char* nzp_csi_rs_res_set_s::repeat_opts::to_string() const { static const char* options[] = {"on", "off"}; return convert_enum_idx(options, 2, value, "nzp_csi_rs_res_set_s::repeat_e_"); @@ -40573,7 +42958,7 @@ void eutra_mbsfn_sf_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string eutra_mbsfn_sf_cfg_s::radioframe_alloc_period_opts::to_string() const +const char* eutra_mbsfn_sf_cfg_s::radioframe_alloc_period_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 6, value, "eutra_mbsfn_sf_cfg_s::radioframe_alloc_period_e_"); @@ -40652,6 +43037,16 @@ eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::operator=(const eutra_mbsfn_sf_cfg_s::sf_all return *this; } +fixed_bitstring<6>& eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::set_one_frame() +{ + set(types::one_frame); + return c.get >(); +} +fixed_bitstring<24>& eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::set_four_frames() +{ + set(types::four_frames); + return c.get >(); +} void eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -40702,7 +43097,7 @@ SRSASN_CODE eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::types_opts::to_string() const +const char* eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::types_opts::to_string() const { static const char* options[] = {"oneFrame", "fourFrames"}; return convert_enum_idx(options, 2, value, "eutra_mbsfn_sf_cfg_s::sf_alloc1_c_::types"); @@ -40781,6 +43176,16 @@ eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::operator=(const eutra_mbsfn_sf_cfg_s::sf_all return *this; } +fixed_bitstring<2>& eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::set_one_frame() +{ + set(types::one_frame); + return c.get >(); +} +fixed_bitstring<8>& eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::set_four_frames() +{ + set(types::four_frames); + return c.get >(); +} void eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::to_json(json_writer& j) const { j.start_obj(); @@ -40831,7 +43236,7 @@ SRSASN_CODE eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::types_opts::to_string() const +const char* eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::types_opts::to_string() const { static const char* options[] = {"oneFrame", "fourFrames"}; return convert_enum_idx(options, 2, value, "eutra_mbsfn_sf_cfg_s::sf_alloc2_c_::types"); @@ -41062,7 +43467,7 @@ void pusch_code_block_group_tx_s::to_json(json_writer& j) const j.end_obj(); } -std::string pusch_code_block_group_tx_s::max_code_block_groups_per_transport_block_opts::to_string() const +const char* pusch_code_block_group_tx_s::max_code_block_groups_per_transport_block_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "n8"}; return convert_enum_idx( @@ -41243,7 +43648,7 @@ void pdsch_code_block_group_tx_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_code_block_group_tx_s::max_code_block_groups_per_transport_block_opts::to_string() const +const char* pdsch_code_block_group_tx_s::max_code_block_groups_per_transport_block_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "n8"}; return convert_enum_idx( @@ -41349,7 +43754,7 @@ void pusch_serving_cell_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pusch_serving_cell_cfg_s::xoverhead_opts::to_string() const +const char* pusch_serving_cell_cfg_s::xoverhead_opts::to_string() const { static const char* options[] = {"xoh6", "xoh12", "xoh18"}; return convert_enum_idx(options, 3, value, "pusch_serving_cell_cfg_s::xoverhead_e_"); @@ -41361,7 +43766,7 @@ uint8_t pusch_serving_cell_cfg_s::xoverhead_opts::to_number() const } // PollByte ::= ENUMERATED -std::string poll_byte_opts::to_string() const +const char* poll_byte_opts::to_string() const { static const char* options[] = { "kB1", "kB2", "kB5", "kB8", "kB10", "kB15", "kB25", "kB50", "kB75", "kB100", @@ -41383,7 +43788,7 @@ int32_t poll_byte_opts::to_number() const } // PollPDU ::= ENUMERATED -std::string poll_pdu_opts::to_string() const +const char* poll_pdu_opts::to_string() const { static const char* options[] = {"p4", "p8", "p16", "p32", "p64", "p128", "p256", "p512", "p1024", "p2048", "p4096", "p6144", "p8192", "p12288", "p16384", "p20480", @@ -41444,7 +43849,7 @@ void rate_match_pattern_lte_crs_s::to_json(json_writer& j) const j.end_obj(); } -std::string rate_match_pattern_lte_crs_s::carrier_bw_dl_opts::to_string() const +const char* rate_match_pattern_lte_crs_s::carrier_bw_dl_opts::to_string() const { static const char* options[] = {"n6", "n15", "n25", "n50", "n75", "n100", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "rate_match_pattern_lte_crs_s::carrier_bw_dl_e_"); @@ -41455,7 +43860,7 @@ uint8_t rate_match_pattern_lte_crs_s::carrier_bw_dl_opts::to_number() const return map_enum_number(options, 6, value, "rate_match_pattern_lte_crs_s::carrier_bw_dl_e_"); } -std::string rate_match_pattern_lte_crs_s::nrof_crs_ports_opts::to_string() const +const char* rate_match_pattern_lte_crs_s::nrof_crs_ports_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4"}; return convert_enum_idx(options, 3, value, "rate_match_pattern_lte_crs_s::nrof_crs_ports_e_"); @@ -41466,7 +43871,7 @@ uint8_t rate_match_pattern_lte_crs_s::nrof_crs_ports_opts::to_number() const return map_enum_number(options, 3, value, "rate_match_pattern_lte_crs_s::nrof_crs_ports_e_"); } -std::string rate_match_pattern_lte_crs_s::v_shift_opts::to_string() const +const char* rate_match_pattern_lte_crs_s::v_shift_opts::to_string() const { static const char* options[] = {"n0", "n1", "n2", "n3", "n4", "n5"}; return convert_enum_idx(options, 6, value, "rate_match_pattern_lte_crs_s::v_shift_e_"); @@ -41478,7 +43883,7 @@ uint8_t rate_match_pattern_lte_crs_s::v_shift_opts::to_number() const } // SN-FieldLengthAM ::= ENUMERATED -std::string sn_field_len_am_opts::to_string() const +const char* sn_field_len_am_opts::to_string() const { static const char* options[] = {"size12", "size18"}; return convert_enum_idx(options, 2, value, "sn_field_len_am_e"); @@ -41490,7 +43895,7 @@ uint8_t sn_field_len_am_opts::to_number() const } // SN-FieldLengthUM ::= ENUMERATED -std::string sn_field_len_um_opts::to_string() const +const char* sn_field_len_um_opts::to_string() const { static const char* options[] = {"size6", "size12"}; return convert_enum_idx(options, 2, value, "sn_field_len_um_e"); @@ -41563,7 +43968,7 @@ void srs_carrier_switching_s::to_json(json_writer& j) const j.end_obj(); } -std::string srs_carrier_switching_s::srs_switch_from_carrier_opts::to_string() const +const char* srs_carrier_switching_s::srs_switch_from_carrier_opts::to_string() const { static const char* options[] = {"sUL", "nUL"}; return convert_enum_idx(options, 2, value, "srs_carrier_switching_s::srs_switch_from_carrier_e_"); @@ -41638,6 +44043,17 @@ srs_carrier_switching_s::srs_tpc_pdcch_group_c_::operator=(const srs_carrier_swi return *this; } +srs_carrier_switching_s::srs_tpc_pdcch_group_c_::type_a_l_& +srs_carrier_switching_s::srs_tpc_pdcch_group_c_::set_type_a() +{ + set(types::type_a); + return c.get(); +} +srs_tpc_pdcch_cfg_s& srs_carrier_switching_s::srs_tpc_pdcch_group_c_::set_type_b() +{ + set(types::type_b); + return c.get(); +} void srs_carrier_switching_s::srs_tpc_pdcch_group_c_::to_json(json_writer& j) const { j.start_obj(); @@ -41693,7 +44109,7 @@ SRSASN_CODE srs_carrier_switching_s::srs_tpc_pdcch_group_c_::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string srs_carrier_switching_s::srs_tpc_pdcch_group_c_::types_opts::to_string() const +const char* srs_carrier_switching_s::srs_tpc_pdcch_group_c_::types_opts::to_string() const { static const char* options[] = {"typeA", "typeB"}; return convert_enum_idx(options, 2, value, "srs_carrier_switching_s::srs_tpc_pdcch_group_c_::types"); @@ -41757,7 +44173,7 @@ void slot_format_ind_s::to_json(json_writer& j) const } // T-PollRetransmit ::= ENUMERATED -std::string t_poll_retx_opts::to_string() const +const char* t_poll_retx_opts::to_string() const { static const char* options[] = { "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", "ms35", "ms40", "ms45", "ms50", "ms55", @@ -41778,7 +44194,7 @@ uint16_t t_poll_retx_opts::to_number() const } // T-Reassembly ::= ENUMERATED -std::string t_reassembly_opts::to_string() const +const char* t_reassembly_opts::to_string() const { static const char* options[] = {"ms0", "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", "ms35", "ms40", "ms45", "ms50", "ms55", "ms60", "ms65", "ms70", "ms75", @@ -41794,7 +44210,7 @@ uint8_t t_reassembly_opts::to_number() const } // T-StatusProhibit ::= ENUMERATED -std::string t_status_prohibit_opts::to_string() const +const char* t_status_prohibit_opts::to_string() const { static const char* options[] = { "ms0", "ms5", "ms10", "ms15", "ms20", "ms25", "ms30", "ms35", "ms40", "ms45", "ms50", @@ -41842,6 +44258,19 @@ void tdd_ul_dl_slot_cfg_s::symbols_c_::set(types::options e) { type_ = e; } +void tdd_ul_dl_slot_cfg_s::symbols_c_::set_all_dl() +{ + set(types::all_dl); +} +void tdd_ul_dl_slot_cfg_s::symbols_c_::set_all_ul() +{ + set(types::all_ul); +} +tdd_ul_dl_slot_cfg_s::symbols_c_::explicit_s_& tdd_ul_dl_slot_cfg_s::symbols_c_::set_explicit_type() +{ + set(types::explicit_type); + return c; +} void tdd_ul_dl_slot_cfg_s::symbols_c_::to_json(json_writer& j) const { j.start_obj(); @@ -41917,7 +44346,7 @@ SRSASN_CODE tdd_ul_dl_slot_cfg_s::symbols_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string tdd_ul_dl_slot_cfg_s::symbols_c_::types_opts::to_string() const +const char* tdd_ul_dl_slot_cfg_s::symbols_c_::types_opts::to_string() const { static const char* options[] = {"allDownlink", "allUplink", "explicit"}; return convert_enum_idx(options, 3, value, "tdd_ul_dl_slot_cfg_s::symbols_c_::types"); @@ -42061,6 +44490,16 @@ cross_carrier_sched_cfg_s::sched_cell_info_c_::operator=(const cross_carrier_sch return *this; } +cross_carrier_sched_cfg_s::sched_cell_info_c_::own_s_& cross_carrier_sched_cfg_s::sched_cell_info_c_::set_own() +{ + set(types::own); + return c.get(); +} +cross_carrier_sched_cfg_s::sched_cell_info_c_::other_s_& cross_carrier_sched_cfg_s::sched_cell_info_c_::set_other() +{ + set(types::other); + return c.get(); +} void cross_carrier_sched_cfg_s::sched_cell_info_c_::to_json(json_writer& j) const { j.start_obj(); @@ -42120,7 +44559,7 @@ SRSASN_CODE cross_carrier_sched_cfg_s::sched_cell_info_c_::unpack(cbit_ref& bref return SRSASN_SUCCESS; } -std::string cross_carrier_sched_cfg_s::sched_cell_info_c_::types_opts::to_string() const +const char* cross_carrier_sched_cfg_s::sched_cell_info_c_::types_opts::to_string() const { static const char* options[] = {"own", "other"}; return convert_enum_idx(options, 2, value, "cross_carrier_sched_cfg_s::sched_cell_info_c_::types"); @@ -42338,7 +44777,7 @@ void pdsch_serving_cell_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdsch_serving_cell_cfg_s::xoverhead_opts::to_string() const +const char* pdsch_serving_cell_cfg_s::xoverhead_opts::to_string() const { static const char* options[] = {"xOh6", "xOh12", "xOh18"}; return convert_enum_idx(options, 3, value, "pdsch_serving_cell_cfg_s::xoverhead_e_"); @@ -42349,7 +44788,7 @@ uint8_t pdsch_serving_cell_cfg_s::xoverhead_opts::to_number() const return map_enum_number(options, 3, value, "pdsch_serving_cell_cfg_s::xoverhead_e_"); } -std::string pdsch_serving_cell_cfg_s::nrof_harq_processes_for_pdsch_opts::to_string() const +const char* pdsch_serving_cell_cfg_s::nrof_harq_processes_for_pdsch_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "n10", "n12", "n16"}; return convert_enum_idx(options, 6, value, "pdsch_serving_cell_cfg_s::nrof_harq_processes_for_pdsch_e_"); @@ -42441,7 +44880,7 @@ void sched_request_to_add_mod_s::to_json(json_writer& j) const j.end_obj(); } -std::string sched_request_to_add_mod_s::sr_prohibit_timer_opts::to_string() const +const char* sched_request_to_add_mod_s::sr_prohibit_timer_opts::to_string() const { static const char* options[] = {"ms1", "ms2", "ms4", "ms8", "ms16", "ms32", "ms64", "ms128"}; return convert_enum_idx(options, 8, value, "sched_request_to_add_mod_s::sr_prohibit_timer_e_"); @@ -42452,7 +44891,7 @@ uint8_t sched_request_to_add_mod_s::sr_prohibit_timer_opts::to_number() const return map_enum_number(options, 8, value, "sched_request_to_add_mod_s::sr_prohibit_timer_e_"); } -std::string sched_request_to_add_mod_s::sr_trans_max_opts::to_string() const +const char* sched_request_to_add_mod_s::sr_trans_max_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "sched_request_to_add_mod_s::sr_trans_max_e_"); @@ -42636,7 +45075,7 @@ void serving_cell_cfg_common_s::to_json(json_writer& j) const j.end_obj(); } -std::string serving_cell_cfg_common_s::n_timing_advance_offset_opts::to_string() const +const char* serving_cell_cfg_common_s::n_timing_advance_offset_opts::to_string() const { static const char* options[] = {"n0", "n25600", "n39936"}; return convert_enum_idx(options, 3, value, "serving_cell_cfg_common_s::n_timing_advance_offset_e_"); @@ -42728,6 +45167,21 @@ serving_cell_cfg_common_s::ssb_positions_in_burst_c_& serving_cell_cfg_common_s: return *this; } +fixed_bitstring<4>& serving_cell_cfg_common_s::ssb_positions_in_burst_c_::set_short_bitmap() +{ + set(types::short_bitmap); + return c.get >(); +} +fixed_bitstring<8>& serving_cell_cfg_common_s::ssb_positions_in_burst_c_::set_medium_bitmap() +{ + set(types::medium_bitmap); + return c.get >(); +} +fixed_bitstring<64>& serving_cell_cfg_common_s::ssb_positions_in_burst_c_::set_long_bitmap() +{ + set(types::long_bitmap); + return c.get >(); +} void serving_cell_cfg_common_s::ssb_positions_in_burst_c_::to_json(json_writer& j) const { j.start_obj(); @@ -42787,13 +45241,13 @@ SRSASN_CODE serving_cell_cfg_common_s::ssb_positions_in_burst_c_::unpack(cbit_re return SRSASN_SUCCESS; } -std::string serving_cell_cfg_common_s::ssb_positions_in_burst_c_::types_opts::to_string() const +const char* serving_cell_cfg_common_s::ssb_positions_in_burst_c_::types_opts::to_string() const { static const char* options[] = {"shortBitmap", "mediumBitmap", "longBitmap"}; return convert_enum_idx(options, 3, value, "serving_cell_cfg_common_s::ssb_positions_in_burst_c_::types"); } -std::string serving_cell_cfg_common_s::ssb_periodicity_serving_cell_opts::to_string() const +const char* serving_cell_cfg_common_s::ssb_periodicity_serving_cell_opts::to_string() const { static const char* options[] = {"ms5", "ms10", "ms20", "ms40", "ms80", "ms160", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "serving_cell_cfg_common_s::ssb_periodicity_serving_cell_e_"); @@ -42804,7 +45258,7 @@ uint8_t serving_cell_cfg_common_s::ssb_periodicity_serving_cell_opts::to_number( return map_enum_number(options, 6, value, "serving_cell_cfg_common_s::ssb_periodicity_serving_cell_e_"); } -std::string serving_cell_cfg_common_s::dmrs_type_a_position_opts::to_string() const +const char* serving_cell_cfg_common_s::dmrs_type_a_position_opts::to_string() const { static const char* options[] = {"pos2", "pos3"}; return convert_enum_idx(options, 2, value, "serving_cell_cfg_common_s::dmrs_type_a_position_e_"); @@ -42933,7 +45387,7 @@ void ul_am_rlc_s::to_json(json_writer& j) const j.end_obj(); } -std::string ul_am_rlc_s::max_retx_thres_opts::to_string() const +const char* ul_am_rlc_s::max_retx_thres_opts::to_string() const { static const char* options[] = {"t1", "t2", "t3", "t4", "t6", "t8", "t16", "t32"}; return convert_enum_idx(options, 8, value, "ul_am_rlc_s::max_retx_thres_e_"); @@ -43160,7 +45614,7 @@ void bsr_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string bsr_cfg_s::periodic_bsr_timer_opts::to_string() const +const char* bsr_cfg_s::periodic_bsr_timer_opts::to_string() const { static const char* options[] = {"sf1", "sf5", @@ -43186,7 +45640,7 @@ int16_t bsr_cfg_s::periodic_bsr_timer_opts::to_number() const return map_enum_number(options, 16, value, "bsr_cfg_s::periodic_bsr_timer_e_"); } -std::string bsr_cfg_s::retx_bsr_timer_opts::to_string() const +const char* bsr_cfg_s::retx_bsr_timer_opts::to_string() const { static const char* options[] = {"sf10", "sf20", @@ -43212,7 +45666,7 @@ uint16_t bsr_cfg_s::retx_bsr_timer_opts::to_number() const return map_enum_number(options, 11, value, "bsr_cfg_s::retx_bsr_timer_e_"); } -std::string bsr_cfg_s::lc_ch_sr_delay_timer_opts::to_string() const +const char* bsr_cfg_s::lc_ch_sr_delay_timer_opts::to_string() const { static const char* options[] = {"sf20", "sf40", "sf64", "sf128", "sf512", "sf1024", "sf2560", "spare1"}; return convert_enum_idx(options, 8, value, "bsr_cfg_s::lc_ch_sr_delay_timer_e_"); @@ -43328,6 +45782,16 @@ drx_cfg_s::drx_on_dur_timer_c_& drx_cfg_s::drx_on_dur_timer_c_::operator=(const return *this; } +uint8_t& drx_cfg_s::drx_on_dur_timer_c_::set_sub_milli_seconds() +{ + set(types::sub_milli_seconds); + return c.get(); +} +drx_cfg_s::drx_on_dur_timer_c_::milli_seconds_e_& drx_cfg_s::drx_on_dur_timer_c_::set_milli_seconds() +{ + set(types::milli_seconds); + return c.get(); +} void drx_cfg_s::drx_on_dur_timer_c_::to_json(json_writer& j) const { j.start_obj(); @@ -43378,7 +45842,7 @@ SRSASN_CODE drx_cfg_s::drx_on_dur_timer_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drx_cfg_s::drx_on_dur_timer_c_::milli_seconds_opts::to_string() const +const char* drx_cfg_s::drx_on_dur_timer_c_::milli_seconds_opts::to_string() const { static const char* options[] = {"ms1", "ms2", "ms3", "ms4", "ms5", "ms6", "ms8", "ms10", "ms20", "ms30", "ms40", "ms50", "ms60", "ms80", "ms100", "ms200", @@ -43393,13 +45857,13 @@ uint16_t drx_cfg_s::drx_on_dur_timer_c_::milli_seconds_opts::to_number() const return map_enum_number(options, 24, value, "drx_cfg_s::drx_on_dur_timer_c_::milli_seconds_e_"); } -std::string drx_cfg_s::drx_on_dur_timer_c_::types_opts::to_string() const +const char* drx_cfg_s::drx_on_dur_timer_c_::types_opts::to_string() const { static const char* options[] = {"subMilliSeconds", "milliSeconds"}; return convert_enum_idx(options, 2, value, "drx_cfg_s::drx_on_dur_timer_c_::types"); } -std::string drx_cfg_s::drx_inactivity_timer_opts::to_string() const +const char* drx_cfg_s::drx_inactivity_timer_opts::to_string() const { static const char* options[] = {"ms0", "ms1", "ms2", "ms3", "ms4", "ms5", "ms6", "ms8", "ms10", "ms20", "ms30", "ms40", "ms50", "ms60", "ms80", "ms100", @@ -43414,7 +45878,7 @@ uint16_t drx_cfg_s::drx_inactivity_timer_opts::to_number() const return map_enum_number(options, 23, value, "drx_cfg_s::drx_inactivity_timer_e_"); } -std::string drx_cfg_s::drx_retx_timer_dl_opts::to_string() const +const char* drx_cfg_s::drx_retx_timer_dl_opts::to_string() const { static const char* options[] = {"sl0", "sl1", "sl2", "sl4", "sl6", "sl8", "sl16", "sl24", "sl33", "sl40", "sl64", "sl80", "sl96", "sl112", "sl128", "sl160", @@ -43428,7 +45892,7 @@ uint16_t drx_cfg_s::drx_retx_timer_dl_opts::to_number() const return map_enum_number(options, 17, value, "drx_cfg_s::drx_retx_timer_dl_e_"); } -std::string drx_cfg_s::drx_retx_timer_ul_opts::to_string() const +const char* drx_cfg_s::drx_retx_timer_ul_opts::to_string() const { static const char* options[] = {"sl0", "sl1", "sl2", "sl4", "sl6", "sl8", "sl16", "sl24", "sl33", "sl40", "sl64", "sl80", "sl96", "sl112", "sl128", "sl160", @@ -43595,6 +46059,106 @@ drx_cfg_s::drx_long_cycle_start_offset_c_::operator=(const drx_cfg_s::drx_long_c return *this; } +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms10() +{ + set(types::ms10); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms20() +{ + set(types::ms20); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms32() +{ + set(types::ms32); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms40() +{ + set(types::ms40); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms60() +{ + set(types::ms60); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms64() +{ + set(types::ms64); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms70() +{ + set(types::ms70); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms80() +{ + set(types::ms80); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms128() +{ + set(types::ms128); + return c.get(); +} +uint8_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms160() +{ + set(types::ms160); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms256() +{ + set(types::ms256); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms320() +{ + set(types::ms320); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms512() +{ + set(types::ms512); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms640() +{ + set(types::ms640); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms1024() +{ + set(types::ms1024); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms1280() +{ + set(types::ms1280); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms2048() +{ + set(types::ms2048); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms2560() +{ + set(types::ms2560); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms5120() +{ + set(types::ms5120); + return c.get(); +} +uint16_t& drx_cfg_s::drx_long_cycle_start_offset_c_::set_ms10240() +{ + set(types::ms10240); + return c.get(); +} void drx_cfg_s::drx_long_cycle_start_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -43807,7 +46371,7 @@ SRSASN_CODE drx_cfg_s::drx_long_cycle_start_offset_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drx_cfg_s::drx_long_cycle_start_offset_c_::types_opts::to_string() const +const char* drx_cfg_s::drx_long_cycle_start_offset_c_::types_opts::to_string() const { static const char* options[] = {"ms10", "ms20", "ms32", "ms40", "ms60", "ms64", "ms70", "ms80", "ms128", "ms160", "ms256", "ms320", "ms512", "ms640", @@ -43821,7 +46385,7 @@ uint16_t drx_cfg_s::drx_long_cycle_start_offset_c_::types_opts::to_number() cons return map_enum_number(options, 20, value, "drx_cfg_s::drx_long_cycle_start_offset_c_::types"); } -std::string drx_cfg_s::short_drx_s_::drx_short_cycle_opts::to_string() const +const char* drx_cfg_s::short_drx_s_::drx_short_cycle_opts::to_string() const { static const char* options[] = {"ms2", "ms3", "ms4", "ms5", "ms6", "ms7", "ms8", "ms10", "ms14", "ms16", "ms20", "ms30", "ms32", "ms35", "ms40", "ms64", @@ -43837,7 +46401,7 @@ uint16_t drx_cfg_s::short_drx_s_::drx_short_cycle_opts::to_number() const } // DataInactivityTimer ::= ENUMERATED -std::string data_inactivity_timer_opts::to_string() const +const char* data_inactivity_timer_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s40", "s50", "s60", "s80", "s100", "s120", "s150", "s180"}; @@ -44004,7 +46568,7 @@ void lc_ch_cfg_s::ul_specific_params_s_::to_json(json_writer& j) const j.end_obj(); } -std::string lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_string() const { static const char* options[] = {"kBps0", "kBps8", @@ -44030,7 +46594,7 @@ int32_t lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_opts::to_number return map_enum_number(options, 16, value, "lc_ch_cfg_s::ul_specific_params_s_::prioritised_bit_rate_e_"); } -std::string lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_string() const { static const char* options[] = {"ms5", "ms10", @@ -44056,13 +46620,13 @@ uint16_t lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_opts::to_number() c return map_enum_number(options, 9, value, "lc_ch_cfg_s::ul_specific_params_s_::bucket_size_dur_e_"); } -std::string lc_ch_cfg_s::ul_specific_params_s_::max_pusch_dur_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::max_pusch_dur_opts::to_string() const { static const char* options[] = {"ms0p02", "ms0p04", "ms0p0625", "ms0p125", "ms0p25", "ms0p5", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::ul_specific_params_s_::max_pusch_dur_e_"); } -std::string lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_opts::to_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_opts::to_string() const { static const char* options[] = {"s0", "s0dot4", "s0dot8", "s1dot6", "s3", "s6", "s12", "s30"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_e_"); @@ -44072,7 +46636,7 @@ float lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_opts::to static const float options[] = {0.0, 0.4, 0.8, 1.6, 3.0, 6.0, 12.0, 30.0}; return map_enum_number(options, 8, value, "lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_e_"); } -std::string lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_opts::to_number_string() const +const char* lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_opts::to_number_string() const { static const char* options[] = {"0", "0.4", "0.8", "1.6", "3", "6", "12", "30"}; return convert_enum_idx(options, 8, value, "lc_ch_cfg_s::ul_specific_params_s_::bit_rate_query_prohibit_timer_e_"); @@ -44118,7 +46682,7 @@ void phr_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string phr_cfg_s::phr_periodic_timer_opts::to_string() const +const char* phr_cfg_s::phr_periodic_timer_opts::to_string() const { static const char* options[] = {"sf10", "sf20", "sf50", "sf100", "sf200", "sf500", "sf1000", "infinity"}; return convert_enum_idx(options, 8, value, "phr_cfg_s::phr_periodic_timer_e_"); @@ -44129,7 +46693,7 @@ int16_t phr_cfg_s::phr_periodic_timer_opts::to_number() const return map_enum_number(options, 8, value, "phr_cfg_s::phr_periodic_timer_e_"); } -std::string phr_cfg_s::phr_prohibit_timer_opts::to_string() const +const char* phr_cfg_s::phr_prohibit_timer_opts::to_string() const { static const char* options[] = {"sf0", "sf10", "sf20", "sf50", "sf100", "sf200", "sf500", "sf1000"}; return convert_enum_idx(options, 8, value, "phr_cfg_s::phr_prohibit_timer_e_"); @@ -44140,7 +46704,7 @@ uint16_t phr_cfg_s::phr_prohibit_timer_opts::to_number() const return map_enum_number(options, 8, value, "phr_cfg_s::phr_prohibit_timer_e_"); } -std::string phr_cfg_s::phr_tx_pwr_factor_change_opts::to_string() const +const char* phr_cfg_s::phr_tx_pwr_factor_change_opts::to_string() const { static const char* options[] = {"dB1", "dB3", "dB6", "infinity"}; return convert_enum_idx(options, 4, value, "phr_cfg_s::phr_tx_pwr_factor_change_e_"); @@ -44151,7 +46715,7 @@ int8_t phr_cfg_s::phr_tx_pwr_factor_change_opts::to_number() const return map_enum_number(options, 4, value, "phr_cfg_s::phr_tx_pwr_factor_change_e_"); } -std::string phr_cfg_s::phr_mode_other_cg_opts::to_string() const +const char* phr_cfg_s::phr_mode_other_cg_opts::to_string() const { static const char* options[] = {"real", "virtual"}; return convert_enum_idx(options, 2, value, "phr_cfg_s::phr_mode_other_cg_e_"); @@ -44249,6 +46813,26 @@ rlc_cfg_c& rlc_cfg_c::operator=(const rlc_cfg_c& other) return *this; } +rlc_cfg_c::am_s_& rlc_cfg_c::set_am() +{ + set(types::am); + return c.get(); +} +rlc_cfg_c::um_bi_dir_s_& rlc_cfg_c::set_um_bi_dir() +{ + set(types::um_bi_dir); + return c.get(); +} +rlc_cfg_c::um_uni_dir_ul_s_& rlc_cfg_c::set_um_uni_dir_ul() +{ + set(types::um_uni_dir_ul); + return c.get(); +} +rlc_cfg_c::um_uni_dir_dl_s_& rlc_cfg_c::set_um_uni_dir_dl() +{ + set(types::um_uni_dir_dl); + return c.get(); +} void rlc_cfg_c::to_json(json_writer& j) const { j.start_obj(); @@ -44341,7 +46925,7 @@ SRSASN_CODE rlc_cfg_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlc_cfg_c::types_opts::to_string() const +const char* rlc_cfg_c::types_opts::to_string() const { static const char* options[] = {"am", "um-Bi-Directional", "um-Uni-Directional-UL", "um-Uni-Directional-DL"}; return convert_enum_idx(options, 4, value, "rlc_cfg_c::types"); @@ -44399,7 +46983,7 @@ void rlf_timers_and_consts_s::to_json(json_writer& j) const j.end_obj(); } -std::string rlf_timers_and_consts_s::t310_opts::to_string() const +const char* rlf_timers_and_consts_s::t310_opts::to_string() const { static const char* options[] = {"ms0", "ms50", "ms100", "ms200", "ms500", "ms1000", "ms2000", "ms4000", "ms6000"}; return convert_enum_idx(options, 9, value, "rlf_timers_and_consts_s::t310_e_"); @@ -44410,7 +46994,7 @@ uint16_t rlf_timers_and_consts_s::t310_opts::to_number() const return map_enum_number(options, 9, value, "rlf_timers_and_consts_s::t310_e_"); } -std::string rlf_timers_and_consts_s::n310_opts::to_string() const +const char* rlf_timers_and_consts_s::n310_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n6", "n8", "n10", "n20"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_s::n310_e_"); @@ -44421,7 +47005,7 @@ uint8_t rlf_timers_and_consts_s::n310_opts::to_number() const return map_enum_number(options, 8, value, "rlf_timers_and_consts_s::n310_e_"); } -std::string rlf_timers_and_consts_s::n311_opts::to_string() const +const char* rlf_timers_and_consts_s::n311_opts::to_string() const { static const char* options[] = {"n1", "n2", "n3", "n4", "n5", "n6", "n8", "n10"}; return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_s::n311_e_"); @@ -44432,7 +47016,7 @@ uint8_t rlf_timers_and_consts_s::n311_opts::to_number() const return map_enum_number(options, 8, value, "rlf_timers_and_consts_s::n311_e_"); } -std::string rlf_timers_and_consts_s::t311_opts::to_string() const +const char* rlf_timers_and_consts_s::t311_opts::to_string() const { static const char* options[] = {"ms1000", "ms3000", "ms5000", "ms10000", "ms15000", "ms20000", "ms30000"}; return convert_enum_idx(options, 7, value, "rlf_timers_and_consts_s::t311_e_"); @@ -44529,7 +47113,7 @@ void recfg_with_sync_s::to_json(json_writer& j) const j.end_obj(); } -std::string recfg_with_sync_s::t304_opts::to_string() const +const char* recfg_with_sync_s::t304_opts::to_string() const { static const char* options[] = {"ms50", "ms100", "ms150", "ms200", "ms500", "ms1000", "ms2000", "ms10000"}; return convert_enum_idx(options, 8, value, "recfg_with_sync_s::t304_e_"); @@ -44608,6 +47192,16 @@ recfg_with_sync_s::rach_cfg_ded_c_::operator=(const recfg_with_sync_s::rach_cfg_ return *this; } +rach_cfg_ded_s& recfg_with_sync_s::rach_cfg_ded_c_::set_ul() +{ + set(types::ul); + return c.get(); +} +rach_cfg_ded_s& recfg_with_sync_s::rach_cfg_ded_c_::set_supplementary_ul() +{ + set(types::supplementary_ul); + return c.get(); +} void recfg_with_sync_s::rach_cfg_ded_c_::to_json(json_writer& j) const { j.start_obj(); @@ -44660,7 +47254,7 @@ SRSASN_CODE recfg_with_sync_s::rach_cfg_ded_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string recfg_with_sync_s::rach_cfg_ded_c_::types_opts::to_string() const +const char* recfg_with_sync_s::rach_cfg_ded_c_::types_opts::to_string() const { static const char* options[] = {"uplink", "supplementaryUplink"}; return convert_enum_idx(options, 2, value, "recfg_with_sync_s::rach_cfg_ded_c_::types"); @@ -45025,7 +47619,7 @@ void serving_cell_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string serving_cell_cfg_s::bwp_inactivity_timer_opts::to_string() const +const char* serving_cell_cfg_s::bwp_inactivity_timer_opts::to_string() const { static const char* options[] = {"ms2", "ms3", "ms4", "ms5", "ms6", "ms8", "ms10", "ms20", "ms30", "ms40", "ms50", "ms60", "ms80", "ms100", "ms200", "ms300", @@ -45040,7 +47634,7 @@ uint16_t serving_cell_cfg_s::bwp_inactivity_timer_opts::to_number() const return map_enum_number(options, 21, value, "serving_cell_cfg_s::bwp_inactivity_timer_e_"); } -std::string serving_cell_cfg_s::scell_deactivation_timer_opts::to_string() const +const char* serving_cell_cfg_s::scell_deactivation_timer_opts::to_string() const { static const char* options[] = {"ms20", "ms40", @@ -45066,7 +47660,7 @@ uint16_t serving_cell_cfg_s::scell_deactivation_timer_opts::to_number() const return map_enum_number(options, 14, value, "serving_cell_cfg_s::scell_deactivation_timer_e_"); } -std::string serving_cell_cfg_s::pathloss_ref_linking_opts::to_string() const +const char* serving_cell_cfg_s::pathloss_ref_linking_opts::to_string() const { static const char* options[] = {"spCell", "sCell"}; return convert_enum_idx(options, 2, value, "serving_cell_cfg_s::pathloss_ref_linking_e_"); @@ -45440,13 +48034,13 @@ void phys_cell_group_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string phys_cell_group_cfg_s::pdsch_harq_ack_codebook_opts::to_string() const +const char* phys_cell_group_cfg_s::pdsch_harq_ack_codebook_opts::to_string() const { static const char* options[] = {"semiStatic", "dynamic"}; return convert_enum_idx(options, 2, value, "phys_cell_group_cfg_s::pdsch_harq_ack_codebook_e_"); } -std::string phys_cell_group_cfg_s::xscale_opts::to_string() const +const char* phys_cell_group_cfg_s::xscale_opts::to_string() const { static const char* options[] = {"dB0", "dB6", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "phys_cell_group_cfg_s::xscale_e_"); @@ -45566,6 +48160,16 @@ rlc_bearer_cfg_s::served_radio_bearer_c_::operator=(const rlc_bearer_cfg_s::serv return *this; } +uint8_t& rlc_bearer_cfg_s::served_radio_bearer_c_::set_srb_id() +{ + set(types::srb_id); + return c.get(); +} +uint8_t& rlc_bearer_cfg_s::served_radio_bearer_c_::set_drb_id() +{ + set(types::drb_id); + return c.get(); +} void rlc_bearer_cfg_s::served_radio_bearer_c_::to_json(json_writer& j) const { j.start_obj(); @@ -45616,7 +48220,7 @@ SRSASN_CODE rlc_bearer_cfg_s::served_radio_bearer_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rlc_bearer_cfg_s::served_radio_bearer_c_::types_opts::to_string() const +const char* rlc_bearer_cfg_s::served_radio_bearer_c_::types_opts::to_string() const { static const char* options[] = {"srb-Identity", "drb-Identity"}; return convert_enum_idx(options, 2, value, "rlc_bearer_cfg_s::served_radio_bearer_c_::types"); @@ -46141,6 +48745,16 @@ feature_set_c& feature_set_c::operator=(const feature_set_c& other) return *this; } +feature_set_c::eutra_s_& feature_set_c::set_eutra() +{ + set(types::eutra); + return c.get(); +} +feature_set_c::nr_s_& feature_set_c::set_nr() +{ + set(types::nr); + return c.get(); +} void feature_set_c::to_json(json_writer& j) const { j.start_obj(); @@ -46203,7 +48817,7 @@ SRSASN_CODE feature_set_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string feature_set_c::types_opts::to_string() const +const char* feature_set_c::types_opts::to_string() const { static const char* options[] = {"eutra", "nr"}; return convert_enum_idx(options, 2, value, "feature_set_c::types"); @@ -46242,7 +48856,7 @@ void dummy_a_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_a_s::max_num_ports_across_nzp_csi_rs_per_cc_opts::to_string() const +const char* dummy_a_s::max_num_ports_across_nzp_csi_rs_per_cc_opts::to_string() const { static const char* options[] = {"p2", "p4", "p8", "p12", "p16", "p24", "p32", "p40", "p48", "p56", "p64", "p72", "p80", "p88", "p96", "p104", "p112", "p120", @@ -46258,7 +48872,7 @@ uint16_t dummy_a_s::max_num_ports_across_nzp_csi_rs_per_cc_opts::to_number() con return map_enum_number(options, 35, value, "dummy_a_s::max_num_ports_across_nzp_csi_rs_per_cc_e_"); } -std::string dummy_a_s::max_num_cs_im_per_cc_opts::to_string() const +const char* dummy_a_s::max_num_cs_im_per_cc_opts::to_string() const { static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32"}; return convert_enum_idx(options, 6, value, "dummy_a_s::max_num_cs_im_per_cc_e_"); @@ -46269,7 +48883,7 @@ uint8_t dummy_a_s::max_num_cs_im_per_cc_opts::to_number() const return map_enum_number(options, 6, value, "dummy_a_s::max_num_cs_im_per_cc_e_"); } -std::string dummy_a_s::max_num_simul_csi_rs_act_bwp_all_cc_opts::to_string() const +const char* dummy_a_s::max_num_simul_csi_rs_act_bwp_all_cc_opts::to_string() const { static const char* options[] = {"n5", "n6", "n7", "n8", "n9", "n10", "n12", "n14", "n16", "n18", "n20", "n22", "n24", "n26", "n28", "n30", "n32", "n34", "n36", "n38", "n40", "n42", @@ -46283,7 +48897,7 @@ uint8_t dummy_a_s::max_num_simul_csi_rs_act_bwp_all_cc_opts::to_number() const return map_enum_number(options, 33, value, "dummy_a_s::max_num_simul_csi_rs_act_bwp_all_cc_e_"); } -std::string dummy_a_s::total_num_ports_simul_csi_rs_act_bwp_all_cc_opts::to_string() const +const char* dummy_a_s::total_num_ports_simul_csi_rs_act_bwp_all_cc_opts::to_string() const { static const char* options[] = {"p8", "p12", "p16", "p24", "p32", "p40", "p48", "p56", "p64", "p72", "p80", "p88", "p96", "p104", "p112", "p120", "p128", "p136", @@ -46331,7 +48945,7 @@ void dummy_b_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_b_s::max_num_tx_ports_per_res_opts::to_string() const +const char* dummy_b_s::max_num_tx_ports_per_res_opts::to_string() const { static const char* options[] = {"p2", "p4", "p8", "p12", "p16", "p24", "p32"}; return convert_enum_idx(options, 7, value, "dummy_b_s::max_num_tx_ports_per_res_e_"); @@ -46342,7 +48956,7 @@ uint8_t dummy_b_s::max_num_tx_ports_per_res_opts::to_number() const return map_enum_number(options, 7, value, "dummy_b_s::max_num_tx_ports_per_res_e_"); } -std::string dummy_b_s::supported_codebook_mode_opts::to_string() const +const char* dummy_b_s::supported_codebook_mode_opts::to_string() const { static const char* options[] = {"mode1", "mode1AndMode2"}; return convert_enum_idx(options, 2, value, "dummy_b_s::supported_codebook_mode_e_"); @@ -46383,7 +48997,7 @@ void dummy_c_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_c_s::max_num_tx_ports_per_res_opts::to_string() const +const char* dummy_c_s::max_num_tx_ports_per_res_opts::to_string() const { static const char* options[] = {"p8", "p16", "p32"}; return convert_enum_idx(options, 3, value, "dummy_c_s::max_num_tx_ports_per_res_e_"); @@ -46394,7 +49008,7 @@ uint8_t dummy_c_s::max_num_tx_ports_per_res_opts::to_number() const return map_enum_number(options, 3, value, "dummy_c_s::max_num_tx_ports_per_res_e_"); } -std::string dummy_c_s::supported_codebook_mode_opts::to_string() const +const char* dummy_c_s::supported_codebook_mode_opts::to_string() const { static const char* options[] = {"mode1", "mode2", "both"}; return convert_enum_idx(options, 3, value, "dummy_c_s::supported_codebook_mode_e_"); @@ -46405,7 +49019,7 @@ uint8_t dummy_c_s::supported_codebook_mode_opts::to_number() const return map_enum_number(options, 2, value, "dummy_c_s::supported_codebook_mode_e_"); } -std::string dummy_c_s::supported_num_panels_opts::to_string() const +const char* dummy_c_s::supported_num_panels_opts::to_string() const { static const char* options[] = {"n2", "n4"}; return convert_enum_idx(options, 2, value, "dummy_c_s::supported_num_panels_e_"); @@ -46458,7 +49072,7 @@ void dummy_d_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_d_s::max_num_tx_ports_per_res_opts::to_string() const +const char* dummy_d_s::max_num_tx_ports_per_res_opts::to_string() const { static const char* options[] = {"p4", "p8", "p12", "p16", "p24", "p32"}; return convert_enum_idx(options, 6, value, "dummy_d_s::max_num_tx_ports_per_res_e_"); @@ -46469,7 +49083,7 @@ uint8_t dummy_d_s::max_num_tx_ports_per_res_opts::to_number() const return map_enum_number(options, 6, value, "dummy_d_s::max_num_tx_ports_per_res_e_"); } -std::string dummy_d_s::amplitude_scaling_type_opts::to_string() const +const char* dummy_d_s::amplitude_scaling_type_opts::to_string() const { static const char* options[] = {"wideband", "widebandAndSubband"}; return convert_enum_idx(options, 2, value, "dummy_d_s::amplitude_scaling_type_e_"); @@ -46510,7 +49124,7 @@ void dummy_e_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_e_s::max_num_tx_ports_per_res_opts::to_string() const +const char* dummy_e_s::max_num_tx_ports_per_res_opts::to_string() const { static const char* options[] = {"p4", "p8", "p12", "p16", "p24", "p32"}; return convert_enum_idx(options, 6, value, "dummy_e_s::max_num_tx_ports_per_res_e_"); @@ -46521,14 +49135,14 @@ uint8_t dummy_e_s::max_num_tx_ports_per_res_opts::to_number() const return map_enum_number(options, 6, value, "dummy_e_s::max_num_tx_ports_per_res_e_"); } -std::string dummy_e_s::amplitude_scaling_type_opts::to_string() const +const char* dummy_e_s::amplitude_scaling_type_opts::to_string() const { static const char* options[] = {"wideband", "widebandAndSubband"}; return convert_enum_idx(options, 2, value, "dummy_e_s::amplitude_scaling_type_e_"); } // FreqSeparationClass ::= ENUMERATED -std::string freq_separation_class_opts::to_string() const +const char* freq_separation_class_opts::to_string() const { static const char* options[] = {"c1", "c2", "c3"}; return convert_enum_idx(options, 3, value, "freq_separation_class_e"); @@ -46798,19 +49412,19 @@ void feature_set_dl_s::to_json(json_writer& j) const j.end_obj(); } -std::string feature_set_dl_s::scaling_factor_opts::to_string() const +const char* feature_set_dl_s::scaling_factor_opts::to_string() const { static const char* options[] = {"f0p4", "f0p75", "f0p8"}; return convert_enum_idx(options, 3, value, "feature_set_dl_s::scaling_factor_e_"); } -std::string feature_set_dl_s::pdcch_monitoring_any_occasions_opts::to_string() const +const char* feature_set_dl_s::pdcch_monitoring_any_occasions_opts::to_string() const { static const char* options[] = {"withoutDCI-Gap", "withDCI-Gap"}; return convert_enum_idx(options, 2, value, "feature_set_dl_s::pdcch_monitoring_any_occasions_e_"); } -std::string feature_set_dl_s::time_dur_for_qcl_s_::scs_minus60k_hz_opts::to_string() const +const char* feature_set_dl_s::time_dur_for_qcl_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"s7", "s14", "s28"}; return convert_enum_idx(options, 3, value, "feature_set_dl_s::time_dur_for_qcl_s_::scs_minus60k_hz_e_"); @@ -46821,7 +49435,7 @@ uint8_t feature_set_dl_s::time_dur_for_qcl_s_::scs_minus60k_hz_opts::to_number() return map_enum_number(options, 3, value, "feature_set_dl_s::time_dur_for_qcl_s_::scs_minus60k_hz_e_"); } -std::string feature_set_dl_s::time_dur_for_qcl_s_::scs_minus120k_hz_opts::to_string() const +const char* feature_set_dl_s::time_dur_for_qcl_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"s14", "s28"}; return convert_enum_idx(options, 2, value, "feature_set_dl_s::time_dur_for_qcl_s_::scs_minus120k_hz_e_"); @@ -46832,7 +49446,7 @@ uint8_t feature_set_dl_s::time_dur_for_qcl_s_::scs_minus120k_hz_opts::to_number( return map_enum_number(options, 2, value, "feature_set_dl_s::time_dur_for_qcl_s_::scs_minus120k_hz_e_"); } -std::string feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_opts::to_string() const +const char* feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -46845,7 +49459,7 @@ uint8_t feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_e_"); } -std::string feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_opts::to_string() const +const char* feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -46858,7 +49472,7 @@ uint8_t feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_e_"); } -std::string feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_opts::to_string() const +const char* feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -46871,7 +49485,7 @@ uint8_t feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_e_"); } -std::string feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus120k_hz_opts::to_string() const +const char* feature_set_dl_s::pdsch_processing_type1_different_tb_per_slot_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -46961,7 +49575,7 @@ void processing_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string processing_params_s::fallback_opts::to_string() const +const char* processing_params_s::fallback_opts::to_string() const { static const char* options[] = {"sc", "cap1-only"}; return convert_enum_idx(options, 2, value, "processing_params_s::fallback_e_"); @@ -47141,7 +49755,7 @@ void feature_set_dl_v1540_s::to_json(json_writer& j) const j.end_obj(); } -std::string +const char* feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus15k_hz_opts::to_string() const { static const char* options[] = {"set1", "set2", "set3"}; @@ -47155,7 +49769,7 @@ uint8_t feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_: options, 3, value, "feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus15k_hz_e_"); } -std::string +const char* feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"set1", "set2", "set3"}; @@ -47169,7 +49783,7 @@ uint8_t feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_: options, 3, value, "feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus30k_hz_e_"); } -std::string +const char* feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"set1", "set2", "set3"}; @@ -47183,7 +49797,7 @@ uint8_t feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_: options, 3, value, "feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus60k_hz_e_"); } -std::string +const char* feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"set1", "set2", "set3"}; @@ -47204,7 +49818,7 @@ feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_min "feature_set_dl_v1540_s::pdcch_monitoring_any_occasions_with_span_gap_s_::scs_minus120k_hz_e_"); } -std::string +const char* feature_set_dl_v1540_s::pdsch_processing_type2_limited_s_::different_tb_per_slot_scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"upto1", "upto2", "upto4", "upto7"}; @@ -47257,7 +49871,7 @@ void feature_set_dl_v15a0_s::to_json(json_writer& j) const } // ModulationOrder ::= ENUMERATED -std::string mod_order_opts::to_string() const +const char* mod_order_opts::to_string() const { static const char* options[] = {"bpsk-halfpi", "bpsk", "qpsk", "qam16", "qam64", "qam256"}; return convert_enum_idx(options, 6, value, "mod_order_e"); @@ -47278,7 +49892,7 @@ float mod_order_opts::to_number() const } return 0; } -std::string mod_order_opts::to_number_string() const +const char* mod_order_opts::to_number_string() const { static const char* options[] = {"0.5", "16", "64", "256"}; return convert_enum_idx(options, 6, value, "mod_order_e"); @@ -47328,6 +49942,16 @@ supported_bw_c& supported_bw_c::operator=(const supported_bw_c& other) return *this; } +supported_bw_c::fr1_e_& supported_bw_c::set_fr1() +{ + set(types::fr1); + return c.get(); +} +supported_bw_c::fr2_e_& supported_bw_c::set_fr2() +{ + set(types::fr2); + return c.get(); +} void supported_bw_c::to_json(json_writer& j) const { j.start_obj(); @@ -47378,7 +50002,7 @@ SRSASN_CODE supported_bw_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string supported_bw_c::fr1_opts::to_string() const +const char* supported_bw_c::fr1_opts::to_string() const { static const char* options[] = { "mhz5", "mhz10", "mhz15", "mhz20", "mhz25", "mhz30", "mhz40", "mhz50", "mhz60", "mhz80", "mhz100"}; @@ -47390,7 +50014,7 @@ uint8_t supported_bw_c::fr1_opts::to_number() const return map_enum_number(options, 11, value, "supported_bw_c::fr1_e_"); } -std::string supported_bw_c::fr2_opts::to_string() const +const char* supported_bw_c::fr2_opts::to_string() const { static const char* options[] = {"mhz50", "mhz100", "mhz200", "mhz400"}; return convert_enum_idx(options, 4, value, "supported_bw_c::fr2_e_"); @@ -47401,7 +50025,7 @@ uint16_t supported_bw_c::fr2_opts::to_number() const return map_enum_number(options, 4, value, "supported_bw_c::fr2_e_"); } -std::string supported_bw_c::types_opts::to_string() const +const char* supported_bw_c::types_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "supported_bw_c::types"); @@ -47521,7 +50145,7 @@ void dummy_i_s::to_json(json_writer& j) const j.end_obj(); } -std::string dummy_i_s::supported_srs_tx_port_switch_opts::to_string() const +const char* dummy_i_s::supported_srs_tx_port_switch_opts::to_string() const { static const char* options[] = {"t1r2", "t1r4", "t2r4", "t1r4-t2r4", "tr-equal"}; return convert_enum_idx(options, 5, value, "dummy_i_s::supported_srs_tx_port_switch_e_"); @@ -47691,13 +50315,13 @@ void feature_set_ul_s::to_json(json_writer& j) const j.end_obj(); } -std::string feature_set_ul_s::scaling_factor_opts::to_string() const +const char* feature_set_ul_s::scaling_factor_opts::to_string() const { static const char* options[] = {"f0p4", "f0p75", "f0p8"}; return convert_enum_idx(options, 3, value, "feature_set_ul_s::scaling_factor_e_"); } -std::string feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_opts::to_string() const +const char* feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -47710,7 +50334,7 @@ uint8_t feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus15k_hz_e_"); } -std::string feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_opts::to_string() const +const char* feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -47723,7 +50347,7 @@ uint8_t feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus30k_hz_e_"); } -std::string feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_opts::to_string() const +const char* feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -47736,7 +50360,7 @@ uint8_t feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_m options, 3, value, "feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus60k_hz_e_"); } -std::string feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus120k_hz_opts::to_string() const +const char* feature_set_ul_s::pusch_processing_type1_different_tb_per_slot_s_::scs_minus120k_hz_opts::to_string() const { static const char* options[] = {"upto2", "upto4", "upto7"}; return convert_enum_idx( @@ -48131,7 +50755,7 @@ void feature_sets_s::to_json(json_writer& j) const } // AggregatedBandwidth ::= ENUMERATED -std::string aggregated_bw_opts::to_string() const +const char* aggregated_bw_opts::to_string() const { static const char* options[] = {"mhz50", "mhz100", @@ -48335,6 +50959,16 @@ freq_band_info_c& freq_band_info_c::operator=(const freq_band_info_c& other) return *this; } +freq_band_info_eutra_s& freq_band_info_c::set_band_info_eutra() +{ + set(types::band_info_eutra); + return c.get(); +} +freq_band_info_nr_s& freq_band_info_c::set_band_info_nr() +{ + set(types::band_info_nr); + return c.get(); +} void freq_band_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -48387,7 +51021,7 @@ SRSASN_CODE freq_band_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string freq_band_info_c::types_opts::to_string() const +const char* freq_band_info_c::types_opts::to_string() const { static const char* options[] = {"bandInformationEUTRA", "bandInformationNR"}; return convert_enum_idx(options, 2, value, "freq_band_info_c::types"); @@ -48873,7 +51507,7 @@ void meas_and_mob_params_common_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_and_mob_params_common_s::max_num_csi_rs_rrm_rs_sinr_opts::to_string() const +const char* meas_and_mob_params_common_s::max_num_csi_rs_rrm_rs_sinr_opts::to_string() const { static const char* options[] = {"n4", "n8", "n16", "n32", "n64", "n96"}; return convert_enum_idx(options, 6, value, "meas_and_mob_params_common_s::max_num_csi_rs_rrm_rs_sinr_e_"); @@ -49000,7 +51634,7 @@ void meas_and_mob_params_frx_diff_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_and_mob_params_frx_diff_s::max_num_res_csi_rs_rlm_opts::to_string() const +const char* meas_and_mob_params_frx_diff_s::max_num_res_csi_rs_rlm_opts::to_string() const { static const char* options[] = {"n2", "n4", "n6", "n8"}; return convert_enum_idx(options, 4, value, "meas_and_mob_params_frx_diff_s::max_num_res_csi_rs_rlm_e_"); @@ -49904,7 +52538,7 @@ void phy_params_common_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_params_common_s::bwp_switching_delay_opts::to_string() const +const char* phy_params_common_s::bwp_switching_delay_opts::to_string() const { static const char* options[] = {"type1", "type2"}; return convert_enum_idx(options, 2, value, "phy_params_common_s::bwp_switching_delay_e_"); @@ -49994,7 +52628,7 @@ void phy_params_fr1_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_params_fr1_s::pdsch_re_map_fr1_per_symbol_opts::to_string() const +const char* phy_params_fr1_s::pdsch_re_map_fr1_per_symbol_opts::to_string() const { static const char* options[] = {"n10", "n20"}; return convert_enum_idx(options, 2, value, "phy_params_fr1_s::pdsch_re_map_fr1_per_symbol_e_"); @@ -50005,7 +52639,7 @@ uint8_t phy_params_fr1_s::pdsch_re_map_fr1_per_symbol_opts::to_number() const return map_enum_number(options, 2, value, "phy_params_fr1_s::pdsch_re_map_fr1_per_symbol_e_"); } -std::string phy_params_fr1_s::pdsch_re_map_fr1_per_slot_opts::to_string() const +const char* phy_params_fr1_s::pdsch_re_map_fr1_per_slot_opts::to_string() const { static const char* options[] = {"n16", "n32", @@ -50106,7 +52740,7 @@ void phy_params_fr2_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_params_fr2_s::pdsch_re_map_fr2_per_symbol_opts::to_string() const +const char* phy_params_fr2_s::pdsch_re_map_fr2_per_symbol_opts::to_string() const { static const char* options[] = {"n6", "n20"}; return convert_enum_idx(options, 2, value, "phy_params_fr2_s::pdsch_re_map_fr2_per_symbol_e_"); @@ -50117,7 +52751,7 @@ uint8_t phy_params_fr2_s::pdsch_re_map_fr2_per_symbol_opts::to_number() const return map_enum_number(options, 2, value, "phy_params_fr2_s::pdsch_re_map_fr2_per_symbol_e_"); } -std::string phy_params_fr2_s::pdsch_re_map_fr2_per_slot_opts::to_string() const +const char* phy_params_fr2_s::pdsch_re_map_fr2_per_slot_opts::to_string() const { static const char* options[] = {"n16", "n32", @@ -50590,13 +53224,13 @@ void phy_params_frx_diff_s::to_json(json_writer& j) const j.end_obj(); } -std::string phy_params_frx_diff_s::supported_dmrs_type_dl_opts::to_string() const +const char* phy_params_frx_diff_s::supported_dmrs_type_dl_opts::to_string() const { static const char* options[] = {"type1", "type1And2"}; return convert_enum_idx(options, 2, value, "phy_params_frx_diff_s::supported_dmrs_type_dl_e_"); } -std::string phy_params_frx_diff_s::supported_dmrs_type_ul_opts::to_string() const +const char* phy_params_frx_diff_s::supported_dmrs_type_ul_opts::to_string() const { static const char* options[] = {"type1", "type1And2"}; return convert_enum_idx(options, 2, value, "phy_params_frx_diff_s::supported_dmrs_type_ul_e_"); @@ -50783,7 +53417,7 @@ void naics_cap_entry_s::to_json(json_writer& j) const j.end_obj(); } -std::string naics_cap_entry_s::nof_aggregated_prb_opts::to_string() const +const char* naics_cap_entry_s::nof_aggregated_prb_opts::to_string() const { static const char* options[] = {"n50", "n75", @@ -52140,7 +54774,7 @@ void ue_nr_cap_add_xdd_mode_v1530_s::to_json(json_writer& j) const } // AccessStratumRelease ::= ENUMERATED -std::string access_stratum_release_opts::to_string() const +const char* access_stratum_release_opts::to_string() const { static const char* options[] = {"rel15", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "access_stratum_release_e"); @@ -52238,7 +54872,7 @@ void pdcp_params_s::to_json(json_writer& j) const j.end_obj(); } -std::string pdcp_params_s::max_num_rohc_context_sessions_opts::to_string() const +const char* pdcp_params_s::max_num_rohc_context_sessions_opts::to_string() const { static const char* options[] = {"cs2", "cs4", @@ -53382,7 +56016,7 @@ void affected_carrier_freq_comb_info_mrdc_s::to_json(json_writer& j) const j.end_obj(); } -std::string affected_carrier_freq_comb_info_mrdc_s::interference_direction_mrdc_opts::to_string() const +const char* affected_carrier_freq_comb_info_mrdc_s::interference_direction_mrdc_opts::to_string() const { static const char* options[] = {"eutra-nr", "nr", "other", "utra-nr-other", "nr-other", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "affected_carrier_freq_comb_info_mrdc_s::interference_direction_mrdc_e_"); @@ -53410,7 +56044,7 @@ void ph_ul_carrier_scg_s::to_json(json_writer& j) const j.end_obj(); } -std::string ph_ul_carrier_scg_s::ph_type1or3_opts::to_string() const +const char* ph_ul_carrier_scg_s::ph_type1or3_opts::to_string() const { static const char* options[] = {"type1", "type3"}; return convert_enum_idx(options, 2, value, "ph_ul_carrier_scg_s::ph_type1or3_e_"); @@ -53673,7 +56307,7 @@ void fr_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string fr_info_s::fr_type_opts::to_string() const +const char* fr_info_s::fr_type_opts::to_string() const { static const char* options[] = {"fr1", "fr2"}; return convert_enum_idx(options, 2, value, "fr_info_s::fr_type_e_"); @@ -54086,6 +56720,106 @@ drx_info_s::drx_long_cycle_start_offset_c_::operator=(const drx_info_s::drx_long return *this; } +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms10() +{ + set(types::ms10); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms20() +{ + set(types::ms20); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms32() +{ + set(types::ms32); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms40() +{ + set(types::ms40); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms60() +{ + set(types::ms60); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms64() +{ + set(types::ms64); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms70() +{ + set(types::ms70); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms80() +{ + set(types::ms80); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms128() +{ + set(types::ms128); + return c.get(); +} +uint8_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms160() +{ + set(types::ms160); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms256() +{ + set(types::ms256); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms320() +{ + set(types::ms320); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms512() +{ + set(types::ms512); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms640() +{ + set(types::ms640); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms1024() +{ + set(types::ms1024); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms1280() +{ + set(types::ms1280); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms2048() +{ + set(types::ms2048); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms2560() +{ + set(types::ms2560); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms5120() +{ + set(types::ms5120); + return c.get(); +} +uint16_t& drx_info_s::drx_long_cycle_start_offset_c_::set_ms10240() +{ + set(types::ms10240); + return c.get(); +} void drx_info_s::drx_long_cycle_start_offset_c_::to_json(json_writer& j) const { j.start_obj(); @@ -54298,7 +57032,7 @@ SRSASN_CODE drx_info_s::drx_long_cycle_start_offset_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string drx_info_s::drx_long_cycle_start_offset_c_::types_opts::to_string() const +const char* drx_info_s::drx_long_cycle_start_offset_c_::types_opts::to_string() const { static const char* options[] = {"ms10", "ms20", "ms32", "ms40", "ms60", "ms64", "ms70", "ms80", "ms128", "ms160", "ms256", "ms320", "ms512", "ms640", @@ -54312,7 +57046,7 @@ uint16_t drx_info_s::drx_long_cycle_start_offset_c_::types_opts::to_number() con return map_enum_number(options, 20, value, "drx_info_s::drx_long_cycle_start_offset_c_::types"); } -std::string drx_info_s::short_drx_s_::drx_short_cycle_opts::to_string() const +const char* drx_info_s::short_drx_s_::drx_short_cycle_opts::to_string() const { static const char* options[] = {"ms2", "ms3", "ms4", "ms5", "ms6", "ms7", "ms8", "ms10", "ms14", "ms16", "ms20", "ms30", "ms32", "ms35", "ms40", "ms64", @@ -54530,6 +57264,15 @@ void cg_cfg_s::crit_exts_c_::set(types::options e) { type_ = e; } +cg_cfg_s::crit_exts_c_::c1_c_& cg_cfg_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void cg_cfg_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void cg_cfg_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -54582,6 +57325,23 @@ void cg_cfg_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +cg_cfg_ies_s& cg_cfg_s::crit_exts_c_::c1_c_::set_cg_cfg() +{ + set(types::cg_cfg); + return c; +} +void cg_cfg_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void cg_cfg_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void cg_cfg_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void cg_cfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -54642,13 +57402,13 @@ SRSASN_CODE cg_cfg_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cg_cfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* cg_cfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"cg-Config", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "cg_cfg_s::crit_exts_c_::c1_c_::types"); } -std::string cg_cfg_s::crit_exts_c_::types_opts::to_string() const +const char* cg_cfg_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "cg_cfg_s::crit_exts_c_::types"); @@ -54722,7 +57482,7 @@ void ph_ul_carrier_mcg_s::to_json(json_writer& j) const j.end_obj(); } -std::string ph_ul_carrier_mcg_s::ph_type1or3_opts::to_string() const +const char* ph_ul_carrier_mcg_s::ph_type1or3_opts::to_string() const { static const char* options[] = {"type1", "type3"}; return convert_enum_idx(options, 2, value, "ph_ul_carrier_mcg_s::ph_type1or3_e_"); @@ -54980,7 +57740,7 @@ void cg_cfg_info_v1560_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string cg_cfg_info_v1560_ies_s::scg_fail_info_eutra_s_::fail_type_eutra_opts::to_string() const +const char* cg_cfg_info_v1560_ies_s::scg_fail_info_eutra_s_::fail_type_eutra_opts::to_string() const { static const char* options[] = {"t313-Expiry", "randomAccessProblem", "rlc-MaxNumRetx", "scg-ChangeFailure"}; return convert_enum_idx(options, 4, value, "cg_cfg_info_v1560_ies_s::scg_fail_info_eutra_s_::fail_type_eutra_e_"); @@ -55179,7 +57939,7 @@ void meas_cfg_mn_s::to_json(json_writer& j) const j.end_obj(); } -std::string meas_cfg_mn_s::gap_purpose_opts::to_string() const +const char* meas_cfg_mn_s::gap_purpose_opts::to_string() const { static const char* options[] = {"perUE", "perFR1"}; return convert_enum_idx(options, 2, value, "meas_cfg_mn_s::gap_purpose_e_"); @@ -55374,7 +58134,7 @@ void cg_cfg_info_ies_s::to_json(json_writer& j) const j.end_obj(); } -std::string cg_cfg_info_ies_s::scg_fail_info_s_::fail_type_opts::to_string() const +const char* cg_cfg_info_ies_s::scg_fail_info_s_::fail_type_opts::to_string() const { static const char* options[] = {"t310-Expiry", "randomAccessProblem", @@ -55422,6 +58182,15 @@ void cg_cfg_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +cg_cfg_info_s::crit_exts_c_::c1_c_& cg_cfg_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void cg_cfg_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void cg_cfg_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -55474,6 +58243,23 @@ void cg_cfg_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +cg_cfg_info_ies_s& cg_cfg_info_s::crit_exts_c_::c1_c_::set_cg_cfg_info() +{ + set(types::cg_cfg_info); + return c; +} +void cg_cfg_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void cg_cfg_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void cg_cfg_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void cg_cfg_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -55534,13 +58320,13 @@ SRSASN_CODE cg_cfg_info_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cg_cfg_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* cg_cfg_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"cg-ConfigInfo", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "cg_cfg_info_s::crit_exts_c_::c1_c_::types"); } -std::string cg_cfg_info_s::crit_exts_c_::types_opts::to_string() const +const char* cg_cfg_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "cg_cfg_info_s::crit_exts_c_::types"); @@ -55594,6 +58380,16 @@ cells_triggered_list_item_c_& cells_triggered_list_item_c_::operator=(const cell return *this; } +uint16_t& cells_triggered_list_item_c_::set_pci() +{ + set(types::pci); + return c.get(); +} +uint16_t& cells_triggered_list_item_c_::set_pci_eutra() +{ + set(types::pci_eutra); + return c.get(); +} void cells_triggered_list_item_c_::to_json(json_writer& j) const { j.start_obj(); @@ -55644,7 +58440,7 @@ SRSASN_CODE cells_triggered_list_item_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cells_triggered_list_item_c_::types_opts::to_string() const +const char* cells_triggered_list_item_c_::types_opts::to_string() const { static const char* options[] = {"physCellId", "physCellIdEUTRA"}; return convert_enum_idx(options, 2, value, "cells_triggered_list_item_c_::types"); @@ -55704,6 +58500,15 @@ void ho_cmd_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_cmd_s::crit_exts_c_::c1_c_& ho_cmd_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_cmd_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -55756,6 +58561,23 @@ void ho_cmd_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_cmd_ies_s& ho_cmd_s::crit_exts_c_::c1_c_::set_ho_cmd() +{ + set(types::ho_cmd); + return c; +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_cmd_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_cmd_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -55816,13 +58638,13 @@ SRSASN_CODE ho_cmd_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_cmd_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"handoverCommand", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ho_cmd_s::crit_exts_c_::c1_c_::types"); } -std::string ho_cmd_s::crit_exts_c_::types_opts::to_string() const +const char* ho_cmd_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ho_cmd_s::crit_exts_c_::types"); @@ -55918,7 +58740,7 @@ void rrm_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string rrm_cfg_s::ue_inactive_time_opts::to_string() const +const char* rrm_cfg_s::ue_inactive_time_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s25", "s30", @@ -56025,6 +58847,15 @@ void ho_prep_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ho_prep_info_s::crit_exts_c_::c1_c_& ho_prep_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ho_prep_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56077,6 +58908,23 @@ void ho_prep_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ho_prep_info_ies_s& ho_prep_info_s::crit_exts_c_::c1_c_::set_ho_prep_info() +{ + set(types::ho_prep_info); + return c; +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ho_prep_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ho_prep_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56137,13 +58985,13 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_prep_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ho_prep_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"handoverPreparationInformation", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "ho_prep_info_s::crit_exts_c_::c1_c_::types"); } -std::string ho_prep_info_s::crit_exts_c_::types_opts::to_string() const +const char* ho_prep_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ho_prep_info_s::crit_exts_c_::types"); @@ -56358,6 +59206,15 @@ void meas_timing_cfg_s::crit_exts_c_::set(types::options e) { type_ = e; } +meas_timing_cfg_s::crit_exts_c_::c1_c_& meas_timing_cfg_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void meas_timing_cfg_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void meas_timing_cfg_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56410,6 +59267,23 @@ void meas_timing_cfg_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +meas_timing_cfg_ies_s& meas_timing_cfg_s::crit_exts_c_::c1_c_::set_meas_timing_conf() +{ + set(types::meas_timing_conf); + return c; +} +void meas_timing_cfg_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void meas_timing_cfg_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void meas_timing_cfg_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void meas_timing_cfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56470,13 +59344,13 @@ SRSASN_CODE meas_timing_cfg_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_timing_cfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* meas_timing_cfg_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = {"measTimingConf", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 4, value, "meas_timing_cfg_s::crit_exts_c_::c1_c_::types"); } -std::string meas_timing_cfg_s::crit_exts_c_::types_opts::to_string() const +const char* meas_timing_cfg_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "meas_timing_cfg_s::crit_exts_c_::types"); @@ -56541,6 +59415,15 @@ void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_s::crit_exts_c_::c1_c_& ue_radio_access_cap_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_access_cap_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56593,6 +59476,39 @@ void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_access_cap_info_ies_s& ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_ue_radio_access_cap_info() +{ + set(types::ue_radio_access_cap_info); + return c; +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56677,14 +59593,14 @@ SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "ueRadioAccessCapabilityInformation", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ue_radio_access_cap_info_s::crit_exts_c_::c1_c_::types"); } -std::string ue_radio_access_cap_info_s::crit_exts_c_::types_opts::to_string() const +const char* ue_radio_access_cap_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ue_radio_access_cap_info_s::crit_exts_c_::types"); @@ -56761,6 +59677,15 @@ void ue_radio_paging_info_s::crit_exts_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_s::crit_exts_c_::c1_c_& ue_radio_paging_info_s::crit_exts_c_::set_c1() +{ + set(types::c1); + return c; +} +void ue_radio_paging_info_s::crit_exts_c_::set_crit_exts_future() +{ + set(types::crit_exts_future); +} void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56813,6 +59738,39 @@ void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } +ue_radio_paging_info_ies_s& ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_ue_radio_paging_info() +{ + set(types::ue_radio_paging_info); + return c; +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare7() +{ + set(types::spare7); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare6() +{ + set(types::spare6); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare5() +{ + set(types::spare5); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare4() +{ + set(types::spare4); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare3() +{ + set(types::spare3); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare2() +{ + set(types::spare2); +} +void ue_radio_paging_info_s::crit_exts_c_::c1_c_::set_spare1() +{ + set(types::spare1); +} void ue_radio_paging_info_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); @@ -56897,14 +59855,14 @@ SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_radio_paging_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const +const char* ue_radio_paging_info_s::crit_exts_c_::c1_c_::types_opts::to_string() const { static const char* options[] = { "ueRadioPagingInformation", "spare7", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"}; return convert_enum_idx(options, 8, value, "ue_radio_paging_info_s::crit_exts_c_::c1_c_::types"); } -std::string ue_radio_paging_info_s::crit_exts_c_::types_opts::to_string() const +const char* ue_radio_paging_info_s::crit_exts_c_::types_opts::to_string() const { static const char* options[] = {"c1", "criticalExtensionsFuture"}; return convert_enum_idx(options, 2, value, "ue_radio_paging_info_s::crit_exts_c_::types"); @@ -57047,6 +60005,16 @@ var_meas_cfg_s::s_measure_cfg_c_::operator=(const var_meas_cfg_s::s_measure_cfg_ return *this; } +uint8_t& var_meas_cfg_s::s_measure_cfg_c_::set_ssb_rsrp() +{ + set(types::ssb_rsrp); + return c.get(); +} +uint8_t& var_meas_cfg_s::s_measure_cfg_c_::set_csi_rsrp() +{ + set(types::csi_rsrp); + return c.get(); +} void var_meas_cfg_s::s_measure_cfg_c_::to_json(json_writer& j) const { j.start_obj(); @@ -57097,7 +60065,7 @@ SRSASN_CODE var_meas_cfg_s::s_measure_cfg_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string var_meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const +const char* var_meas_cfg_s::s_measure_cfg_c_::types_opts::to_string() const { static const char* options[] = {"ssb-RSRP", "csi-RSRP"}; return convert_enum_idx(options, 2, value, "var_meas_cfg_s::s_measure_cfg_c_::types"); diff --git a/lib/src/asn1/rrc_nr_utils.cc b/lib/src/asn1/rrc_nr_utils.cc index 5080db74d..913052e08 100644 --- a/lib/src/asn1/rrc_nr_utils.cc +++ b/lib/src/asn1/rrc_nr_utils.cc @@ -242,7 +242,6 @@ bool make_phy_rach_cfg(const rach_cfg_common_s& asn1_type, srsran_prach_cfg_t* p asn1::log_error("PRACH freq offset must be at least one"); return false; } - prach_cfg->freq_offset--; switch (prach_cfg->root_seq_idx = asn1_type.prach_root_seq_idx.type()) { case rach_cfg_common_s::prach_root_seq_idx_c_::types_opts::l839: @@ -1187,41 +1186,45 @@ bool make_phy_nzp_csi_rs_resource(const asn1::rrc_nr::nzp_csi_rs_res_s& asn1_nz bool make_phy_carrier_cfg(const freq_info_dl_s& asn1_freq_info_dl, srsran_carrier_nr_t* out_carrier_nr) { - srsran_carrier_nr_t carrier_nr = {}; + uint32_t absolute_frequency_ssb = 0; if (asn1_freq_info_dl.absolute_freq_ssb_present) { - carrier_nr.absolute_frequency_ssb = asn1_freq_info_dl.absolute_freq_ssb_present; + absolute_frequency_ssb = asn1_freq_info_dl.absolute_freq_ssb_present; } else { asn1::log_warning("Option absolute_freq_ssb not present"); return false; } - carrier_nr.absolute_frequency_point_a = asn1_freq_info_dl.absolute_freq_point_a; + uint32_t absolute_frequency_point_a = asn1_freq_info_dl.absolute_freq_point_a; if (asn1_freq_info_dl.scs_specific_carrier_list.size() != 1) { asn1::log_warning("Option absolute_freq_ssb not present"); return false; } - carrier_nr.nof_prb = asn1_freq_info_dl.scs_specific_carrier_list[0].carrier_bw; - + uint32_t nof_prb = asn1_freq_info_dl.scs_specific_carrier_list[0].carrier_bw; + srsran_subcarrier_spacing_t scs = srsran_subcarrier_spacing_15kHz; switch (asn1_freq_info_dl.scs_specific_carrier_list[0].subcarrier_spacing) { case subcarrier_spacing_opts::options::khz15: - carrier_nr.scs = srsran_subcarrier_spacing_15kHz; + scs = srsran_subcarrier_spacing_15kHz; break; case subcarrier_spacing_opts::options::khz30: - carrier_nr.scs = srsran_subcarrier_spacing_30kHz; + scs = srsran_subcarrier_spacing_30kHz; break; case subcarrier_spacing_opts::options::khz60: - carrier_nr.scs = srsran_subcarrier_spacing_60kHz; + scs = srsran_subcarrier_spacing_60kHz; break; case subcarrier_spacing_opts::options::khz120: - carrier_nr.scs = srsran_subcarrier_spacing_120kHz; + scs = srsran_subcarrier_spacing_120kHz; break; case subcarrier_spacing_opts::options::khz240: - carrier_nr.scs = srsran_subcarrier_spacing_240kHz; + scs = srsran_subcarrier_spacing_240kHz; break; default: asn1::log_warning("Not supported subcarrier spacing "); } - *out_carrier_nr = carrier_nr; + // As the carrier structure requires parameters from different objects, set fields separately + out_carrier_nr->absolute_frequency_ssb = absolute_frequency_ssb; + out_carrier_nr->absolute_frequency_point_a = absolute_frequency_point_a; + out_carrier_nr->nof_prb = nof_prb; + out_carrier_nr->scs = scs; return true; } } // namespace srsran diff --git a/lib/src/asn1/rrc_utils.cc b/lib/src/asn1/rrc_utils.cc index 0575fa0a8..53df1f35b 100644 --- a/lib/src/asn1/rrc_utils.cc +++ b/lib/src/asn1/rrc_utils.cc @@ -116,7 +116,7 @@ srsran_cqi_report_mode_t make_aperiodic_mode(const asn1::rrc::cqi_report_mode_ap case asn1::rrc::cqi_report_mode_aperiodic_e::rm10_v1310: case asn1::rrc::cqi_report_mode_aperiodic_e::rm11_v1310: case asn1::rrc::cqi_report_mode_aperiodic_e::rm32_v1250: - fprintf(stderr, "Aperiodic mode %s not handled\n", asn_mode.to_string().c_str()); + fprintf(stderr, "Aperiodic mode %s not handled\n", asn_mode.to_string()); default: return SRSRAN_CQI_MODE_NA; } @@ -646,7 +646,7 @@ void set_phy_cfg_t_dedicated_cfg(phy_cfg_t* cfg, const asn1::rrc::phys_cfg_ded_s } else { fprintf(stderr, "Transmission mode (R10) %s is not supported\n", - asn1_type.ant_info_r10->explicit_value_r10().tx_mode_r10.to_string().c_str()); + asn1_type.ant_info_r10->explicit_value_r10().tx_mode_r10.to_string()); } } else if (asn1_type.ant_info_present && asn1_type.ant_info.type() == asn1::rrc::phys_cfg_ded_s::ant_info_c_::types::explicit_value) { @@ -657,7 +657,7 @@ void set_phy_cfg_t_dedicated_cfg(phy_cfg_t* cfg, const asn1::rrc::phys_cfg_ded_s } else { fprintf(stderr, "Transmission mode (R8) %s is not supported\n", - asn1_type.ant_info.explicit_value().tx_mode.to_string().c_str()); + asn1_type.ant_info.explicit_value().tx_mode.to_string()); } } if (asn1_type.sched_request_cfg_present) { @@ -815,7 +815,7 @@ void set_phy_cfg_t_scell_config(phy_cfg_t* cfg, const asn1::rrc::scell_to_add_mo } else { fprintf(stderr, "Transmission mode (R10) %s is not supported\n", - non_ul_cfg->ant_info_r10.tx_mode_r10.to_string().c_str()); + non_ul_cfg->ant_info_r10.tx_mode_r10.to_string()); } } diff --git a/lib/src/asn1/s1ap.cc b/lib/src/asn1/s1ap.cc index 6699c399f..cdcd63622 100644 --- a/lib/src/asn1/s1ap.cc +++ b/lib/src/asn1/s1ap.cc @@ -30,14 +30,14 @@ using namespace asn1::s1ap; ******************************************************************************/ // Criticality ::= ENUMERATED -std::string crit_opts::to_string() const +const char* crit_opts::to_string() const { static const char* options[] = {"reject", "ignore", "notify"}; return convert_enum_idx(options, 3, value, "crit_e"); } // Presence ::= ENUMERATED -std::string presence_opts::to_string() const +const char* presence_opts::to_string() const { static const char* options[] = {"optional", "conditional", "mandatory"}; return convert_enum_idx(options, 3, value, "presence_e"); @@ -48,6 +48,15 @@ void private_ie_id_c::set(types::options e) { type_ = e; } +uint32_t& private_ie_id_c::set_local() +{ + set(types::local); + return c; +} +void private_ie_id_c::set_global() +{ + set(types::global); +} void private_ie_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -95,7 +104,7 @@ SRSASN_CODE private_ie_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string private_ie_id_c::types_opts::to_string() const +const char* private_ie_id_c::types_opts::to_string() const { static const char* options[] = {"local", "global"}; return convert_enum_idx(options, 2, value, "private_ie_id_c::types"); @@ -367,7 +376,7 @@ SRSASN_CODE s1ap_protocol_ext_empty_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_protocol_ext_empty_o::ext_c::types_opts::to_string() const +const char* s1ap_protocol_ext_empty_o::ext_c::types_opts::to_string() const { static const char* options[] = {}; return convert_enum_idx(options, 0, value, "s1ap_protocol_ext_empty_o::ext_c::types"); @@ -513,14 +522,14 @@ void add_guti_s::to_json(json_writer& j) const } // Pre-emptionCapability ::= ENUMERATED -std::string pre_emption_cap_opts::to_string() const +const char* pre_emption_cap_opts::to_string() const { static const char* options[] = {"shall-not-trigger-pre-emption", "may-trigger-pre-emption"}; return convert_enum_idx(options, 2, value, "pre_emption_cap_e"); } // Pre-emptionVulnerability ::= ENUMERATED -std::string pre_emption_vulnerability_opts::to_string() const +const char* pre_emption_vulnerability_opts::to_string() const { static const char* options[] = {"not-pre-emptable", "pre-emptable"}; return convert_enum_idx(options, 2, value, "pre_emption_vulnerability_e"); @@ -852,6 +861,25 @@ area_scope_of_mdt_c& area_scope_of_mdt_c::operator=(const area_scope_of_mdt_c& o return *this; } +cell_based_mdt_s& area_scope_of_mdt_c::set_cell_based() +{ + set(types::cell_based); + return c.get(); +} +ta_based_mdt_s& area_scope_of_mdt_c::set_tabased() +{ + set(types::tabased); + return c.get(); +} +void area_scope_of_mdt_c::set_plmn_wide() +{ + set(types::plmn_wide); +} +tai_based_mdt_s& area_scope_of_mdt_c::set_tai_based() +{ + set(types::tai_based); + return c.get(); +} void area_scope_of_mdt_c::to_json(json_writer& j) const { j.start_obj(); @@ -922,7 +950,7 @@ SRSASN_CODE area_scope_of_mdt_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string area_scope_of_mdt_c::types_opts::to_string() const +const char* area_scope_of_mdt_c::types_opts::to_string() const { static const char* options[] = {"cellBased", "tABased", "pLMNWide", "tAIBased"}; return convert_enum_idx(options, 4, value, "area_scope_of_mdt_c::types"); @@ -1180,6 +1208,26 @@ area_scope_of_qmc_c& area_scope_of_qmc_c::operator=(const area_scope_of_qmc_c& o return *this; } +cell_based_qmc_s& area_scope_of_qmc_c::set_cell_based() +{ + set(types::cell_based); + return c.get(); +} +ta_based_qmc_s& area_scope_of_qmc_c::set_tabased() +{ + set(types::tabased); + return c.get(); +} +tai_based_qmc_s& area_scope_of_qmc_c::set_tai_based() +{ + set(types::tai_based); + return c.get(); +} +plmn_area_based_qmc_s& area_scope_of_qmc_c::set_plmn_area_based() +{ + set(types::plmn_area_based); + return c.get(); +} void area_scope_of_qmc_c::to_json(json_writer& j) const { j.start_obj(); @@ -1252,7 +1300,7 @@ SRSASN_CODE area_scope_of_qmc_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string area_scope_of_qmc_c::types_opts::to_string() const +const char* area_scope_of_qmc_c::types_opts::to_string() const { static const char* options[] = {"cellBased", "tABased", "tAIBased", "pLMNAreaBased"}; return convert_enum_idx(options, 4, value, "area_scope_of_qmc_c::types"); @@ -1439,7 +1487,7 @@ SRSASN_CODE recommended_cell_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string recommended_cell_item_ies_o::value_c::types_opts::to_string() const +const char* recommended_cell_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"RecommendedCellItem"}; return convert_enum_idx(options, 1, value, "recommended_cell_item_ies_o::value_c::types"); @@ -1448,7 +1496,7 @@ std::string recommended_cell_item_ies_o::value_c::types_opts::to_string() const template struct asn1::s1ap::protocol_ie_single_container_s; // NextPagingAreaScope ::= ENUMERATED -std::string next_paging_area_scope_opts::to_string() const +const char* next_paging_area_scope_opts::to_string() const { static const char* options[] = {"same", "changed"}; return convert_enum_idx(options, 2, value, "next_paging_area_scope_e"); @@ -1814,72 +1862,6 @@ presence_e bearers_subject_to_status_transfer_item_ext_ies_o::get_presence(const } // Extension ::= OPEN TYPE -count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_extended() -{ - assert_choice_type("COUNTValueExtended", type_.to_string(), "Extension"); - return c.get(); -} -count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_extended() -{ - assert_choice_type("COUNTValueExtended", type_.to_string(), "Extension"); - return c.get(); -} -bounded_bitstring<1, 16384, false, true>& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_extended() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -coun_tvalue_pdcp_snlen18_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_pdcp_snlen18() -{ - assert_choice_type("COUNTvaluePDCP-SNlength18", type_.to_string(), "Extension"); - return c.get(); -} -coun_tvalue_pdcp_snlen18_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_pdcp_snlen18() -{ - assert_choice_type("COUNTvaluePDCP-SNlength18", type_.to_string(), "Extension"); - return c.get(); -} -bounded_bitstring<1, 131072, false, true>& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_pdcp_snlen18() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_extended() const -{ - assert_choice_type("COUNTValueExtended", type_.to_string(), "Extension"); - return c.get(); -} -const count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_extended() const -{ - assert_choice_type("COUNTValueExtended", type_.to_string(), "Extension"); - return c.get(); -} -const bounded_bitstring<1, 16384, false, true>& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_extended() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const coun_tvalue_pdcp_snlen18_s& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_pdcp_snlen18() const -{ - assert_choice_type("COUNTvaluePDCP-SNlength18", type_.to_string(), "Extension"); - return c.get(); -} -const coun_tvalue_pdcp_snlen18_s& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_pdcp_snlen18() const -{ - assert_choice_type("COUNTvaluePDCP-SNlength18", type_.to_string(), "Extension"); - return c.get(); -} -const bounded_bitstring<1, 131072, false, true>& -bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_pdcp_snlen18() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} void bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -1998,6 +1980,72 @@ bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::operator=( return *this; } +count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_extended() +{ + assert_choice_type(types::ulcount_value_extended, type_, "Extension"); + return c.get(); +} +count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_extended() +{ + assert_choice_type(types::dlcount_value_extended, type_, "Extension"); + return c.get(); +} +bounded_bitstring<1, 16384, false, true>& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_extended() +{ + assert_choice_type(types::receive_status_of_ulpdcpsdus_extended, type_, "Extension"); + return c.get >(); +} +coun_tvalue_pdcp_snlen18_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_pdcp_snlen18() +{ + assert_choice_type(types::ulcount_value_pdcp_snlen18, type_, "Extension"); + return c.get(); +} +coun_tvalue_pdcp_snlen18_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_pdcp_snlen18() +{ + assert_choice_type(types::dlcount_value_pdcp_snlen18, type_, "Extension"); + return c.get(); +} +bounded_bitstring<1, 131072, false, true>& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_pdcp_snlen18() +{ + assert_choice_type(types::receive_status_of_ulpdcpsdus_pdcp_snlen18, type_, "Extension"); + return c.get >(); +} +const count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_extended() const +{ + assert_choice_type(types::ulcount_value_extended, type_, "Extension"); + return c.get(); +} +const count_value_extended_s& bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_extended() const +{ + assert_choice_type(types::dlcount_value_extended, type_, "Extension"); + return c.get(); +} +const bounded_bitstring<1, 16384, false, true>& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_extended() const +{ + assert_choice_type(types::receive_status_of_ulpdcpsdus_extended, type_, "Extension"); + return c.get >(); +} +const coun_tvalue_pdcp_snlen18_s& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::ulcount_value_pdcp_snlen18() const +{ + assert_choice_type(types::ulcount_value_pdcp_snlen18, type_, "Extension"); + return c.get(); +} +const coun_tvalue_pdcp_snlen18_s& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::dlcount_value_pdcp_snlen18() const +{ + assert_choice_type(types::dlcount_value_pdcp_snlen18, type_, "Extension"); + return c.get(); +} +const bounded_bitstring<1, 131072, false, true>& +bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::receive_status_of_ulpdcpsdus_pdcp_snlen18() const +{ + assert_choice_type(types::receive_status_of_ulpdcpsdus_pdcp_snlen18, type_, "Extension"); + return c.get >(); +} void bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -2086,7 +2134,7 @@ SRSASN_CODE bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::unpack(cbi return SRSASN_SUCCESS; } -std::string bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::types_opts::to_string() const +const char* bearers_subject_to_status_transfer_item_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"COUNTValueExtended", "COUNTValueExtended", @@ -2373,7 +2421,7 @@ SRSASN_CODE bearers_subject_to_status_transfer_item_ies_o::value_c::unpack(cbit_ return SRSASN_SUCCESS; } -std::string bearers_subject_to_status_transfer_item_ies_o::value_c::types_opts::to_string() const +const char* bearers_subject_to_status_transfer_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Bearers-SubjectToStatusTransfer-Item"}; return convert_enum_idx(options, 1, value, "bearers_subject_to_status_transfer_item_ies_o::value_c::types"); @@ -2382,7 +2430,7 @@ std::string bearers_subject_to_status_transfer_item_ies_o::value_c::types_opts:: template struct asn1::s1ap::protocol_ie_single_container_s; // BluetoothMeasConfig ::= ENUMERATED -std::string bluetooth_meas_cfg_opts::to_string() const +const char* bluetooth_meas_cfg_opts::to_string() const { static const char* options[] = {"setup"}; return convert_enum_idx(options, 1, value, "bluetooth_meas_cfg_e"); @@ -2450,7 +2498,7 @@ void bluetooth_meas_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string bluetooth_meas_cfg_s::bt_rssi_opts::to_string() const +const char* bluetooth_meas_cfg_s::bt_rssi_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "bluetooth_meas_cfg_s::bt_rssi_e_"); @@ -2744,6 +2792,21 @@ broadcast_cancelled_area_list_c::operator=(const broadcast_cancelled_area_list_c return *this; } +cell_id_cancelled_l& broadcast_cancelled_area_list_c::set_cell_id_cancelled() +{ + set(types::cell_id_cancelled); + return c.get(); +} +tai_cancelled_l& broadcast_cancelled_area_list_c::set_tai_cancelled() +{ + set(types::tai_cancelled); + return c.get(); +} +emergency_area_id_cancelled_l& broadcast_cancelled_area_list_c::set_emergency_area_id_cancelled() +{ + set(types::emergency_area_id_cancelled); + return c.get(); +} void broadcast_cancelled_area_list_c::to_json(json_writer& j) const { j.start_obj(); @@ -2815,7 +2878,7 @@ SRSASN_CODE broadcast_cancelled_area_list_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string broadcast_cancelled_area_list_c::types_opts::to_string() const +const char* broadcast_cancelled_area_list_c::types_opts::to_string() const { static const char* options[] = {"cellID-Cancelled", "tAI-Cancelled", "emergencyAreaID-Cancelled"}; return convert_enum_idx(options, 3, value, "broadcast_cancelled_area_list_c::types"); @@ -3100,6 +3163,21 @@ broadcast_completed_area_list_c::operator=(const broadcast_completed_area_list_c return *this; } +cell_id_broadcast_l& broadcast_completed_area_list_c::set_cell_id_broadcast() +{ + set(types::cell_id_broadcast); + return c.get(); +} +tai_broadcast_l& broadcast_completed_area_list_c::set_tai_broadcast() +{ + set(types::tai_broadcast); + return c.get(); +} +emergency_area_id_broadcast_l& broadcast_completed_area_list_c::set_emergency_area_id_broadcast() +{ + set(types::emergency_area_id_broadcast); + return c.get(); +} void broadcast_completed_area_list_c::to_json(json_writer& j) const { j.start_obj(); @@ -3171,7 +3249,7 @@ SRSASN_CODE broadcast_completed_area_list_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string broadcast_completed_area_list_c::types_opts::to_string() const +const char* broadcast_completed_area_list_c::types_opts::to_string() const { static const char* options[] = {"cellID-Broadcast", "tAI-Broadcast", "emergencyAreaID-Broadcast"}; return convert_enum_idx(options, 3, value, "broadcast_completed_area_list_c::types"); @@ -3231,7 +3309,7 @@ void cgi_s::to_json(json_writer& j) const } // CNType ::= ENUMERATED -std::string cn_type_opts::to_string() const +const char* cn_type_opts::to_string() const { static const char* options[] = {"fiveGCForbidden", "epc-Forbiddden"}; return convert_enum_idx(options, 2, value, "cn_type_e"); @@ -3318,14 +3396,14 @@ void csg_id_list_item_s::to_json(json_writer& j) const } // CSGMembershipStatus ::= ENUMERATED -std::string csg_membership_status_opts::to_string() const +const char* csg_membership_status_opts::to_string() const { static const char* options[] = {"member", "not-member"}; return convert_enum_idx(options, 2, value, "csg_membership_status_e"); } // CellAccessMode ::= ENUMERATED -std::string cell_access_mode_opts::to_string() const +const char* cell_access_mode_opts::to_string() const { static const char* options[] = {"hybrid"}; return convert_enum_idx(options, 1, value, "cell_access_mode_e"); @@ -3484,6 +3562,26 @@ irat_cell_id_c& irat_cell_id_c::operator=(const irat_cell_id_c& other) return *this; } +unbounded_octstring& irat_cell_id_c::set_eutran() +{ + set(types::eutran); + return c.get >(); +} +unbounded_octstring& irat_cell_id_c::set_utran() +{ + set(types::utran); + return c.get >(); +} +unbounded_octstring& irat_cell_id_c::set_geran() +{ + set(types::geran); + return c.get >(); +} +fixed_octstring<16, true>& irat_cell_id_c::set_ehrpd() +{ + set(types::ehrpd); + return c.get >(); +} void irat_cell_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -3554,7 +3652,7 @@ SRSASN_CODE irat_cell_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string irat_cell_id_c::types_opts::to_string() const +const char* irat_cell_id_c::types_opts::to_string() const { static const char* options[] = {"eUTRAN", "uTRAN", "gERAN", "eHRPD"}; return convert_enum_idx(options, 4, value, "irat_cell_id_c::types"); @@ -3586,7 +3684,7 @@ void candidate_pci_s::to_json(json_writer& j) const } // CauseMisc ::= ENUMERATED -std::string cause_misc_opts::to_string() const +const char* cause_misc_opts::to_string() const { static const char* options[] = {"control-processing-overload", "not-enough-user-plane-processing-resources", @@ -3598,7 +3696,7 @@ std::string cause_misc_opts::to_string() const } // CauseNas ::= ENUMERATED -std::string cause_nas_opts::to_string() const +const char* cause_nas_opts::to_string() const { static const char* options[] = { "normal-release", "authentication-failure", "detach", "unspecified", "csg-subscription-expiry"}; @@ -3606,7 +3704,7 @@ std::string cause_nas_opts::to_string() const } // CauseProtocol ::= ENUMERATED -std::string cause_protocol_opts::to_string() const +const char* cause_protocol_opts::to_string() const { static const char* options[] = {"transfer-syntax-error", "abstract-syntax-error-reject", @@ -3619,7 +3717,7 @@ std::string cause_protocol_opts::to_string() const } // CauseRadioNetwork ::= ENUMERATED -std::string cause_radio_network_opts::to_string() const +const char* cause_radio_network_opts::to_string() const { static const char* options[] = {"unspecified", "tx2relocoverall-expiry", @@ -3665,7 +3763,7 @@ std::string cause_radio_network_opts::to_string() const } // CauseTransport ::= ENUMERATED -std::string cause_transport_opts::to_string() const +const char* cause_transport_opts::to_string() const { static const char* options[] = {"transport-resource-unavailable", "unspecified"}; return convert_enum_idx(options, 2, value, "cause_transport_e"); @@ -3733,6 +3831,31 @@ cause_c& cause_c::operator=(const cause_c& other) return *this; } +cause_radio_network_e& cause_c::set_radio_network() +{ + set(types::radio_network); + return c.get(); +} +cause_transport_e& cause_c::set_transport() +{ + set(types::transport); + return c.get(); +} +cause_nas_e& cause_c::set_nas() +{ + set(types::nas); + return c.get(); +} +cause_protocol_e& cause_c::set_protocol() +{ + set(types::protocol); + return c.get(); +} +cause_misc_e& cause_c::set_misc() +{ + set(types::misc); + return c.get(); +} void cause_c::to_json(json_writer& j) const { j.start_obj(); @@ -3810,7 +3933,7 @@ SRSASN_CODE cause_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cause_c::types_opts::to_string() const +const char* cause_c::types_opts::to_string() const { static const char* options[] = {"radioNetwork", "transport", "nas", "protocol", "misc"}; return convert_enum_idx(options, 5, value, "cause_c::types"); @@ -4116,6 +4239,26 @@ cell_load_report_resp_c& cell_load_report_resp_c::operator=(const cell_load_repo return *this; } +eutra_ncell_load_report_resp_s& cell_load_report_resp_c::set_eutran() +{ + set(types::eutran); + return c.get(); +} +unbounded_octstring& cell_load_report_resp_c::set_utran() +{ + set(types::utran); + return c.get >(); +} +unbounded_octstring& cell_load_report_resp_c::set_geran() +{ + set(types::geran); + return c.get >(); +} +ehrpd_sector_load_report_resp_s& cell_load_report_resp_c::set_ehrpd() +{ + set(types::ehrpd); + return c.get(); +} void cell_load_report_resp_c::to_json(json_writer& j) const { j.start_obj(); @@ -4188,14 +4331,14 @@ SRSASN_CODE cell_load_report_resp_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cell_load_report_resp_c::types_opts::to_string() const +const char* cell_load_report_resp_c::types_opts::to_string() const { static const char* options[] = {"eUTRAN", "uTRAN", "gERAN", "eHRPD"}; return convert_enum_idx(options, 4, value, "cell_load_report_resp_c::types"); } // NotifyFlag ::= ENUMERATED -std::string notify_flag_opts::to_string() const +const char* notify_flag_opts::to_string() const { static const char* options[] = {"activated", "deactivated"}; return convert_enum_idx(options, 2, value, "notify_flag_e"); @@ -4253,7 +4396,7 @@ void cell_state_ind_s::to_json(json_writer& j) const } // PrivacyIndicator ::= ENUMERATED -std::string privacy_ind_opts::to_string() const +const char* privacy_ind_opts::to_string() const { static const char* options[] = {"immediate-MDT", "logged-MDT"}; return convert_enum_idx(options, 2, value, "privacy_ind_e"); @@ -4344,67 +4487,6 @@ presence_e cell_traffic_trace_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& cell_traffic_trace_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& cell_traffic_trace_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::e_utran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -eutran_cgi_s& cell_traffic_trace_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -bounded_bitstring<1, 160, true, true>& cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -privacy_ind_e& cell_traffic_trace_ies_o::value_c::privacy_ind() -{ - assert_choice_type("PrivacyIndicator", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& cell_traffic_trace_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& cell_traffic_trace_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::e_utran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const eutran_cgi_s& cell_traffic_trace_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const bounded_bitstring<1, 160, true, true>& -cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const privacy_ind_e& cell_traffic_trace_ies_o::value_c::privacy_ind() const -{ - assert_choice_type("PrivacyIndicator", type_.to_string(), "Value"); - return c.get(); -} void cell_traffic_trace_ies_o::value_c::destroy_() { switch (type_) { @@ -4509,6 +4591,67 @@ cell_traffic_trace_ies_o::value_c::operator=(const cell_traffic_trace_ies_o::val return *this; } +uint64_t& cell_traffic_trace_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& cell_traffic_trace_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::e_utran_trace_id() +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} +eutran_cgi_s& cell_traffic_trace_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +bounded_bitstring<1, 160, true, true>& cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() +{ + assert_choice_type(types::trace_collection_entity_ip_address, type_, "Value"); + return c.get >(); +} +privacy_ind_e& cell_traffic_trace_ies_o::value_c::privacy_ind() +{ + assert_choice_type(types::privacy_ind, type_, "Value"); + return c.get(); +} +const uint64_t& cell_traffic_trace_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& cell_traffic_trace_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& cell_traffic_trace_ies_o::value_c::e_utran_trace_id() const +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} +const eutran_cgi_s& cell_traffic_trace_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const bounded_bitstring<1, 160, true, true>& +cell_traffic_trace_ies_o::value_c::trace_collection_entity_ip_address() const +{ + assert_choice_type(types::trace_collection_entity_ip_address, type_, "Value"); + return c.get >(); +} +const privacy_ind_e& cell_traffic_trace_ies_o::value_c::privacy_ind() const +{ + assert_choice_type(types::privacy_ind, type_, "Value"); + return c.get(); +} void cell_traffic_trace_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -4594,7 +4737,7 @@ SRSASN_CODE cell_traffic_trace_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string cell_traffic_trace_ies_o::value_c::types_opts::to_string() const +const char* cell_traffic_trace_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -4770,7 +4913,7 @@ void cell_traffic_trace_s::to_json(json_writer& j) const } // Cell-Size ::= ENUMERATED -std::string cell_size_opts::to_string() const +const char* cell_size_opts::to_string() const { static const char* options[] = {"verysmall", "small", "medium", "large"}; return convert_enum_idx(options, 4, value, "cell_size_e"); @@ -4813,7 +4956,7 @@ void cell_type_s::to_json(json_writer& j) const } // RAT-Type ::= ENUMERATED -std::string rat_type_opts::to_string() const +const char* rat_type_opts::to_string() const { static const char* options[] = {"nbiot"}; return convert_enum_idx(options, 1, value, "rat_type_e"); @@ -4874,7 +5017,7 @@ SRSASN_CODE supported_tas_item_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string supported_tas_item_ext_ies_o::ext_c::types_opts::to_string() const +const char* supported_tas_item_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"RAT-Type"}; return convert_enum_idx(options, 1, value, "supported_tas_item_ext_ies_o::ext_c::types"); @@ -5036,46 +5179,6 @@ presence_e gbr_qos_info_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_dl() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_ul() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_dl() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_ul() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_dl() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_ul() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_dl() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_ul() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} void gbr_qos_info_ext_ies_o::ext_c::destroy_() {} void gbr_qos_info_ext_ies_o::ext_c::set(types::options e) { @@ -5131,6 +5234,46 @@ gbr_qos_info_ext_ies_o::ext_c& gbr_qos_info_ext_ies_o::ext_c::operator=(const gb return *this; } +uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_dl() +{ + assert_choice_type(types::extended_erab_maximum_bitrate_dl, type_, "Extension"); + return c.get(); +} +uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_ul() +{ + assert_choice_type(types::extended_erab_maximum_bitrate_ul, type_, "Extension"); + return c.get(); +} +uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_dl() +{ + assert_choice_type(types::extended_erab_guaranteed_bitrate_dl, type_, "Extension"); + return c.get(); +} +uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_ul() +{ + assert_choice_type(types::extended_erab_guaranteed_bitrate_ul, type_, "Extension"); + return c.get(); +} +const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_dl() const +{ + assert_choice_type(types::extended_erab_maximum_bitrate_dl, type_, "Extension"); + return c.get(); +} +const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_maximum_bitrate_ul() const +{ + assert_choice_type(types::extended_erab_maximum_bitrate_ul, type_, "Extension"); + return c.get(); +} +const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_dl() const +{ + assert_choice_type(types::extended_erab_guaranteed_bitrate_dl, type_, "Extension"); + return c.get(); +} +const uint64_t& gbr_qos_info_ext_ies_o::ext_c::extended_erab_guaranteed_bitrate_ul() const +{ + assert_choice_type(types::extended_erab_guaranteed_bitrate_ul, type_, "Extension"); + return c.get(); +} void gbr_qos_info_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -5201,7 +5344,7 @@ SRSASN_CODE gbr_qos_info_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string gbr_qos_info_ext_ies_o::ext_c::types_opts::to_string() const +const char* gbr_qos_info_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (10000000001..4000000000000,...)", "INTEGER (10000000001..4000000000000,...)", @@ -5267,26 +5410,6 @@ presence_e erab_qos_params_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -uint16_t& erab_qos_params_ext_ies_o::ext_c::dl_packet_loss_rate() -{ - assert_choice_type("INTEGER (0..1000)", type_.to_string(), "Extension"); - return c.get(); -} -uint16_t& erab_qos_params_ext_ies_o::ext_c::ul_packet_loss_rate() -{ - assert_choice_type("INTEGER (0..1000)", type_.to_string(), "Extension"); - return c.get(); -} -const uint16_t& erab_qos_params_ext_ies_o::ext_c::dl_packet_loss_rate() const -{ - assert_choice_type("INTEGER (0..1000)", type_.to_string(), "Extension"); - return c.get(); -} -const uint16_t& erab_qos_params_ext_ies_o::ext_c::ul_packet_loss_rate() const -{ - assert_choice_type("INTEGER (0..1000)", type_.to_string(), "Extension"); - return c.get(); -} void erab_qos_params_ext_ies_o::ext_c::destroy_() {} void erab_qos_params_ext_ies_o::ext_c::set(types::options e) { @@ -5331,6 +5454,26 @@ erab_qos_params_ext_ies_o::ext_c::operator=(const erab_qos_params_ext_ies_o::ext return *this; } +uint16_t& erab_qos_params_ext_ies_o::ext_c::dl_packet_loss_rate() +{ + assert_choice_type(types::dl_packet_loss_rate, type_, "Extension"); + return c.get(); +} +uint16_t& erab_qos_params_ext_ies_o::ext_c::ul_packet_loss_rate() +{ + assert_choice_type(types::ul_packet_loss_rate, type_, "Extension"); + return c.get(); +} +const uint16_t& erab_qos_params_ext_ies_o::ext_c::dl_packet_loss_rate() const +{ + assert_choice_type(types::dl_packet_loss_rate, type_, "Extension"); + return c.get(); +} +const uint16_t& erab_qos_params_ext_ies_o::ext_c::ul_packet_loss_rate() const +{ + assert_choice_type(types::ul_packet_loss_rate, type_, "Extension"); + return c.get(); +} void erab_qos_params_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -5379,7 +5522,7 @@ SRSASN_CODE erab_qos_params_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_qos_params_ext_ies_o::ext_c::types_opts::to_string() const +const char* erab_qos_params_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..1000)", "INTEGER (0..1000)"}; return convert_enum_idx(options, 2, value, "erab_qos_params_ext_ies_o::ext_c::types"); @@ -5592,7 +5735,7 @@ void sched_communication_time_s::to_json(json_writer& j) const } // CE-ModeBRestricted ::= ENUMERATED -std::string ce_mode_brestricted_opts::to_string() const +const char* ce_mode_brestricted_opts::to_string() const { static const char* options[] = {"restricted", "not-restricted"}; return convert_enum_idx(options, 2, value, "ce_mode_brestricted_e"); @@ -5751,14 +5894,14 @@ void erab_level_qos_params_s::to_json(json_writer& j) const } // EndIndication ::= ENUMERATED -std::string end_ind_opts::to_string() const +const char* end_ind_opts::to_string() const { static const char* options[] = {"no-further-data", "further-data-exists"}; return convert_enum_idx(options, 2, value, "end_ind_e"); } // EnhancedCoverageRestricted ::= ENUMERATED -std::string enhanced_coverage_restricted_opts::to_string() const +const char* enhanced_coverage_restricted_opts::to_string() const { static const char* options[] = {"restricted"}; return convert_enum_idx(options, 1, value, "enhanced_coverage_restricted_e"); @@ -5864,26 +6007,26 @@ void subscription_based_ue_differentiation_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string subscription_based_ue_differentiation_info_s::periodic_communication_ind_opts::to_string() const +const char* subscription_based_ue_differentiation_info_s::periodic_communication_ind_opts::to_string() const { static const char* options[] = {"periodically", "ondemand"}; return convert_enum_idx( options, 2, value, "subscription_based_ue_differentiation_info_s::periodic_communication_ind_e_"); } -std::string subscription_based_ue_differentiation_info_s::stationary_ind_opts::to_string() const +const char* subscription_based_ue_differentiation_info_s::stationary_ind_opts::to_string() const { static const char* options[] = {"stationary", "mobile"}; return convert_enum_idx(options, 2, value, "subscription_based_ue_differentiation_info_s::stationary_ind_e_"); } -std::string subscription_based_ue_differentiation_info_s::traffic_profile_opts::to_string() const +const char* subscription_based_ue_differentiation_info_s::traffic_profile_opts::to_string() const { static const char* options[] = {"single-packet", "dual-packets", "multiple-packets"}; return convert_enum_idx(options, 3, value, "subscription_based_ue_differentiation_info_s::traffic_profile_e_"); } -std::string subscription_based_ue_differentiation_info_s::battery_ind_opts::to_string() const +const char* subscription_based_ue_differentiation_info_s::battery_ind_opts::to_string() const { static const char* options[] = { "battery-powered", "battery-powered-not-rechargeable-or-replaceable", "not-battery-powered"}; @@ -5996,98 +6139,6 @@ presence_e conn_establishment_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& conn_establishment_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& conn_establishment_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& conn_establishment_ind_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -enhanced_coverage_restricted_e& conn_establishment_ind_ies_o::value_c::enhanced_coverage_restricted() -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -dl_cp_security_info_s& conn_establishment_ind_ies_o::value_c::dl_cp_security_info() -{ - assert_choice_type("DL-CP-SecurityInformation", type_.to_string(), "Value"); - return c.get(); -} -ce_mode_brestricted_e& conn_establishment_ind_ies_o::value_c::ce_mode_brestricted() -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -end_ind_e& conn_establishment_ind_ies_o::value_c::end_ind() -{ - assert_choice_type("EndIndication", type_.to_string(), "Value"); - return c.get(); -} -subscription_based_ue_differentiation_info_s& -conn_establishment_ind_ies_o::value_c::subscription_based_ue_differentiation_info() -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -erab_level_qos_params_s& conn_establishment_ind_ies_o::value_c::ue_level_qos_params() -{ - assert_choice_type("E-RABLevelQoSParameters", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& conn_establishment_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& conn_establishment_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& conn_establishment_ind_ies_o::value_c::ue_radio_cap() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const enhanced_coverage_restricted_e& conn_establishment_ind_ies_o::value_c::enhanced_coverage_restricted() const -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -const dl_cp_security_info_s& conn_establishment_ind_ies_o::value_c::dl_cp_security_info() const -{ - assert_choice_type("DL-CP-SecurityInformation", type_.to_string(), "Value"); - return c.get(); -} -const ce_mode_brestricted_e& conn_establishment_ind_ies_o::value_c::ce_mode_brestricted() const -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -const end_ind_e& conn_establishment_ind_ies_o::value_c::end_ind() const -{ - assert_choice_type("EndIndication", type_.to_string(), "Value"); - return c.get(); -} -const subscription_based_ue_differentiation_info_s& -conn_establishment_ind_ies_o::value_c::subscription_based_ue_differentiation_info() const -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -const erab_level_qos_params_s& conn_establishment_ind_ies_o::value_c::ue_level_qos_params() const -{ - assert_choice_type("E-RABLevelQoSParameters", type_.to_string(), "Value"); - return c.get(); -} void conn_establishment_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -6220,6 +6271,98 @@ conn_establishment_ind_ies_o::value_c::operator=(const conn_establishment_ind_ie return *this; } +uint64_t& conn_establishment_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& conn_establishment_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& conn_establishment_ind_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +enhanced_coverage_restricted_e& conn_establishment_ind_ies_o::value_c::enhanced_coverage_restricted() +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +dl_cp_security_info_s& conn_establishment_ind_ies_o::value_c::dl_cp_security_info() +{ + assert_choice_type(types::dl_cp_security_info, type_, "Value"); + return c.get(); +} +ce_mode_brestricted_e& conn_establishment_ind_ies_o::value_c::ce_mode_brestricted() +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +end_ind_e& conn_establishment_ind_ies_o::value_c::end_ind() +{ + assert_choice_type(types::end_ind, type_, "Value"); + return c.get(); +} +subscription_based_ue_differentiation_info_s& +conn_establishment_ind_ies_o::value_c::subscription_based_ue_differentiation_info() +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +erab_level_qos_params_s& conn_establishment_ind_ies_o::value_c::ue_level_qos_params() +{ + assert_choice_type(types::ue_level_qos_params, type_, "Value"); + return c.get(); +} +const uint64_t& conn_establishment_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& conn_establishment_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& conn_establishment_ind_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const enhanced_coverage_restricted_e& conn_establishment_ind_ies_o::value_c::enhanced_coverage_restricted() const +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +const dl_cp_security_info_s& conn_establishment_ind_ies_o::value_c::dl_cp_security_info() const +{ + assert_choice_type(types::dl_cp_security_info, type_, "Value"); + return c.get(); +} +const ce_mode_brestricted_e& conn_establishment_ind_ies_o::value_c::ce_mode_brestricted() const +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +const end_ind_e& conn_establishment_ind_ies_o::value_c::end_ind() const +{ + assert_choice_type(types::end_ind, type_, "Value"); + return c.get(); +} +const subscription_based_ue_differentiation_info_s& +conn_establishment_ind_ies_o::value_c::subscription_based_ue_differentiation_info() const +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +const erab_level_qos_params_s& conn_establishment_ind_ies_o::value_c::ue_level_qos_params() const +{ + assert_choice_type(types::ue_level_qos_params, type_, "Value"); + return c.get(); +} void conn_establishment_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -6334,7 +6477,7 @@ SRSASN_CODE conn_establishment_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string conn_establishment_ind_ies_o::value_c::types_opts::to_string() const +const char* conn_establishment_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -6629,6 +6772,26 @@ enb_id_c& enb_id_c::operator=(const enb_id_c& other) return *this; } +fixed_bitstring<20, false, true>& enb_id_c::set_macro_enb_id() +{ + set(types::macro_enb_id); + return c.get >(); +} +fixed_bitstring<28, false, true>& enb_id_c::set_home_enb_id() +{ + set(types::home_enb_id); + return c.get >(); +} +fixed_bitstring<18, false, true>& enb_id_c::set_short_macro_enb_id() +{ + set(types::short_macro_enb_id); + return c.get >(); +} +fixed_bitstring<21, false, true>& enb_id_c::set_long_macro_enb_id() +{ + set(types::long_macro_enb_id); + return c.get >(); +} void enb_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -6701,7 +6864,7 @@ SRSASN_CODE enb_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_id_c::types_opts::to_string() const +const char* enb_id_c::types_opts::to_string() const { static const char* options[] = {"macroENB-ID", "homeENB-ID", "short-macroENB-ID", "long-macroENB-ID"}; return convert_enum_idx(options, 4, value, "enb_id_c::types"); @@ -6732,7 +6895,7 @@ SRSASN_CODE gnb_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string gnb_id_c::types_opts::to_string() const +const char* gnb_id_c::types_opts::to_string() const { static const char* options[] = {"gNB-ID"}; return convert_enum_idx(options, 1, value, "gnb_id_c::types"); @@ -6960,6 +7123,16 @@ global_ran_node_id_c& global_ran_node_id_c::operator=(const global_ran_node_id_c return *this; } +gnb_s& global_ran_node_id_c::set_gnb() +{ + set(types::gnb); + return c.get(); +} +ng_enb_s& global_ran_node_id_c::set_ng_enb() +{ + set(types::ng_enb); + return c.get(); +} void global_ran_node_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -7012,7 +7185,7 @@ SRSASN_CODE global_ran_node_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string global_ran_node_id_c::types_opts::to_string() const +const char* global_ran_node_id_c::types_opts::to_string() const { static const char* options[] = {"gNB", "ng-eNB"}; return convert_enum_idx(options, 2, value, "global_ran_node_id_c::types"); @@ -7059,7 +7232,7 @@ void contextat_source_s::to_json(json_writer& j) const } // TypeOfError ::= ENUMERATED -std::string type_of_error_opts::to_string() const +const char* type_of_error_opts::to_string() const { static const char* options[] = {"not-understood", "missing"}; return convert_enum_idx(options, 2, value, "type_of_error_e"); @@ -7108,7 +7281,7 @@ void crit_diagnostics_ie_item_s::to_json(json_writer& j) const } // TriggeringMessage ::= ENUMERATED -std::string trigger_msg_opts::to_string() const +const char* trigger_msg_opts::to_string() const { static const char* options[] = {"initiating-message", "successful-outcome", "unsuccessfull-outcome"}; return convert_enum_idx(options, 3, value, "trigger_msg_e"); @@ -7259,36 +7432,6 @@ presence_e deactiv_trace_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& deactiv_trace_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& deactiv_trace_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::e_utran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& deactiv_trace_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& deactiv_trace_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::e_utran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void deactiv_trace_ies_o::value_c::destroy_() { switch (type_) { @@ -7360,6 +7503,36 @@ deactiv_trace_ies_o::value_c& deactiv_trace_ies_o::value_c::operator=(const deac return *this; } +uint64_t& deactiv_trace_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& deactiv_trace_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::e_utran_trace_id() +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} +const uint64_t& deactiv_trace_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& deactiv_trace_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& deactiv_trace_ies_o::value_c::e_utran_trace_id() const +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} void deactiv_trace_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -7417,7 +7590,7 @@ SRSASN_CODE deactiv_trace_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string deactiv_trace_ies_o::value_c::types_opts::to_string() const +const char* deactiv_trace_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "OCTET STRING"}; return convert_enum_idx(options, 3, value, "deactiv_trace_ies_o::value_c::types"); @@ -7602,7 +7775,7 @@ void forbidden_tas_item_s::to_json(json_writer& j) const } // NRrestrictionin5GS ::= ENUMERATED -std::string nrrestrictin5_gs_opts::to_string() const +const char* nrrestrictin5_gs_opts::to_string() const { static const char* options[] = {"nRrestrictedin5GS"}; return convert_enum_idx(options, 1, value, "nrrestrictin5_gs_e"); @@ -7614,21 +7787,21 @@ uint8_t nrrestrictin5_gs_opts::to_number() const } // NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED -std::string nrrestrictin_ep_sas_secondary_rat_opts::to_string() const +const char* nrrestrictin_ep_sas_secondary_rat_opts::to_string() const { static const char* options[] = {"nRrestrictedinEPSasSecondaryRAT"}; return convert_enum_idx(options, 1, value, "nrrestrictin_ep_sas_secondary_rat_e"); } // UnlicensedSpectrumRestriction ::= ENUMERATED -std::string unlicensed_spec_restrict_opts::to_string() const +const char* unlicensed_spec_restrict_opts::to_string() const { static const char* options[] = {"unlicensed-restricted"}; return convert_enum_idx(options, 1, value, "unlicensed_spec_restrict_e"); } // ForbiddenInterRATs ::= ENUMERATED -std::string forbidden_inter_rats_opts::to_string() const +const char* forbidden_inter_rats_opts::to_string() const { static const char* options[] = {"all", "geran", "utran", "cdma2000", "geranandutran", "cdma2000andutran"}; return convert_enum_idx(options, 6, value, "forbidden_inter_rats_e"); @@ -7712,56 +7885,6 @@ presence_e ho_restrict_list_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -nrrestrictin_ep_sas_secondary_rat_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin_ep_sas_secondary_rat() -{ - assert_choice_type("NRrestrictioninEPSasSecondaryRAT", type_.to_string(), "Extension"); - return c.get(); -} -unlicensed_spec_restrict_e& ho_restrict_list_ext_ies_o::ext_c::unlicensed_spec_restrict() -{ - assert_choice_type("UnlicensedSpectrumRestriction", type_.to_string(), "Extension"); - return c.get(); -} -cn_type_restricts_l& ho_restrict_list_ext_ies_o::ext_c::cn_type_restricts() -{ - assert_choice_type("CNTypeRestrictions", type_.to_string(), "Extension"); - return c.get(); -} -nrrestrictin5_gs_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin5_gs() -{ - assert_choice_type("NRrestrictionin5GS", type_.to_string(), "Extension"); - return c.get(); -} -plm_nid& ho_restrict_list_ext_ies_o::ext_c::last_ng_ranplmn_id() -{ - assert_choice_type("PLMNidentity", type_.to_string(), "Extension"); - return c.get(); -} -const nrrestrictin_ep_sas_secondary_rat_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin_ep_sas_secondary_rat() const -{ - assert_choice_type("NRrestrictioninEPSasSecondaryRAT", type_.to_string(), "Extension"); - return c.get(); -} -const unlicensed_spec_restrict_e& ho_restrict_list_ext_ies_o::ext_c::unlicensed_spec_restrict() const -{ - assert_choice_type("UnlicensedSpectrumRestriction", type_.to_string(), "Extension"); - return c.get(); -} -const cn_type_restricts_l& ho_restrict_list_ext_ies_o::ext_c::cn_type_restricts() const -{ - assert_choice_type("CNTypeRestrictions", type_.to_string(), "Extension"); - return c.get(); -} -const nrrestrictin5_gs_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin5_gs() const -{ - assert_choice_type("NRrestrictionin5GS", type_.to_string(), "Extension"); - return c.get(); -} -const plm_nid& ho_restrict_list_ext_ies_o::ext_c::last_ng_ranplmn_id() const -{ - assert_choice_type("PLMNidentity", type_.to_string(), "Extension"); - return c.get(); -} void ho_restrict_list_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -7854,6 +7977,56 @@ ho_restrict_list_ext_ies_o::ext_c::operator=(const ho_restrict_list_ext_ies_o::e return *this; } +nrrestrictin_ep_sas_secondary_rat_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin_ep_sas_secondary_rat() +{ + assert_choice_type(types::nrrestrictin_ep_sas_secondary_rat, type_, "Extension"); + return c.get(); +} +unlicensed_spec_restrict_e& ho_restrict_list_ext_ies_o::ext_c::unlicensed_spec_restrict() +{ + assert_choice_type(types::unlicensed_spec_restrict, type_, "Extension"); + return c.get(); +} +cn_type_restricts_l& ho_restrict_list_ext_ies_o::ext_c::cn_type_restricts() +{ + assert_choice_type(types::cn_type_restricts, type_, "Extension"); + return c.get(); +} +nrrestrictin5_gs_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin5_gs() +{ + assert_choice_type(types::nrrestrictin5_gs, type_, "Extension"); + return c.get(); +} +plm_nid& ho_restrict_list_ext_ies_o::ext_c::last_ng_ranplmn_id() +{ + assert_choice_type(types::last_ng_ranplmn_id, type_, "Extension"); + return c.get(); +} +const nrrestrictin_ep_sas_secondary_rat_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin_ep_sas_secondary_rat() const +{ + assert_choice_type(types::nrrestrictin_ep_sas_secondary_rat, type_, "Extension"); + return c.get(); +} +const unlicensed_spec_restrict_e& ho_restrict_list_ext_ies_o::ext_c::unlicensed_spec_restrict() const +{ + assert_choice_type(types::unlicensed_spec_restrict, type_, "Extension"); + return c.get(); +} +const cn_type_restricts_l& ho_restrict_list_ext_ies_o::ext_c::cn_type_restricts() const +{ + assert_choice_type(types::cn_type_restricts, type_, "Extension"); + return c.get(); +} +const nrrestrictin5_gs_e& ho_restrict_list_ext_ies_o::ext_c::nrrestrictin5_gs() const +{ + assert_choice_type(types::nrrestrictin5_gs, type_, "Extension"); + return c.get(); +} +const plm_nid& ho_restrict_list_ext_ies_o::ext_c::last_ng_ranplmn_id() const +{ + assert_choice_type(types::last_ng_ranplmn_id, type_, "Extension"); + return c.get(); +} void ho_restrict_list_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -7933,7 +8106,7 @@ SRSASN_CODE ho_restrict_list_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const +const char* ho_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"NRrestrictioninEPSasSecondaryRAT", "UnlicensedSpectrumRestriction", @@ -7952,7 +8125,7 @@ uint8_t ho_restrict_list_ext_ies_o::ext_c::types_opts::to_number() const } // DLNASPDUDeliveryAckRequest ::= ENUMERATED -std::string dlnaspdu_delivery_ack_request_opts::to_string() const +const char* dlnaspdu_delivery_ack_request_opts::to_string() const { static const char* options[] = {"requested"}; return convert_enum_idx(options, 1, value, "dlnaspdu_delivery_ack_request_e"); @@ -8200,21 +8373,21 @@ void nrue_security_cap_s::to_json(json_writer& j) const } // PendingDataIndication ::= ENUMERATED -std::string pending_data_ind_opts::to_string() const +const char* pending_data_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "pending_data_ind_e"); } // SRVCCOperationPossible ::= ENUMERATED -std::string srvcc_operation_possible_opts::to_string() const +const char* srvcc_operation_possible_opts::to_string() const { static const char* options[] = {"possible"}; return convert_enum_idx(options, 1, value, "srvcc_operation_possible_e"); } // UECapabilityInfoRequest ::= ENUMERATED -std::string ue_cap_info_request_opts::to_string() const +const char* ue_cap_info_request_opts::to_string() const { static const char* options[] = {"requested"}; return convert_enum_idx(options, 1, value, "ue_cap_info_request_e"); @@ -8375,364 +8548,364 @@ presence_e dl_nas_transport_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE +void dl_nas_transport_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::nas_pdu: + c.destroy >(); + break; + case types::ho_restrict_list: + c.destroy(); + break; + case types::ue_radio_cap: + c.destroy >(); + break; + case types::nrue_security_cap: + c.destroy(); + break; + case types::subscription_based_ue_differentiation_info: + c.destroy(); + break; + case types::add_rrm_prio_idx: + c.destroy >(); + break; + default: + break; + } +} +void dl_nas_transport_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::mme_ue_s1ap_id: + break; + case types::enb_ue_s1ap_id: + break; + case types::nas_pdu: + c.init >(); + break; + case types::ho_restrict_list: + c.init(); + break; + case types::subscriber_profile_idfor_rfp: + break; + case types::srvcc_operation_possible: + break; + case types::ue_radio_cap: + c.init >(); + break; + case types::dlnaspdu_delivery_ack_request: + break; + case types::enhanced_coverage_restricted: + break; + case types::nrue_security_cap: + c.init(); + break; + case types::ce_mode_brestricted: + break; + case types::ue_cap_info_request: + break; + case types::end_ind: + break; + case types::pending_data_ind: + break; + case types::subscription_based_ue_differentiation_info: + c.init(); + break; + case types::add_rrm_prio_idx: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); + } +} +dl_nas_transport_ies_o::value_c::value_c(const dl_nas_transport_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::mme_ue_s1ap_id: + c.init(other.c.get()); + break; + case types::enb_ue_s1ap_id: + c.init(other.c.get()); + break; + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::ho_restrict_list: + c.init(other.c.get()); + break; + case types::subscriber_profile_idfor_rfp: + c.init(other.c.get()); + break; + case types::srvcc_operation_possible: + c.init(other.c.get()); + break; + case types::ue_radio_cap: + c.init(other.c.get >()); + break; + case types::dlnaspdu_delivery_ack_request: + c.init(other.c.get()); + break; + case types::enhanced_coverage_restricted: + c.init(other.c.get()); + break; + case types::nrue_security_cap: + c.init(other.c.get()); + break; + case types::ce_mode_brestricted: + c.init(other.c.get()); + break; + case types::ue_cap_info_request: + c.init(other.c.get()); + break; + case types::end_ind: + c.init(other.c.get()); + break; + case types::pending_data_ind: + c.init(other.c.get()); + break; + case types::subscription_based_ue_differentiation_info: + c.init(other.c.get()); + break; + case types::add_rrm_prio_idx: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); + } +} +dl_nas_transport_ies_o::value_c& +dl_nas_transport_ies_o::value_c::operator=(const dl_nas_transport_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::mme_ue_s1ap_id: + c.set(other.c.get()); + break; + case types::enb_ue_s1ap_id: + c.set(other.c.get()); + break; + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::ho_restrict_list: + c.set(other.c.get()); + break; + case types::subscriber_profile_idfor_rfp: + c.set(other.c.get()); + break; + case types::srvcc_operation_possible: + c.set(other.c.get()); + break; + case types::ue_radio_cap: + c.set(other.c.get >()); + break; + case types::dlnaspdu_delivery_ack_request: + c.set(other.c.get()); + break; + case types::enhanced_coverage_restricted: + c.set(other.c.get()); + break; + case types::nrue_security_cap: + c.set(other.c.get()); + break; + case types::ce_mode_brestricted: + c.set(other.c.get()); + break; + case types::ue_cap_info_request: + c.set(other.c.get()); + break; + case types::end_ind: + c.set(other.c.get()); + break; + case types::pending_data_ind: + c.set(other.c.get()); + break; + case types::subscription_based_ue_differentiation_info: + c.set(other.c.get()); + break; + case types::add_rrm_prio_idx: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); + } + + return *this; +} uint64_t& dl_nas_transport_ies_o::value_c::mme_ue_s1ap_id() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); return c.get(); } uint32_t& dl_nas_transport_ies_o::value_c::enb_ue_s1ap_id() { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::nas_pdu, type_, "Value"); return c.get >(); } ho_restrict_list_s& dl_nas_transport_ies_o::value_c::ho_restrict_list() { - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); + assert_choice_type(types::ho_restrict_list, type_, "Value"); return c.get(); } uint16_t& dl_nas_transport_ies_o::value_c::subscriber_profile_idfor_rfp() { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); return c.get(); } srvcc_operation_possible_e& dl_nas_transport_ies_o::value_c::srvcc_operation_possible() { - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); return c.get(); } unbounded_octstring& dl_nas_transport_ies_o::value_c::ue_radio_cap() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_radio_cap, type_, "Value"); return c.get >(); } dlnaspdu_delivery_ack_request_e& dl_nas_transport_ies_o::value_c::dlnaspdu_delivery_ack_request() { - assert_choice_type("DLNASPDUDeliveryAckRequest", type_.to_string(), "Value"); + assert_choice_type(types::dlnaspdu_delivery_ack_request, type_, "Value"); return c.get(); } enhanced_coverage_restricted_e& dl_nas_transport_ies_o::value_c::enhanced_coverage_restricted() { - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); return c.get(); } nrue_security_cap_s& dl_nas_transport_ies_o::value_c::nrue_security_cap() { - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); + assert_choice_type(types::nrue_security_cap, type_, "Value"); return c.get(); } ce_mode_brestricted_e& dl_nas_transport_ies_o::value_c::ce_mode_brestricted() { - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); return c.get(); } ue_cap_info_request_e& dl_nas_transport_ies_o::value_c::ue_cap_info_request() { - assert_choice_type("UECapabilityInfoRequest", type_.to_string(), "Value"); + assert_choice_type(types::ue_cap_info_request, type_, "Value"); return c.get(); } end_ind_e& dl_nas_transport_ies_o::value_c::end_ind() { - assert_choice_type("EndIndication", type_.to_string(), "Value"); + assert_choice_type(types::end_ind, type_, "Value"); return c.get(); } pending_data_ind_e& dl_nas_transport_ies_o::value_c::pending_data_ind() { - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); + assert_choice_type(types::pending_data_ind, type_, "Value"); return c.get(); } subscription_based_ue_differentiation_info_s& dl_nas_transport_ies_o::value_c::subscription_based_ue_differentiation_info() { - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); return c.get(); } fixed_bitstring<32, false, true>& dl_nas_transport_ies_o::value_c::add_rrm_prio_idx() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); return c.get >(); } const uint64_t& dl_nas_transport_ies_o::value_c::mme_ue_s1ap_id() const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); return c.get(); } const uint32_t& dl_nas_transport_ies_o::value_c::enb_ue_s1ap_id() const { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } const unbounded_octstring& dl_nas_transport_ies_o::value_c::nas_pdu() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::nas_pdu, type_, "Value"); return c.get >(); } const ho_restrict_list_s& dl_nas_transport_ies_o::value_c::ho_restrict_list() const { - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); + assert_choice_type(types::ho_restrict_list, type_, "Value"); return c.get(); } const uint16_t& dl_nas_transport_ies_o::value_c::subscriber_profile_idfor_rfp() const { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); return c.get(); } const srvcc_operation_possible_e& dl_nas_transport_ies_o::value_c::srvcc_operation_possible() const { - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); return c.get(); } const unbounded_octstring& dl_nas_transport_ies_o::value_c::ue_radio_cap() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_radio_cap, type_, "Value"); return c.get >(); } const dlnaspdu_delivery_ack_request_e& dl_nas_transport_ies_o::value_c::dlnaspdu_delivery_ack_request() const { - assert_choice_type("DLNASPDUDeliveryAckRequest", type_.to_string(), "Value"); + assert_choice_type(types::dlnaspdu_delivery_ack_request, type_, "Value"); return c.get(); } const enhanced_coverage_restricted_e& dl_nas_transport_ies_o::value_c::enhanced_coverage_restricted() const { - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); return c.get(); } const nrue_security_cap_s& dl_nas_transport_ies_o::value_c::nrue_security_cap() const { - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); + assert_choice_type(types::nrue_security_cap, type_, "Value"); return c.get(); } const ce_mode_brestricted_e& dl_nas_transport_ies_o::value_c::ce_mode_brestricted() const { - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); return c.get(); } const ue_cap_info_request_e& dl_nas_transport_ies_o::value_c::ue_cap_info_request() const { - assert_choice_type("UECapabilityInfoRequest", type_.to_string(), "Value"); + assert_choice_type(types::ue_cap_info_request, type_, "Value"); return c.get(); } const end_ind_e& dl_nas_transport_ies_o::value_c::end_ind() const { - assert_choice_type("EndIndication", type_.to_string(), "Value"); + assert_choice_type(types::end_ind, type_, "Value"); return c.get(); } const pending_data_ind_e& dl_nas_transport_ies_o::value_c::pending_data_ind() const { - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); + assert_choice_type(types::pending_data_ind, type_, "Value"); return c.get(); } const subscription_based_ue_differentiation_info_s& dl_nas_transport_ies_o::value_c::subscription_based_ue_differentiation_info() const { - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); return c.get(); } const fixed_bitstring<32, false, true>& dl_nas_transport_ies_o::value_c::add_rrm_prio_idx() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); return c.get >(); } -void dl_nas_transport_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::nas_pdu: - c.destroy >(); - break; - case types::ho_restrict_list: - c.destroy(); - break; - case types::ue_radio_cap: - c.destroy >(); - break; - case types::nrue_security_cap: - c.destroy(); - break; - case types::subscription_based_ue_differentiation_info: - c.destroy(); - break; - case types::add_rrm_prio_idx: - c.destroy >(); - break; - default: - break; - } -} -void dl_nas_transport_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::mme_ue_s1ap_id: - break; - case types::enb_ue_s1ap_id: - break; - case types::nas_pdu: - c.init >(); - break; - case types::ho_restrict_list: - c.init(); - break; - case types::subscriber_profile_idfor_rfp: - break; - case types::srvcc_operation_possible: - break; - case types::ue_radio_cap: - c.init >(); - break; - case types::dlnaspdu_delivery_ack_request: - break; - case types::enhanced_coverage_restricted: - break; - case types::nrue_security_cap: - c.init(); - break; - case types::ce_mode_brestricted: - break; - case types::ue_cap_info_request: - break; - case types::end_ind: - break; - case types::pending_data_ind: - break; - case types::subscription_based_ue_differentiation_info: - c.init(); - break; - case types::add_rrm_prio_idx: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); - } -} -dl_nas_transport_ies_o::value_c::value_c(const dl_nas_transport_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::mme_ue_s1ap_id: - c.init(other.c.get()); - break; - case types::enb_ue_s1ap_id: - c.init(other.c.get()); - break; - case types::nas_pdu: - c.init(other.c.get >()); - break; - case types::ho_restrict_list: - c.init(other.c.get()); - break; - case types::subscriber_profile_idfor_rfp: - c.init(other.c.get()); - break; - case types::srvcc_operation_possible: - c.init(other.c.get()); - break; - case types::ue_radio_cap: - c.init(other.c.get >()); - break; - case types::dlnaspdu_delivery_ack_request: - c.init(other.c.get()); - break; - case types::enhanced_coverage_restricted: - c.init(other.c.get()); - break; - case types::nrue_security_cap: - c.init(other.c.get()); - break; - case types::ce_mode_brestricted: - c.init(other.c.get()); - break; - case types::ue_cap_info_request: - c.init(other.c.get()); - break; - case types::end_ind: - c.init(other.c.get()); - break; - case types::pending_data_ind: - c.init(other.c.get()); - break; - case types::subscription_based_ue_differentiation_info: - c.init(other.c.get()); - break; - case types::add_rrm_prio_idx: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); - } -} -dl_nas_transport_ies_o::value_c& -dl_nas_transport_ies_o::value_c::operator=(const dl_nas_transport_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::mme_ue_s1ap_id: - c.set(other.c.get()); - break; - case types::enb_ue_s1ap_id: - c.set(other.c.get()); - break; - case types::nas_pdu: - c.set(other.c.get >()); - break; - case types::ho_restrict_list: - c.set(other.c.get()); - break; - case types::subscriber_profile_idfor_rfp: - c.set(other.c.get()); - break; - case types::srvcc_operation_possible: - c.set(other.c.get()); - break; - case types::ue_radio_cap: - c.set(other.c.get >()); - break; - case types::dlnaspdu_delivery_ack_request: - c.set(other.c.get()); - break; - case types::enhanced_coverage_restricted: - c.set(other.c.get()); - break; - case types::nrue_security_cap: - c.set(other.c.get()); - break; - case types::ce_mode_brestricted: - c.set(other.c.get()); - break; - case types::ue_cap_info_request: - c.set(other.c.get()); - break; - case types::end_ind: - c.set(other.c.get()); - break; - case types::pending_data_ind: - c.set(other.c.get()); - break; - case types::subscription_based_ue_differentiation_info: - c.set(other.c.get()); - break; - case types::add_rrm_prio_idx: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_nas_transport_ies_o::value_c"); - } - - return *this; -} void dl_nas_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -8910,7 +9083,7 @@ SRSASN_CODE dl_nas_transport_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_nas_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_nas_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -9278,26 +9451,6 @@ presence_e dl_non_ueassociated_lp_pa_transport_ies_o::get_presence(const uint32_ } // Value ::= OPEN TYPE -uint16_t& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_non_ueassociated_lp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -9363,6 +9516,26 @@ dl_non_ueassociated_lp_pa_transport_ies_o::value_c& dl_non_ueassociated_lp_pa_tr return *this; } +uint16_t& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint16_t& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} void dl_non_ueassociated_lp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -9411,7 +9584,7 @@ SRSASN_CODE dl_non_ueassociated_lp_pa_transport_ies_o::value_c::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string dl_non_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_non_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..255)", "OCTET STRING"}; return convert_enum_idx(options, 2, value, "dl_non_ueassociated_lp_pa_transport_ies_o::value_c::types"); @@ -9641,21 +9814,21 @@ SRSASN_CODE erab_data_forwarding_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_data_forwarding_item_ies_o::value_c::types_opts::to_string() const +const char* erab_data_forwarding_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABDataForwardingItem"}; return convert_enum_idx(options, 1, value, "erab_data_forwarding_item_ies_o::value_c::types"); } // Cdma2000HOStatus ::= ENUMERATED -std::string cdma2000_ho_status_opts::to_string() const +const char* cdma2000_ho_status_opts::to_string() const { static const char* options[] = {"hOSuccess", "hOFailure"}; return convert_enum_idx(options, 2, value, "cdma2000_ho_status_e"); } // Cdma2000RATType ::= ENUMERATED -std::string cdma2000_rat_type_opts::to_string() const +const char* cdma2000_rat_type_opts::to_string() const { static const char* options[] = {"hRPD", "onexRTT"}; return convert_enum_idx(options, 2, value, "cdma2000_rat_type_e"); @@ -9754,68 +9927,6 @@ presence_e dl_s1cdma2000tunnelling_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& dl_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& dl_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -dl_s1cdma2000tunnelling_ies_o::value_c::erab_subjectto_data_forwarding_list() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABDataForwardingItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -cdma2000_ho_status_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_status() -{ - assert_choice_type("Cdma2000HOStatus", type_.to_string(), "Value"); - return c.get(); -} -cdma2000_rat_type_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() -{ - assert_choice_type("Cdma2000RATType", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& dl_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& dl_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -dl_s1cdma2000tunnelling_ies_o::value_c::erab_subjectto_data_forwarding_list() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABDataForwardingItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const cdma2000_ho_status_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_status() const -{ - assert_choice_type("Cdma2000HOStatus", type_.to_string(), "Value"); - return c.get(); -} -const cdma2000_rat_type_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() const -{ - assert_choice_type("Cdma2000RATType", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_s1cdma2000tunnelling_ies_o::value_c::destroy_() { switch (type_) { @@ -9916,6 +10027,68 @@ dl_s1cdma2000tunnelling_ies_o::value_c::operator=(const dl_s1cdma2000tunnelling_ return *this; } +uint64_t& dl_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& dl_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +dl_s1cdma2000tunnelling_ies_o::value_c::erab_subjectto_data_forwarding_list() +{ + assert_choice_type(types::erab_subjectto_data_forwarding_list, type_, "Value"); + return c.get >(); +} +cdma2000_ho_status_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_status() +{ + assert_choice_type(types::cdma2000_ho_status, type_, "Value"); + return c.get(); +} +cdma2000_rat_type_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() +{ + assert_choice_type(types::cdma2000_rat_type, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() +{ + assert_choice_type(types::cdma2000_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& dl_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& dl_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +dl_s1cdma2000tunnelling_ies_o::value_c::erab_subjectto_data_forwarding_list() const +{ + assert_choice_type(types::erab_subjectto_data_forwarding_list, type_, "Value"); + return c.get >(); +} +const cdma2000_ho_status_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_status() const +{ + assert_choice_type(types::cdma2000_ho_status, type_, "Value"); + return c.get(); +} +const cdma2000_rat_type_e& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() const +{ + assert_choice_type(types::cdma2000_rat_type, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() const +{ + assert_choice_type(types::cdma2000_pdu, type_, "Value"); + return c.get >(); +} void dl_s1cdma2000tunnelling_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -10002,7 +10175,7 @@ SRSASN_CODE dl_s1cdma2000tunnelling_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string dl_s1cdma2000tunnelling_ies_o::value_c::types_opts::to_string() const +const char* dl_s1cdma2000tunnelling_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -10218,46 +10391,6 @@ presence_e dl_ueassociated_lp_pa_transport_ies_o::get_presence(const uint32_t& i } // Value ::= OPEN TYPE -uint64_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& dl_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& dl_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void dl_ueassociated_lp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -10338,6 +10471,46 @@ dl_ueassociated_lp_pa_transport_ies_o::value_c::operator=(const dl_ueassociated_ return *this; } +uint64_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint16_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& dl_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint16_t& dl_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& dl_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} void dl_ueassociated_lp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -10404,7 +10577,7 @@ SRSASN_CODE dl_ueassociated_lp_pa_transport_ies_o::value_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string dl_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* dl_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "INTEGER (0..255)", "OCTET STRING"}; @@ -10657,7 +10830,7 @@ SRSASN_CODE erab_admitted_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_admitted_item_ies_o::value_c::types_opts::to_string() const +const char* erab_admitted_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABAdmittedItem"}; return convert_enum_idx(options, 1, value, "erab_admitted_item_ies_o::value_c::types"); @@ -10760,7 +10933,7 @@ SRSASN_CODE erab_failed_to_resume_item_resume_req_ies_o::value_c::unpack(cbit_re return SRSASN_SUCCESS; } -std::string erab_failed_to_resume_item_resume_req_ies_o::value_c::types_opts::to_string() const +const char* erab_failed_to_resume_item_resume_req_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABFailedToResumeItemResumeReq"}; return convert_enum_idx(options, 1, value, "erab_failed_to_resume_item_resume_req_ies_o::value_c::types"); @@ -10863,7 +11036,7 @@ SRSASN_CODE erab_failed_to_resume_item_resume_res_ies_o::value_c::unpack(cbit_re return SRSASN_SUCCESS; } -std::string erab_failed_to_resume_item_resume_res_ies_o::value_c::types_opts::to_string() const +const char* erab_failed_to_resume_item_resume_res_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABFailedToResumeItemResumeRes"}; return convert_enum_idx(options, 1, value, "erab_failed_to_resume_item_resume_res_ies_o::value_c::types"); @@ -10966,14 +11139,14 @@ SRSASN_CODE erab_failedto_setup_item_ho_req_ack_ies_o::value_c::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string erab_failedto_setup_item_ho_req_ack_ies_o::value_c::types_opts::to_string() const +const char* erab_failedto_setup_item_ho_req_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABFailedToSetupItemHOReqAck"}; return convert_enum_idx(options, 1, value, "erab_failedto_setup_item_ho_req_ack_ies_o::value_c::types"); } // DL-Forwarding ::= ENUMERATED -std::string dl_forwarding_opts::to_string() const +const char* dl_forwarding_opts::to_string() const { static const char* options[] = {"dL-Forwarding-proposed"}; return convert_enum_idx(options, 1, value, "dl_forwarding_e"); @@ -11082,7 +11255,7 @@ SRSASN_CODE erab_info_list_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_info_list_ies_o::value_c::types_opts::to_string() const +const char* erab_info_list_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABInformationListItem"}; return convert_enum_idx(options, 1, value, "erab_info_list_ies_o::value_c::types"); @@ -11186,7 +11359,7 @@ SRSASN_CODE erab_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_item_ies_o::value_c::types_opts::to_string() const +const char* erab_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABItem"}; return convert_enum_idx(options, 1, value, "erab_item_ies_o::value_c::types"); @@ -11286,7 +11459,7 @@ SRSASN_CODE erab_modify_item_bearer_mod_conf_ies_o::value_c::unpack(cbit_ref& br return SRSASN_SUCCESS; } -std::string erab_modify_item_bearer_mod_conf_ies_o::value_c::types_opts::to_string() const +const char* erab_modify_item_bearer_mod_conf_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABModifyItemBearerModConf"}; return convert_enum_idx(options, 1, value, "erab_modify_item_bearer_mod_conf_ies_o::value_c::types"); @@ -11386,76 +11559,6 @@ presence_e erab_mod_confirm_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_modify_list_bearer_mod_conf_l& erab_mod_confirm_ies_o::value_c::erab_modify_list_bearer_mod_conf() -{ - assert_choice_type("E-RABModifyListBearerModConf", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_mod_confirm_ies_o::value_c::erab_failed_to_modify_list_bearer_mod_conf() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_mod_confirm_ies_o::value_c::erab_to_be_released_list_bearer_mod_conf() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& erab_mod_confirm_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& erab_mod_confirm_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_modify_list_bearer_mod_conf_l& erab_mod_confirm_ies_o::value_c::erab_modify_list_bearer_mod_conf() const -{ - assert_choice_type("E-RABModifyListBearerModConf", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_mod_confirm_ies_o::value_c::erab_failed_to_modify_list_bearer_mod_conf() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_mod_confirm_ies_o::value_c::erab_to_be_released_list_bearer_mod_conf() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& erab_mod_confirm_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& erab_mod_confirm_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} void erab_mod_confirm_ies_o::value_c::destroy_() { switch (type_) { @@ -11572,6 +11675,76 @@ erab_mod_confirm_ies_o::value_c::operator=(const erab_mod_confirm_ies_o::value_c return *this; } +uint64_t& erab_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_modify_list_bearer_mod_conf_l& erab_mod_confirm_ies_o::value_c::erab_modify_list_bearer_mod_conf() +{ + assert_choice_type(types::erab_modify_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +erab_list_l& erab_mod_confirm_ies_o::value_c::erab_failed_to_modify_list_bearer_mod_conf() +{ + assert_choice_type(types::erab_failed_to_modify_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +erab_list_l& erab_mod_confirm_ies_o::value_c::erab_to_be_released_list_bearer_mod_conf() +{ + assert_choice_type(types::erab_to_be_released_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& erab_mod_confirm_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +csg_membership_status_e& erab_mod_confirm_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const uint64_t& erab_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_modify_list_bearer_mod_conf_l& erab_mod_confirm_ies_o::value_c::erab_modify_list_bearer_mod_conf() const +{ + assert_choice_type(types::erab_modify_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_mod_confirm_ies_o::value_c::erab_failed_to_modify_list_bearer_mod_conf() const +{ + assert_choice_type(types::erab_failed_to_modify_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_mod_confirm_ies_o::value_c::erab_to_be_released_list_bearer_mod_conf() const +{ + assert_choice_type(types::erab_to_be_released_list_bearer_mod_conf, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& erab_mod_confirm_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& erab_mod_confirm_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} void erab_mod_confirm_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -11678,7 +11851,7 @@ SRSASN_CODE erab_mod_confirm_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_mod_confirm_ies_o::value_c::types_opts::to_string() const +const char* erab_mod_confirm_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -11950,7 +12123,7 @@ SRSASN_CODE erabusage_report_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erabusage_report_item_ies_o::value_c::types_opts::to_string() const +const char* erabusage_report_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABUsageReportItem"}; return convert_enum_idx(options, 1, value, "erabusage_report_item_ies_o::value_c::types"); @@ -11998,7 +12171,7 @@ void nr_cgi_s::to_json(json_writer& j) const } // SecondaryRATType ::= ENUMERATED -std::string secondary_rat_type_opts::to_string() const +const char* secondary_rat_type_opts::to_string() const { static const char* options[] = {"nR", "unlicensed"}; return convert_enum_idx(options, 2, value, "secondary_rat_type_e"); @@ -12228,7 +12401,7 @@ SRSASN_CODE erab_not_to_be_modified_item_bearer_mod_ind_ies_o::value_c::unpack(c return SRSASN_SUCCESS; } -std::string erab_not_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types_opts::to_string() const +const char* erab_not_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABNotToBeModifiedItemBearerModInd"}; return convert_enum_idx(options, 1, value, "erab_not_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types"); @@ -12291,7 +12464,7 @@ SRSASN_CODE erab_to_be_modified_item_bearer_mod_ind_ies_o::value_c::unpack(cbit_ return SRSASN_SUCCESS; } -std::string erab_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeModifiedItemBearerModInd"}; return convert_enum_idx(options, 1, value, "erab_to_be_modified_item_bearer_mod_ind_ies_o::value_c::types"); @@ -12354,7 +12527,7 @@ SRSASN_CODE secondary_rat_data_usage_report_item_ies_o::value_c::unpack(cbit_ref return SRSASN_SUCCESS; } -std::string secondary_rat_data_usage_report_item_ies_o::value_c::types_opts::to_string() const +const char* secondary_rat_data_usage_report_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"SecondaryRATDataUsageReportItem"}; return convert_enum_idx(options, 1, value, "secondary_rat_data_usage_report_item_ies_o::value_c::types"); @@ -12416,7 +12589,7 @@ SRSASN_CODE user_location_info_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string user_location_info_ext_ies_o::ext_c::types_opts::to_string() const +const char* user_location_info_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"PSCellInformation"}; return convert_enum_idx(options, 1, value, "user_location_info_ext_ies_o::ext_c::types"); @@ -12610,90 +12783,6 @@ presence_e erab_mod_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_mod_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_mod_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -erab_mod_ind_ies_o::value_c::erab_to_be_modified_list_bearer_mod_ind() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeModifiedItemBearerModIndIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -erab_ie_container_list_l& -erab_mod_ind_ies_o::value_c::erab_not_to_be_modified_list_bearer_mod_ind() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABNotToBeModifiedItemBearerModIndIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -csg_membership_info_s& erab_mod_ind_ies_o::value_c::csg_membership_info() -{ - assert_choice_type("CSGMembershipInfo", type_.to_string(), "Value"); - return c.get(); -} -tunnel_info_s& erab_mod_ind_ies_o::value_c::tunnel_info_for_bbf() -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& erab_mod_ind_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& erab_mod_ind_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_mod_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_mod_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -erab_mod_ind_ies_o::value_c::erab_to_be_modified_list_bearer_mod_ind() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeModifiedItemBearerModIndIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const erab_ie_container_list_l& -erab_mod_ind_ies_o::value_c::erab_not_to_be_modified_list_bearer_mod_ind() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABNotToBeModifiedItemBearerModIndIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const csg_membership_info_s& erab_mod_ind_ies_o::value_c::csg_membership_info() const -{ - assert_choice_type("CSGMembershipInfo", type_.to_string(), "Value"); - return c.get(); -} -const tunnel_info_s& erab_mod_ind_ies_o::value_c::tunnel_info_for_bbf() const -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& erab_mod_ind_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& erab_mod_ind_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} void erab_mod_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -12825,6 +12914,90 @@ erab_mod_ind_ies_o::value_c& erab_mod_ind_ies_o::value_c::operator=(const erab_m return *this; } +uint64_t& erab_mod_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_mod_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +erab_mod_ind_ies_o::value_c::erab_to_be_modified_list_bearer_mod_ind() +{ + assert_choice_type(types::erab_to_be_modified_list_bearer_mod_ind, type_, "Value"); + return c.get >(); +} +erab_ie_container_list_l& +erab_mod_ind_ies_o::value_c::erab_not_to_be_modified_list_bearer_mod_ind() +{ + assert_choice_type(types::erab_not_to_be_modified_list_bearer_mod_ind, type_, "Value"); + return c.get >(); +} +csg_membership_info_s& erab_mod_ind_ies_o::value_c::csg_membership_info() +{ + assert_choice_type(types::csg_membership_info, type_, "Value"); + return c.get(); +} +tunnel_info_s& erab_mod_ind_ies_o::value_c::tunnel_info_for_bbf() +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& erab_mod_ind_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +user_location_info_s& erab_mod_ind_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const uint64_t& erab_mod_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_mod_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +erab_mod_ind_ies_o::value_c::erab_to_be_modified_list_bearer_mod_ind() const +{ + assert_choice_type(types::erab_to_be_modified_list_bearer_mod_ind, type_, "Value"); + return c.get >(); +} +const erab_ie_container_list_l& +erab_mod_ind_ies_o::value_c::erab_not_to_be_modified_list_bearer_mod_ind() const +{ + assert_choice_type(types::erab_not_to_be_modified_list_bearer_mod_ind, type_, "Value"); + return c.get >(); +} +const csg_membership_info_s& erab_mod_ind_ies_o::value_c::csg_membership_info() const +{ + assert_choice_type(types::csg_membership_info, type_, "Value"); + return c.get(); +} +const tunnel_info_s& erab_mod_ind_ies_o::value_c::tunnel_info_for_bbf() const +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& erab_mod_ind_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const user_location_info_s& erab_mod_ind_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} void erab_mod_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -12938,7 +13111,7 @@ SRSASN_CODE erab_mod_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_mod_ind_ies_o::value_c::types_opts::to_string() const +const char* erab_mod_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -13212,7 +13385,7 @@ SRSASN_CODE erab_modify_item_bearer_mod_res_ies_o::value_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string erab_modify_item_bearer_mod_res_ies_o::value_c::types_opts::to_string() const +const char* erab_modify_item_bearer_mod_res_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABModifyItemBearerModRes"}; return convert_enum_idx(options, 1, value, "erab_modify_item_bearer_mod_res_ies_o::value_c::types"); @@ -13302,7 +13475,7 @@ SRSASN_CODE erab_to_be_modify_item_bearer_mod_req_ext_ies_o::ext_c::unpack(cbit_ return SRSASN_SUCCESS; } -std::string erab_to_be_modify_item_bearer_mod_req_ext_ies_o::ext_c::types_opts::to_string() const +const char* erab_to_be_modify_item_bearer_mod_req_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"TransportInformation"}; return convert_enum_idx(options, 1, value, "erab_to_be_modify_item_bearer_mod_req_ext_ies_o::ext_c::types"); @@ -13407,7 +13580,7 @@ SRSASN_CODE erab_to_be_modified_item_bearer_mod_req_ies_o::value_c::unpack(cbit_ return SRSASN_SUCCESS; } -std::string erab_to_be_modified_item_bearer_mod_req_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_modified_item_bearer_mod_req_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeModifiedItemBearerModReq"}; return convert_enum_idx(options, 1, value, "erab_to_be_modified_item_bearer_mod_req_ies_o::value_c::types"); @@ -13470,26 +13643,6 @@ presence_e ue_aggregate_maximum_bitrates_ext_ies_o::get_presence(const uint32_t& } // Extension ::= OPEN TYPE -uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_dl() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_ul() -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_dl() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} -const uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_ul() const -{ - assert_choice_type("INTEGER (10000000001..4000000000000,...)", type_.to_string(), "Extension"); - return c.get(); -} void ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::destroy_() {} void ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::set(types::options e) { @@ -13534,6 +13687,26 @@ ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::operator=(const ue_aggregate_max return *this; } +uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_dl() +{ + assert_choice_type(types::extended_u_eaggregate_maximum_bit_rate_dl, type_, "Extension"); + return c.get(); +} +uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_ul() +{ + assert_choice_type(types::extended_u_eaggregate_maximum_bit_rate_ul, type_, "Extension"); + return c.get(); +} +const uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_dl() const +{ + assert_choice_type(types::extended_u_eaggregate_maximum_bit_rate_dl, type_, "Extension"); + return c.get(); +} +const uint64_t& ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::extended_u_eaggregate_maximum_bit_rate_ul() const +{ + assert_choice_type(types::extended_u_eaggregate_maximum_bit_rate_ul, type_, "Extension"); + return c.get(); +} void ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -13584,7 +13757,7 @@ SRSASN_CODE ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::types_opts::to_string() const +const char* ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (10000000001..4000000000000,...)", "INTEGER (10000000001..4000000000000,...)"}; @@ -13594,7 +13767,7 @@ std::string ue_aggregate_maximum_bitrates_ext_ies_o::ext_c::types_opts::to_strin template struct asn1::s1ap::protocol_ie_single_container_s; // SecondaryRATDataUsageRequest ::= ENUMERATED -std::string secondary_rat_data_usage_request_opts::to_string() const +const char* secondary_rat_data_usage_request_opts::to_string() const { static const char* options[] = {"requested"}; return convert_enum_idx(options, 1, value, "secondary_rat_data_usage_request_e"); @@ -13782,57 +13955,6 @@ presence_e erab_modify_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_modify_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_modify_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& erab_modify_request_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_to_be_modified_list_bearer_mod_req_l& erab_modify_request_ies_o::value_c::erab_to_be_modified_list_bearer_mod_req() -{ - assert_choice_type("E-RABToBeModifiedListBearerModReq", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_request_e& erab_modify_request_ies_o::value_c::secondary_rat_data_usage_request() -{ - assert_choice_type("SecondaryRATDataUsageRequest", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_modify_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_modify_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& erab_modify_request_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_to_be_modified_list_bearer_mod_req_l& -erab_modify_request_ies_o::value_c::erab_to_be_modified_list_bearer_mod_req() const -{ - assert_choice_type("E-RABToBeModifiedListBearerModReq", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_request_e& erab_modify_request_ies_o::value_c::secondary_rat_data_usage_request() const -{ - assert_choice_type("SecondaryRATDataUsageRequest", type_.to_string(), "Value"); - return c.get(); -} void erab_modify_request_ies_o::value_c::destroy_() { switch (type_) { @@ -13925,6 +14047,57 @@ erab_modify_request_ies_o::value_c::operator=(const erab_modify_request_ies_o::v return *this; } +uint64_t& erab_modify_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_modify_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& erab_modify_request_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_to_be_modified_list_bearer_mod_req_l& erab_modify_request_ies_o::value_c::erab_to_be_modified_list_bearer_mod_req() +{ + assert_choice_type(types::erab_to_be_modified_list_bearer_mod_req, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_request_e& erab_modify_request_ies_o::value_c::secondary_rat_data_usage_request() +{ + assert_choice_type(types::secondary_rat_data_usage_request, type_, "Value"); + return c.get(); +} +const uint64_t& erab_modify_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_modify_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& erab_modify_request_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_to_be_modified_list_bearer_mod_req_l& +erab_modify_request_ies_o::value_c::erab_to_be_modified_list_bearer_mod_req() const +{ + assert_choice_type(types::erab_to_be_modified_list_bearer_mod_req, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_request_e& erab_modify_request_ies_o::value_c::secondary_rat_data_usage_request() const +{ + assert_choice_type(types::secondary_rat_data_usage_request, type_, "Value"); + return c.get(); +} void erab_modify_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -14005,7 +14178,7 @@ SRSASN_CODE erab_modify_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_modify_request_ies_o::value_c::types_opts::to_string() const +const char* erab_modify_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -14224,67 +14397,6 @@ presence_e erab_modify_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_modify_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_modify_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_modify_list_bearer_mod_res_l& erab_modify_resp_ies_o::value_c::erab_modify_list_bearer_mod_res() -{ - assert_choice_type("E-RABModifyListBearerModRes", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_modify_resp_ies_o::value_c::erab_failed_to_modify_list() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& erab_modify_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& erab_modify_resp_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_modify_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_modify_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_modify_list_bearer_mod_res_l& erab_modify_resp_ies_o::value_c::erab_modify_list_bearer_mod_res() const -{ - assert_choice_type("E-RABModifyListBearerModRes", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_modify_resp_ies_o::value_c::erab_failed_to_modify_list() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& erab_modify_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -erab_modify_resp_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} void erab_modify_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -14393,6 +14505,67 @@ erab_modify_resp_ies_o::value_c::operator=(const erab_modify_resp_ies_o::value_c return *this; } +uint64_t& erab_modify_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_modify_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_modify_list_bearer_mod_res_l& erab_modify_resp_ies_o::value_c::erab_modify_list_bearer_mod_res() +{ + assert_choice_type(types::erab_modify_list_bearer_mod_res, type_, "Value"); + return c.get(); +} +erab_list_l& erab_modify_resp_ies_o::value_c::erab_failed_to_modify_list() +{ + assert_choice_type(types::erab_failed_to_modify_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& erab_modify_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& erab_modify_resp_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const uint64_t& erab_modify_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_modify_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_modify_list_bearer_mod_res_l& erab_modify_resp_ies_o::value_c::erab_modify_list_bearer_mod_res() const +{ + assert_choice_type(types::erab_modify_list_bearer_mod_res, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_modify_resp_ies_o::value_c::erab_failed_to_modify_list() const +{ + assert_choice_type(types::erab_failed_to_modify_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& erab_modify_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +erab_modify_resp_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} void erab_modify_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -14490,7 +14663,7 @@ SRSASN_CODE erab_modify_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_modify_resp_ies_o::value_c::types_opts::to_string() const +const char* erab_modify_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -14724,56 +14897,6 @@ presence_e erab_release_cmd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_release_cmd_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_release_cmd_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& erab_release_cmd_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_release_cmd_ies_o::value_c::erab_to_be_released_list() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& erab_release_cmd_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& erab_release_cmd_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_release_cmd_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& erab_release_cmd_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_release_cmd_ies_o::value_c::erab_to_be_released_list() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& erab_release_cmd_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void erab_release_cmd_ies_o::value_c::destroy_() { switch (type_) { @@ -14870,6 +14993,56 @@ erab_release_cmd_ies_o::value_c::operator=(const erab_release_cmd_ies_o::value_c return *this; } +uint64_t& erab_release_cmd_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_release_cmd_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& erab_release_cmd_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_list_l& erab_release_cmd_ies_o::value_c::erab_to_be_released_list() +{ + assert_choice_type(types::erab_to_be_released_list, type_, "Value"); + return c.get(); +} +unbounded_octstring& erab_release_cmd_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& erab_release_cmd_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_release_cmd_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& erab_release_cmd_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_release_cmd_ies_o::value_c::erab_to_be_released_list() const +{ + assert_choice_type(types::erab_to_be_released_list, type_, "Value"); + return c.get(); +} +const unbounded_octstring& erab_release_cmd_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} void erab_release_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -14950,7 +15123,7 @@ SRSASN_CODE erab_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_release_cmd_ies_o::value_c::types_opts::to_string() const +const char* erab_release_cmd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "UEAggregateMaximumBitrate", "E-RABList", "OCTET STRING"}; @@ -15159,57 +15332,6 @@ presence_e erab_release_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_release_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_release_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_release_ind_ies_o::value_c::erab_released_list() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& erab_release_ind_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& erab_release_ind_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_release_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_release_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_release_ind_ies_o::value_c::erab_released_list() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& erab_release_ind_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -erab_release_ind_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} void erab_release_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -15306,6 +15428,57 @@ erab_release_ind_ies_o::value_c::operator=(const erab_release_ind_ies_o::value_c return *this; } +uint64_t& erab_release_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_release_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_list_l& erab_release_ind_ies_o::value_c::erab_released_list() +{ + assert_choice_type(types::erab_released_list, type_, "Value"); + return c.get(); +} +user_location_info_s& erab_release_ind_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& erab_release_ind_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const uint64_t& erab_release_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_release_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_release_ind_ies_o::value_c::erab_released_list() const +{ + assert_choice_type(types::erab_released_list, type_, "Value"); + return c.get(); +} +const user_location_info_s& erab_release_ind_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +erab_release_ind_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} void erab_release_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -15390,7 +15563,7 @@ SRSASN_CODE erab_release_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_release_ind_ies_o::value_c::types_opts::to_string() const +const char* erab_release_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -15616,7 +15789,7 @@ SRSASN_CODE erab_release_item_bearer_rel_comp_ies_o::value_c::unpack(cbit_ref& b return SRSASN_SUCCESS; } -std::string erab_release_item_bearer_rel_comp_ies_o::value_c::types_opts::to_string() const +const char* erab_release_item_bearer_rel_comp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABReleaseItemBearerRelComp"}; return convert_enum_idx(options, 1, value, "erab_release_item_bearer_rel_comp_ies_o::value_c::types"); @@ -15716,77 +15889,6 @@ presence_e erab_release_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_release_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_release_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_release_list_bearer_rel_comp_l& erab_release_resp_ies_o::value_c::erab_release_list_bearer_rel_comp() -{ - assert_choice_type("E-RABReleaseListBearerRelComp", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_release_resp_ies_o::value_c::erab_failed_to_release_list() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& erab_release_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& erab_release_resp_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& erab_release_resp_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_release_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_release_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_release_list_bearer_rel_comp_l& erab_release_resp_ies_o::value_c::erab_release_list_bearer_rel_comp() const -{ - assert_choice_type("E-RABReleaseListBearerRelComp", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_release_resp_ies_o::value_c::erab_failed_to_release_list() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& erab_release_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& erab_release_resp_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -erab_release_resp_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} void erab_release_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -15907,6 +16009,77 @@ erab_release_resp_ies_o::value_c::operator=(const erab_release_resp_ies_o::value return *this; } +uint64_t& erab_release_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_release_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_release_list_bearer_rel_comp_l& erab_release_resp_ies_o::value_c::erab_release_list_bearer_rel_comp() +{ + assert_choice_type(types::erab_release_list_bearer_rel_comp, type_, "Value"); + return c.get(); +} +erab_list_l& erab_release_resp_ies_o::value_c::erab_failed_to_release_list() +{ + assert_choice_type(types::erab_failed_to_release_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& erab_release_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +user_location_info_s& erab_release_resp_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& erab_release_resp_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const uint64_t& erab_release_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_release_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_release_list_bearer_rel_comp_l& erab_release_resp_ies_o::value_c::erab_release_list_bearer_rel_comp() const +{ + assert_choice_type(types::erab_release_list_bearer_rel_comp, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_release_resp_ies_o::value_c::erab_failed_to_release_list() const +{ + assert_choice_type(types::erab_failed_to_release_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& erab_release_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const user_location_info_s& erab_release_resp_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +erab_release_resp_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} void erab_release_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -16014,7 +16187,7 @@ SRSASN_CODE erab_release_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_release_resp_ies_o::value_c::types_opts::to_string() const +const char* erab_release_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -16283,7 +16456,7 @@ SRSASN_CODE erab_setup_item_bearer_su_res_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_setup_item_bearer_su_res_ies_o::value_c::types_opts::to_string() const +const char* erab_setup_item_bearer_su_res_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABSetupItemBearerSURes"}; return convert_enum_idx(options, 1, value, "erab_setup_item_bearer_su_res_ies_o::value_c::types"); @@ -16387,7 +16560,7 @@ SRSASN_CODE erab_setup_item_ctxt_su_res_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_setup_item_ctxt_su_res_ies_o::value_c::types_opts::to_string() const +const char* erab_setup_item_ctxt_su_res_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABSetupItemCtxtSURes"}; return convert_enum_idx(options, 1, value, "erab_setup_item_ctxt_su_res_ies_o::value_c::types"); @@ -16398,7 +16571,7 @@ template struct asn1::s1ap::protocol_ie_single_container_s; // BearerType ::= ENUMERATED -std::string bearer_type_opts::to_string() const +const char* bearer_type_opts::to_string() const { static const char* options[] = {"non-IP"}; return convert_enum_idx(options, 1, value, "bearer_type_e"); @@ -16469,36 +16642,6 @@ presence_e erab_to_be_setup_item_bearer_su_req_ext_ies_o::get_presence(const uin } // Extension ::= OPEN TYPE -fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::correlation_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::sipto_correlation_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -bearer_type_e& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::bearer_type() -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} -const fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::correlation_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::sipto_correlation_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const bearer_type_e& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::bearer_type() const -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} void erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -16576,6 +16719,36 @@ erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c& erab_to_be_setup_item_bear return *this; } +fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::correlation_id() +{ + assert_choice_type(types::correlation_id, type_, "Extension"); + return c.get >(); +} +fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::sipto_correlation_id() +{ + assert_choice_type(types::sipto_correlation_id, type_, "Extension"); + return c.get >(); +} +bearer_type_e& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::bearer_type() +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} +const fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::correlation_id() const +{ + assert_choice_type(types::correlation_id, type_, "Extension"); + return c.get >(); +} +const fixed_octstring<4, true>& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::sipto_correlation_id() const +{ + assert_choice_type(types::sipto_correlation_id, type_, "Extension"); + return c.get >(); +} +const bearer_type_e& erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::bearer_type() const +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} void erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -16633,7 +16806,7 @@ SRSASN_CODE erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::unpack(cbit_re return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::types_opts::to_string() const +const char* erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"OCTET STRING", "OCTET STRING", "BearerType"}; return convert_enum_idx(options, 3, value, "erab_to_be_setup_item_bearer_su_req_ext_ies_o::ext_c::types"); @@ -16823,7 +16996,7 @@ SRSASN_CODE erab_to_be_setup_item_bearer_su_req_ies_o::value_c::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_bearer_su_req_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_setup_item_bearer_su_req_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeSetupItemBearerSUReq"}; return convert_enum_idx(options, 1, value, "erab_to_be_setup_item_bearer_su_req_ies_o::value_c::types"); @@ -16902,47 +17075,6 @@ presence_e erab_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_setup_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_setup_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& erab_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_to_be_setup_list_bearer_su_req_l& erab_setup_request_ies_o::value_c::erab_to_be_setup_list_bearer_su_req() -{ - assert_choice_type("E-RABToBeSetupListBearerSUReq", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_setup_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_setup_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& erab_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_to_be_setup_list_bearer_su_req_l& -erab_setup_request_ies_o::value_c::erab_to_be_setup_list_bearer_su_req() const -{ - assert_choice_type("E-RABToBeSetupListBearerSUReq", type_.to_string(), "Value"); - return c.get(); -} void erab_setup_request_ies_o::value_c::destroy_() { switch (type_) { @@ -17027,6 +17159,47 @@ erab_setup_request_ies_o::value_c::operator=(const erab_setup_request_ies_o::val return *this; } +uint64_t& erab_setup_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_setup_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& erab_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_to_be_setup_list_bearer_su_req_l& erab_setup_request_ies_o::value_c::erab_to_be_setup_list_bearer_su_req() +{ + assert_choice_type(types::erab_to_be_setup_list_bearer_su_req, type_, "Value"); + return c.get(); +} +const uint64_t& erab_setup_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_setup_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& erab_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_to_be_setup_list_bearer_su_req_l& +erab_setup_request_ies_o::value_c::erab_to_be_setup_list_bearer_su_req() const +{ + assert_choice_type(types::erab_to_be_setup_list_bearer_su_req, type_, "Value"); + return c.get(); +} void erab_setup_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -17098,7 +17271,7 @@ SRSASN_CODE erab_setup_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_setup_request_ies_o::value_c::types_opts::to_string() const +const char* erab_setup_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "UEAggregateMaximumBitrate", "E-RABToBeSetupListBearerSUReq"}; @@ -17292,56 +17465,6 @@ presence_e erab_setup_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& erab_setup_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& erab_setup_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_setup_list_bearer_su_res_l& erab_setup_resp_ies_o::value_c::erab_setup_list_bearer_su_res() -{ - assert_choice_type("E-RABSetupListBearerSURes", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& erab_setup_resp_ies_o::value_c::erab_failed_to_setup_list_bearer_su_res() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& erab_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& erab_setup_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& erab_setup_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_setup_list_bearer_su_res_l& erab_setup_resp_ies_o::value_c::erab_setup_list_bearer_su_res() const -{ - assert_choice_type("E-RABSetupListBearerSURes", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& erab_setup_resp_ies_o::value_c::erab_failed_to_setup_list_bearer_su_res() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& erab_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void erab_setup_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -17437,6 +17560,56 @@ erab_setup_resp_ies_o::value_c& erab_setup_resp_ies_o::value_c::operator=(const return *this; } +uint64_t& erab_setup_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& erab_setup_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_setup_list_bearer_su_res_l& erab_setup_resp_ies_o::value_c::erab_setup_list_bearer_su_res() +{ + assert_choice_type(types::erab_setup_list_bearer_su_res, type_, "Value"); + return c.get(); +} +erab_list_l& erab_setup_resp_ies_o::value_c::erab_failed_to_setup_list_bearer_su_res() +{ + assert_choice_type(types::erab_failed_to_setup_list_bearer_su_res, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& erab_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& erab_setup_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& erab_setup_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_setup_list_bearer_su_res_l& erab_setup_resp_ies_o::value_c::erab_setup_list_bearer_su_res() const +{ + assert_choice_type(types::erab_setup_list_bearer_su_res, type_, "Value"); + return c.get(); +} +const erab_list_l& erab_setup_resp_ies_o::value_c::erab_failed_to_setup_list_bearer_su_res() const +{ + assert_choice_type(types::erab_failed_to_setup_list_bearer_su_res, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& erab_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void erab_setup_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -17521,7 +17694,7 @@ SRSASN_CODE erab_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_setup_resp_ies_o::value_c::types_opts::to_string() const +const char* erab_setup_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -17725,36 +17898,6 @@ presence_e erab_to_be_setup_item_ctxt_su_req_ext_ies_o::get_presence(const uint3 } // Extension ::= OPEN TYPE -fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::correlation_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::sipto_correlation_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -bearer_type_e& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::bearer_type() -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} -const fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::correlation_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::sipto_correlation_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const bearer_type_e& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::bearer_type() const -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} void erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -17832,6 +17975,36 @@ erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c& erab_to_be_setup_item_ctxt_s return *this; } +fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::correlation_id() +{ + assert_choice_type(types::correlation_id, type_, "Extension"); + return c.get >(); +} +fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::sipto_correlation_id() +{ + assert_choice_type(types::sipto_correlation_id, type_, "Extension"); + return c.get >(); +} +bearer_type_e& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::bearer_type() +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} +const fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::correlation_id() const +{ + assert_choice_type(types::correlation_id, type_, "Extension"); + return c.get >(); +} +const fixed_octstring<4, true>& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::sipto_correlation_id() const +{ + assert_choice_type(types::sipto_correlation_id, type_, "Extension"); + return c.get >(); +} +const bearer_type_e& erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::bearer_type() const +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} void erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -17889,7 +18062,7 @@ SRSASN_CODE erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::types_opts::to_string() const +const char* erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"OCTET STRING", "OCTET STRING", "BearerType"}; return convert_enum_idx(options, 3, value, "erab_to_be_setup_item_ctxt_su_req_ext_ies_o::ext_c::types"); @@ -18086,14 +18259,14 @@ SRSASN_CODE erab_to_be_setup_item_ctxt_su_req_ies_o::value_c::unpack(cbit_ref& b return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_ctxt_su_req_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_setup_item_ctxt_su_req_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeSetupItemCtxtSUReq"}; return convert_enum_idx(options, 1, value, "erab_to_be_setup_item_ctxt_su_req_ies_o::value_c::types"); } // Data-Forwarding-Not-Possible ::= ENUMERATED -std::string data_forwarding_not_possible_opts::to_string() const +const char* data_forwarding_not_possible_opts::to_string() const { static const char* options[] = {"data-Forwarding-not-Possible"}; return convert_enum_idx(options, 1, value, "data_forwarding_not_possible_e"); @@ -18156,27 +18329,6 @@ presence_e erab_to_be_setup_item_ho_req_ext_ies_o::get_presence(const uint32_t& } // Extension ::= OPEN TYPE -data_forwarding_not_possible_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::data_forwarding_not_possible() -{ - assert_choice_type("Data-Forwarding-Not-Possible", type_.to_string(), "Extension"); - return c.get(); -} -bearer_type_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::bearer_type() -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} -const data_forwarding_not_possible_e& -erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::data_forwarding_not_possible() const -{ - assert_choice_type("Data-Forwarding-Not-Possible", type_.to_string(), "Extension"); - return c.get(); -} -const bearer_type_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::bearer_type() const -{ - assert_choice_type("BearerType", type_.to_string(), "Extension"); - return c.get(); -} void erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::destroy_() {} void erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::set(types::options e) { @@ -18221,6 +18373,27 @@ erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::operator=(const erab_to_be_setup_ return *this; } +data_forwarding_not_possible_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::data_forwarding_not_possible() +{ + assert_choice_type(types::data_forwarding_not_possible, type_, "Extension"); + return c.get(); +} +bearer_type_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::bearer_type() +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} +const data_forwarding_not_possible_e& +erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::data_forwarding_not_possible() const +{ + assert_choice_type(types::data_forwarding_not_possible, type_, "Extension"); + return c.get(); +} +const bearer_type_e& erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::bearer_type() const +{ + assert_choice_type(types::bearer_type, type_, "Extension"); + return c.get(); +} void erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -18269,7 +18442,7 @@ SRSASN_CODE erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::unpack(cbit_ref& bref return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::types_opts::to_string() const +const char* erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"Data-Forwarding-Not-Possible", "BearerType"}; return convert_enum_idx(options, 2, value, "erab_to_be_setup_item_ho_req_ext_ies_o::ext_c::types"); @@ -18441,7 +18614,7 @@ SRSASN_CODE erab_to_be_setup_item_ho_req_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_to_be_setup_item_ho_req_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_setup_item_ho_req_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeSetupItemHOReq"}; return convert_enum_idx(options, 1, value, "erab_to_be_setup_item_ho_req_ies_o::value_c::types"); @@ -18547,7 +18720,7 @@ SRSASN_CODE erab_to_be_switched_dl_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_to_be_switched_dl_item_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_switched_dl_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeSwitchedDLItem"}; return convert_enum_idx(options, 1, value, "erab_to_be_switched_dl_item_ies_o::value_c::types"); @@ -18651,7 +18824,7 @@ SRSASN_CODE erab_to_be_switched_ul_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string erab_to_be_switched_ul_item_ies_o::value_c::types_opts::to_string() const +const char* erab_to_be_switched_ul_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"E-RABToBeSwitchedULItem"}; return convert_enum_idx(options, 1, value, "erab_to_be_switched_ul_item_ies_o::value_c::types"); @@ -18743,7 +18916,7 @@ void enbx2_ext_tla_s::to_json(json_writer& j) const } // MutingAvailabilityIndication ::= ENUMERATED -std::string muting_availability_ind_opts::to_string() const +const char* muting_availability_ind_opts::to_string() const { static const char* options[] = {"available", "unavailable"}; return convert_enum_idx(options, 2, value, "muting_availability_ind_e"); @@ -18797,7 +18970,7 @@ void rlf_report_info_s::to_json(json_writer& j) const } // SynchronisationStatus ::= ENUMERATED -std::string synchronisation_status_opts::to_string() const +const char* synchronisation_status_opts::to_string() const { static const char* options[] = {"synchronous", "asynchronous"}; return convert_enum_idx(options, 2, value, "synchronisation_status_e"); @@ -18858,7 +19031,7 @@ SRSASN_CODE time_synchronisation_info_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string time_synchronisation_info_ext_ies_o::ext_c::types_opts::to_string() const +const char* time_synchronisation_info_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"MutingAvailabilityIndication"}; return convert_enum_idx(options, 1, value, "time_synchronisation_info_ext_ies_o::ext_c::types"); @@ -18950,7 +19123,7 @@ void muting_pattern_info_s::to_json(json_writer& j) const j.end_obj(); } -std::string muting_pattern_info_s::muting_pattern_period_opts::to_string() const +const char* muting_pattern_info_s::muting_pattern_period_opts::to_string() const { static const char* options[] = {"ms0", "ms1280", "ms2560", "ms5120", "ms10240"}; return convert_enum_idx(options, 5, value, "muting_pattern_info_s::muting_pattern_period_e_"); @@ -18987,7 +19160,7 @@ SRSASN_CODE son_info_report_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_info_report_c::types_opts::to_string() const +const char* son_info_report_c::types_opts::to_string() const { static const char* options[] = {"rLFReportInformation"}; return convert_enum_idx(options, 1, value, "son_info_report_c::types"); @@ -19088,28 +19261,6 @@ presence_e x2_tnl_cfg_info_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -enbx2_ext_tlas_l& x2_tnl_cfg_info_ext_ies_o::ext_c::enbx2_extended_transport_layer_addresses() -{ - assert_choice_type("ENBX2ExtTLAs", type_.to_string(), "Extension"); - return c.get(); -} -enb_indirect_x2_transport_layer_addresses_l& -x2_tnl_cfg_info_ext_ies_o::ext_c::enb_indirect_x2_transport_layer_addresses() -{ - assert_choice_type("ENBIndirectX2TransportLayerAddresses", type_.to_string(), "Extension"); - return c.get(); -} -const enbx2_ext_tlas_l& x2_tnl_cfg_info_ext_ies_o::ext_c::enbx2_extended_transport_layer_addresses() const -{ - assert_choice_type("ENBX2ExtTLAs", type_.to_string(), "Extension"); - return c.get(); -} -const enb_indirect_x2_transport_layer_addresses_l& -x2_tnl_cfg_info_ext_ies_o::ext_c::enb_indirect_x2_transport_layer_addresses() const -{ - assert_choice_type("ENBIndirectX2TransportLayerAddresses", type_.to_string(), "Extension"); - return c.get(); -} void x2_tnl_cfg_info_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -19178,6 +19329,28 @@ x2_tnl_cfg_info_ext_ies_o::ext_c::operator=(const x2_tnl_cfg_info_ext_ies_o::ext return *this; } +enbx2_ext_tlas_l& x2_tnl_cfg_info_ext_ies_o::ext_c::enbx2_extended_transport_layer_addresses() +{ + assert_choice_type(types::enbx2_extended_transport_layer_addresses, type_, "Extension"); + return c.get(); +} +enb_indirect_x2_transport_layer_addresses_l& +x2_tnl_cfg_info_ext_ies_o::ext_c::enb_indirect_x2_transport_layer_addresses() +{ + assert_choice_type(types::enb_indirect_x2_transport_layer_addresses, type_, "Extension"); + return c.get(); +} +const enbx2_ext_tlas_l& x2_tnl_cfg_info_ext_ies_o::ext_c::enbx2_extended_transport_layer_addresses() const +{ + assert_choice_type(types::enbx2_extended_transport_layer_addresses, type_, "Extension"); + return c.get(); +} +const enb_indirect_x2_transport_layer_addresses_l& +x2_tnl_cfg_info_ext_ies_o::ext_c::enb_indirect_x2_transport_layer_addresses() const +{ + assert_choice_type(types::enb_indirect_x2_transport_layer_addresses, type_, "Extension"); + return c.get(); +} void x2_tnl_cfg_info_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -19234,7 +19407,7 @@ SRSASN_CODE x2_tnl_cfg_info_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string x2_tnl_cfg_info_ext_ies_o::ext_c::types_opts::to_string() const +const char* x2_tnl_cfg_info_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"ENBX2ExtTLAs", "ENBIndirectX2TransportLayerAddresses"}; return convert_enum_idx(options, 2, value, "x2_tnl_cfg_info_ext_ies_o::ext_c::types"); @@ -19417,7 +19590,7 @@ SRSASN_CODE son_info_ext_ie_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_info_ext_ie_o::value_c::types_opts::to_string() const +const char* son_info_ext_ie_o::value_c::types_opts::to_string() const { static const char* options[] = {"SONInformationReport"}; return convert_enum_idx(options, 1, value, "son_info_ext_ie_o::value_c::types"); @@ -19479,7 +19652,7 @@ SRSASN_CODE son_info_reply_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_info_reply_ext_ies_o::ext_c::types_opts::to_string() const +const char* son_info_reply_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"TimeSynchronisationInfo"}; return convert_enum_idx(options, 1, value, "son_info_reply_ext_ies_o::ext_c::types"); @@ -19755,7 +19928,7 @@ void son_info_reply_s::to_json(json_writer& j) const } // SONInformationRequest ::= ENUMERATED -std::string son_info_request_opts::to_string() const +const char* son_info_request_opts::to_string() const { static const char* options[] = { "x2TNL-Configuration-Info", "time-Synchronisation-Info", "activate-Muting", "deactivate-Muting"}; @@ -19835,6 +20008,16 @@ en_dcson_transfer_type_c& en_dcson_transfer_type_c::operator=(const en_dcson_tra return *this; } +en_dc_transfer_type_request_s& en_dcson_transfer_type_c::set_request() +{ + set(types::request); + return c.get(); +} +en_dc_transfer_type_reply_s& en_dcson_transfer_type_c::set_reply() +{ + set(types::reply); + return c.get(); +} void en_dcson_transfer_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -19887,7 +20070,7 @@ SRSASN_CODE en_dcson_transfer_type_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string en_dcson_transfer_type_c::types_opts::to_string() const +const char* en_dcson_transfer_type_c::types_opts::to_string() const { static const char* options[] = {"request", "reply"}; return convert_enum_idx(options, 2, value, "en_dcson_transfer_type_c::types"); @@ -19969,6 +20152,21 @@ son_info_c& son_info_c::operator=(const son_info_c& other) return *this; } +son_info_request_e& son_info_c::set_son_info_request() +{ + set(types::son_info_request); + return c.get(); +} +son_info_reply_s& son_info_c::set_son_info_reply() +{ + set(types::son_info_reply); + return c.get(); +} +protocol_ie_single_container_s& son_info_c::set_son_info_ext() +{ + set(types::son_info_ext); + return c.get >(); +} void son_info_c::to_json(json_writer& j) const { j.start_obj(); @@ -20032,7 +20230,7 @@ SRSASN_CODE son_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_info_c::types_opts::to_string() const +const char* son_info_c::types_opts::to_string() const { static const char* options[] = {"sONInformationRequest", "sONInformationReply", "sONInformation-Extension"}; return convert_enum_idx(options, 3, value, "son_info_c::types"); @@ -20287,56 +20485,6 @@ presence_e enbcp_relocation_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint32_t& enbcp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -s_tmsi_s& enbcp_relocation_ind_ies_o::value_c::s_tmsi() -{ - assert_choice_type("S-TMSI", type_.to_string(), "Value"); - return c.get(); -} -eutran_cgi_s& enbcp_relocation_ind_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -tai_s& enbcp_relocation_ind_ies_o::value_c::tai() -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -ul_cp_security_info_s& enbcp_relocation_ind_ies_o::value_c::ul_cp_security_info() -{ - assert_choice_type("UL-CP-SecurityInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& enbcp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const s_tmsi_s& enbcp_relocation_ind_ies_o::value_c::s_tmsi() const -{ - assert_choice_type("S-TMSI", type_.to_string(), "Value"); - return c.get(); -} -const eutran_cgi_s& enbcp_relocation_ind_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const tai_s& enbcp_relocation_ind_ies_o::value_c::tai() const -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -const ul_cp_security_info_s& enbcp_relocation_ind_ies_o::value_c::ul_cp_security_info() const -{ - assert_choice_type("UL-CP-SecurityInformation", type_.to_string(), "Value"); - return c.get(); -} void enbcp_relocation_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -20437,6 +20585,56 @@ enbcp_relocation_ind_ies_o::value_c::operator=(const enbcp_relocation_ind_ies_o: return *this; } +uint32_t& enbcp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +s_tmsi_s& enbcp_relocation_ind_ies_o::value_c::s_tmsi() +{ + assert_choice_type(types::s_tmsi, type_, "Value"); + return c.get(); +} +eutran_cgi_s& enbcp_relocation_ind_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +tai_s& enbcp_relocation_ind_ies_o::value_c::tai() +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +ul_cp_security_info_s& enbcp_relocation_ind_ies_o::value_c::ul_cp_security_info() +{ + assert_choice_type(types::ul_cp_security_info, type_, "Value"); + return c.get(); +} +const uint32_t& enbcp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const s_tmsi_s& enbcp_relocation_ind_ies_o::value_c::s_tmsi() const +{ + assert_choice_type(types::s_tmsi, type_, "Value"); + return c.get(); +} +const eutran_cgi_s& enbcp_relocation_ind_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const tai_s& enbcp_relocation_ind_ies_o::value_c::tai() const +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +const ul_cp_security_info_s& enbcp_relocation_ind_ies_o::value_c::ul_cp_security_info() const +{ + assert_choice_type(types::ul_cp_security_info, type_, "Value"); + return c.get(); +} void enbcp_relocation_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -20516,7 +20714,7 @@ SRSASN_CODE enbcp_relocation_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enbcp_relocation_ind_ies_o::value_c::types_opts::to_string() const +const char* enbcp_relocation_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..16777215)", "S-TMSI", "EUTRAN-CGI", "TAI", "UL-CP-SecurityInformation"}; return convert_enum_idx(options, 5, value, "enbcp_relocation_ind_ies_o::value_c::types"); @@ -20680,7 +20878,7 @@ void listening_sf_pattern_s::to_json(json_writer& j) const j.end_obj(); } -std::string listening_sf_pattern_s::pattern_period_opts::to_string() const +const char* listening_sf_pattern_s::pattern_period_opts::to_string() const { static const char* options[] = {"ms1280", "ms2560", "ms5120", "ms10240"}; return convert_enum_idx(options, 4, value, "listening_sf_pattern_s::pattern_period_e_"); @@ -20819,26 +21017,6 @@ presence_e son_cfg_transfer_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -x2_tnl_cfg_info_s& son_cfg_transfer_ext_ies_o::ext_c::x2_tnl_cfg_info() -{ - assert_choice_type("X2TNLConfigurationInfo", type_.to_string(), "Extension"); - return c.get(); -} -synchronisation_info_s& son_cfg_transfer_ext_ies_o::ext_c::synchronisation_info() -{ - assert_choice_type("SynchronisationInformation", type_.to_string(), "Extension"); - return c.get(); -} -const x2_tnl_cfg_info_s& son_cfg_transfer_ext_ies_o::ext_c::x2_tnl_cfg_info() const -{ - assert_choice_type("X2TNLConfigurationInfo", type_.to_string(), "Extension"); - return c.get(); -} -const synchronisation_info_s& son_cfg_transfer_ext_ies_o::ext_c::synchronisation_info() const -{ - assert_choice_type("SynchronisationInformation", type_.to_string(), "Extension"); - return c.get(); -} void son_cfg_transfer_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -20907,6 +21085,26 @@ son_cfg_transfer_ext_ies_o::ext_c::operator=(const son_cfg_transfer_ext_ies_o::e return *this; } +x2_tnl_cfg_info_s& son_cfg_transfer_ext_ies_o::ext_c::x2_tnl_cfg_info() +{ + assert_choice_type(types::x2_tnl_cfg_info, type_, "Extension"); + return c.get(); +} +synchronisation_info_s& son_cfg_transfer_ext_ies_o::ext_c::synchronisation_info() +{ + assert_choice_type(types::synchronisation_info, type_, "Extension"); + return c.get(); +} +const x2_tnl_cfg_info_s& son_cfg_transfer_ext_ies_o::ext_c::x2_tnl_cfg_info() const +{ + assert_choice_type(types::x2_tnl_cfg_info, type_, "Extension"); + return c.get(); +} +const synchronisation_info_s& son_cfg_transfer_ext_ies_o::ext_c::synchronisation_info() const +{ + assert_choice_type(types::synchronisation_info, type_, "Extension"); + return c.get(); +} void son_cfg_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -20957,7 +21155,7 @@ SRSASN_CODE son_cfg_transfer_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string son_cfg_transfer_ext_ies_o::ext_c::types_opts::to_string() const +const char* son_cfg_transfer_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"X2TNLConfigurationInfo", "SynchronisationInformation"}; return convert_enum_idx(options, 2, value, "son_cfg_transfer_ext_ies_o::ext_c::types"); @@ -21214,26 +21412,6 @@ presence_e enb_cfg_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -son_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::son_cfg_transfer_ect() -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -en_dcson_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_ect() -{ - assert_choice_type("EN-DCSONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const son_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::son_cfg_transfer_ect() const -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const en_dcson_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_ect() const -{ - assert_choice_type("EN-DCSONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} void enb_cfg_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -21302,6 +21480,26 @@ enb_cfg_transfer_ies_o::value_c::operator=(const enb_cfg_transfer_ies_o::value_c return *this; } +son_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::son_cfg_transfer_ect() +{ + assert_choice_type(types::son_cfg_transfer_ect, type_, "Value"); + return c.get(); +} +en_dcson_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_ect() +{ + assert_choice_type(types::en_dcson_cfg_transfer_ect, type_, "Value"); + return c.get(); +} +const son_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::son_cfg_transfer_ect() const +{ + assert_choice_type(types::son_cfg_transfer_ect, type_, "Value"); + return c.get(); +} +const en_dcson_cfg_transfer_s& enb_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_ect() const +{ + assert_choice_type(types::en_dcson_cfg_transfer_ect, type_, "Value"); + return c.get(); +} void enb_cfg_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -21352,7 +21550,7 @@ SRSASN_CODE enb_cfg_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_cfg_transfer_ies_o::value_c::types_opts::to_string() const +const char* enb_cfg_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"SONConfigurationTransfer", "EN-DCSONConfigurationTransfer"}; return convert_enum_idx(options, 2, value, "enb_cfg_transfer_ies_o::value_c::types"); @@ -21446,7 +21644,7 @@ void enb_cfg_transfer_s::to_json(json_writer& j) const } // NB-IoT-DefaultPagingDRX ::= ENUMERATED -std::string nb_io_t_default_paging_drx_opts::to_string() const +const char* nb_io_t_default_paging_drx_opts::to_string() const { static const char* options[] = {"v128", "v256", "v512", "v1024"}; return convert_enum_idx(options, 4, value, "nb_io_t_default_paging_drx_e"); @@ -21458,7 +21656,7 @@ uint16_t nb_io_t_default_paging_drx_opts::to_number() const } // PagingDRX ::= ENUMERATED -std::string paging_drx_opts::to_string() const +const char* paging_drx_opts::to_string() const { static const char* options[] = {"v32", "v64", "v128", "v256"}; return convert_enum_idx(options, 4, value, "paging_drx_e"); @@ -21561,76 +21759,6 @@ presence_e enb_cfg_upd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -printable_string<1, 150, true, true>& enb_cfg_upd_ies_o::value_c::enbname() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -supported_tas_l& enb_cfg_upd_ies_o::value_c::supported_tas() -{ - assert_choice_type("SupportedTAs", type_.to_string(), "Value"); - return c.get(); -} -csg_id_list_l& enb_cfg_upd_ies_o::value_c::csg_id_list() -{ - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); - return c.get(); -} -paging_drx_e& enb_cfg_upd_ies_o::value_c::default_paging_drx() -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -nb_io_t_default_paging_drx_e& enb_cfg_upd_ies_o::value_c::nb_io_t_default_paging_drx() -{ - assert_choice_type("NB-IoT-DefaultPagingDRX", type_.to_string(), "Value"); - return c.get(); -} -connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_add_list() -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} -connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_rem_list() -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& enb_cfg_upd_ies_o::value_c::enbname() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const supported_tas_l& enb_cfg_upd_ies_o::value_c::supported_tas() const -{ - assert_choice_type("SupportedTAs", type_.to_string(), "Value"); - return c.get(); -} -const csg_id_list_l& enb_cfg_upd_ies_o::value_c::csg_id_list() const -{ - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); - return c.get(); -} -const paging_drx_e& enb_cfg_upd_ies_o::value_c::default_paging_drx() const -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const nb_io_t_default_paging_drx_e& enb_cfg_upd_ies_o::value_c::nb_io_t_default_paging_drx() const -{ - assert_choice_type("NB-IoT-DefaultPagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_add_list() const -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} -const connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_rem_list() const -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} void enb_cfg_upd_ies_o::value_c::destroy_() { switch (type_) { @@ -21750,6 +21878,76 @@ enb_cfg_upd_ies_o::value_c& enb_cfg_upd_ies_o::value_c::operator=(const enb_cfg_ return *this; } +printable_string<1, 150, true, true>& enb_cfg_upd_ies_o::value_c::enbname() +{ + assert_choice_type(types::enbname, type_, "Value"); + return c.get >(); +} +supported_tas_l& enb_cfg_upd_ies_o::value_c::supported_tas() +{ + assert_choice_type(types::supported_tas, type_, "Value"); + return c.get(); +} +csg_id_list_l& enb_cfg_upd_ies_o::value_c::csg_id_list() +{ + assert_choice_type(types::csg_id_list, type_, "Value"); + return c.get(); +} +paging_drx_e& enb_cfg_upd_ies_o::value_c::default_paging_drx() +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +nb_io_t_default_paging_drx_e& enb_cfg_upd_ies_o::value_c::nb_io_t_default_paging_drx() +{ + assert_choice_type(types::nb_io_t_default_paging_drx, type_, "Value"); + return c.get(); +} +connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_add_list() +{ + assert_choice_type(types::connectedeng_nb_to_add_list, type_, "Value"); + return c.get(); +} +connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_rem_list() +{ + assert_choice_type(types::connectedeng_nb_to_rem_list, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& enb_cfg_upd_ies_o::value_c::enbname() const +{ + assert_choice_type(types::enbname, type_, "Value"); + return c.get >(); +} +const supported_tas_l& enb_cfg_upd_ies_o::value_c::supported_tas() const +{ + assert_choice_type(types::supported_tas, type_, "Value"); + return c.get(); +} +const csg_id_list_l& enb_cfg_upd_ies_o::value_c::csg_id_list() const +{ + assert_choice_type(types::csg_id_list, type_, "Value"); + return c.get(); +} +const paging_drx_e& enb_cfg_upd_ies_o::value_c::default_paging_drx() const +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +const nb_io_t_default_paging_drx_e& enb_cfg_upd_ies_o::value_c::nb_io_t_default_paging_drx() const +{ + assert_choice_type(types::nb_io_t_default_paging_drx, type_, "Value"); + return c.get(); +} +const connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_add_list() const +{ + assert_choice_type(types::connectedeng_nb_to_add_list, type_, "Value"); + return c.get(); +} +const connectedeng_nb_list_l& enb_cfg_upd_ies_o::value_c::connectedeng_nb_to_rem_list() const +{ + assert_choice_type(types::connectedeng_nb_to_rem_list, type_, "Value"); + return c.get(); +} void enb_cfg_upd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -21859,7 +22057,7 @@ SRSASN_CODE enb_cfg_upd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_cfg_upd_ies_o::value_c::types_opts::to_string() const +const char* enb_cfg_upd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"PrintableString", "SupportedTAs", @@ -22090,7 +22288,7 @@ SRSASN_CODE enb_cfg_upd_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const +const char* enb_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"CriticalityDiagnostics"}; return convert_enum_idx(options, 1, value, "enb_cfg_upd_ack_ies_o::value_c::types"); @@ -22119,7 +22317,7 @@ void enb_cfg_upd_ack_s::to_json(json_writer& j) const } // TimeToWait ::= ENUMERATED -std::string time_to_wait_opts::to_string() const +const char* time_to_wait_opts::to_string() const { static const char* options[] = {"v1s", "v2s", "v5s", "v10s", "v20s", "v60s"}; return convert_enum_idx(options, 6, value, "time_to_wait_e"); @@ -22194,36 +22392,6 @@ presence_e enb_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& enb_cfg_upd_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& enb_cfg_upd_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& enb_cfg_upd_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& enb_cfg_upd_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& enb_cfg_upd_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& enb_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void enb_cfg_upd_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -22300,6 +22468,36 @@ enb_cfg_upd_fail_ies_o::value_c::operator=(const enb_cfg_upd_fail_ies_o::value_c return *this; } +cause_c& enb_cfg_upd_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +time_to_wait_e& enb_cfg_upd_fail_ies_o::value_c::time_to_wait() +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& enb_cfg_upd_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cause_c& enb_cfg_upd_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const time_to_wait_e& enb_cfg_upd_fail_ies_o::value_c::time_to_wait() const +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& enb_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void enb_cfg_upd_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -22359,7 +22557,7 @@ SRSASN_CODE enb_cfg_upd_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const +const char* enb_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "enb_cfg_upd_fail_ies_o::value_c::types"); @@ -22691,6 +22889,21 @@ rim_routing_address_c& rim_routing_address_c::operator=(const rim_routing_addres return *this; } +geran_cell_id_s& rim_routing_address_c::set_geran_cell_id() +{ + set(types::geran_cell_id); + return c.get(); +} +target_rnc_id_s& rim_routing_address_c::set_target_rnc_id() +{ + set(types::target_rnc_id); + return c.get(); +} +fixed_octstring<16, true>& rim_routing_address_c::set_ehrpd_sector_id() +{ + set(types::ehrpd_sector_id); + return c.get >(); +} void rim_routing_address_c::to_json(json_writer& j) const { j.start_obj(); @@ -22756,7 +22969,7 @@ SRSASN_CODE rim_routing_address_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string rim_routing_address_c::types_opts::to_string() const +const char* rim_routing_address_c::types_opts::to_string() const { static const char* options[] = {"gERAN-Cell-ID", "targetRNC-ID", "eHRPD-Sector-ID"}; return convert_enum_idx(options, 3, value, "rim_routing_address_c::types"); @@ -22836,7 +23049,7 @@ SRSASN_CODE inter_sys_info_transfer_type_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string inter_sys_info_transfer_type_c::types_opts::to_string() const +const char* inter_sys_info_transfer_type_c::types_opts::to_string() const { static const char* options[] = {"rIMTransfer"}; return convert_enum_idx(options, 1, value, "inter_sys_info_transfer_type_c::types"); @@ -22898,7 +23111,7 @@ SRSASN_CODE enb_direct_info_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_direct_info_transfer_ies_o::value_c::types_opts::to_string() const +const char* enb_direct_info_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Inter-SystemInformationTransferType"}; return convert_enum_idx(options, 1, value, "enb_direct_info_transfer_ies_o::value_c::types"); @@ -22990,38 +23203,6 @@ presence_e enb_status_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& enb_status_transfer_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& enb_status_transfer_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -enb_status_transfer_transparent_container_s& -enb_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() -{ - assert_choice_type("ENB-StatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& enb_status_transfer_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& enb_status_transfer_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const enb_status_transfer_transparent_container_s& -enb_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() const -{ - assert_choice_type("ENB-StatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} void enb_status_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -23094,6 +23275,38 @@ enb_status_transfer_ies_o::value_c::operator=(const enb_status_transfer_ies_o::v return *this; } +uint64_t& enb_status_transfer_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& enb_status_transfer_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +enb_status_transfer_transparent_container_s& +enb_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() +{ + assert_choice_type(types::enb_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} +const uint64_t& enb_status_transfer_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& enb_status_transfer_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const enb_status_transfer_transparent_container_s& +enb_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() const +{ + assert_choice_type(types::enb_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} void enb_status_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -23152,7 +23365,7 @@ SRSASN_CODE enb_status_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string enb_status_transfer_ies_o::value_c::types_opts::to_string() const +const char* enb_status_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "ENB-StatusTransfer-TransparentContainer"}; @@ -23357,151 +23570,151 @@ presence_e error_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE +void error_ind_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::cause: + c.destroy(); + break; + case types::crit_diagnostics: + c.destroy(); + break; + case types::s_tmsi: + c.destroy(); + break; + default: + break; + } +} +void error_ind_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::mme_ue_s1ap_id: + break; + case types::enb_ue_s1ap_id: + break; + case types::cause: + c.init(); + break; + case types::crit_diagnostics: + c.init(); + break; + case types::s_tmsi: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); + } +} +error_ind_ies_o::value_c::value_c(const error_ind_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::mme_ue_s1ap_id: + c.init(other.c.get()); + break; + case types::enb_ue_s1ap_id: + c.init(other.c.get()); + break; + case types::cause: + c.init(other.c.get()); + break; + case types::crit_diagnostics: + c.init(other.c.get()); + break; + case types::s_tmsi: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); + } +} +error_ind_ies_o::value_c& error_ind_ies_o::value_c::operator=(const error_ind_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::mme_ue_s1ap_id: + c.set(other.c.get()); + break; + case types::enb_ue_s1ap_id: + c.set(other.c.get()); + break; + case types::cause: + c.set(other.c.get()); + break; + case types::crit_diagnostics: + c.set(other.c.get()); + break; + case types::s_tmsi: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); + } + + return *this; +} uint64_t& error_ind_ies_o::value_c::mme_ue_s1ap_id() { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); return c.get(); } uint32_t& error_ind_ies_o::value_c::enb_ue_s1ap_id() { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } cause_c& error_ind_ies_o::value_c::cause() { - assert_choice_type("Cause", type_.to_string(), "Value"); + assert_choice_type(types::cause, type_, "Value"); return c.get(); } crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); + assert_choice_type(types::crit_diagnostics, type_, "Value"); return c.get(); } s_tmsi_s& error_ind_ies_o::value_c::s_tmsi() { - assert_choice_type("S-TMSI", type_.to_string(), "Value"); + assert_choice_type(types::s_tmsi, type_, "Value"); return c.get(); } const uint64_t& error_ind_ies_o::value_c::mme_ue_s1ap_id() const { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); return c.get(); } const uint32_t& error_ind_ies_o::value_c::enb_ue_s1ap_id() const { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } const cause_c& error_ind_ies_o::value_c::cause() const { - assert_choice_type("Cause", type_.to_string(), "Value"); + assert_choice_type(types::cause, type_, "Value"); return c.get(); } const crit_diagnostics_s& error_ind_ies_o::value_c::crit_diagnostics() const { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); + assert_choice_type(types::crit_diagnostics, type_, "Value"); return c.get(); } const s_tmsi_s& error_ind_ies_o::value_c::s_tmsi() const { - assert_choice_type("S-TMSI", type_.to_string(), "Value"); + assert_choice_type(types::s_tmsi, type_, "Value"); return c.get(); } -void error_ind_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::cause: - c.destroy(); - break; - case types::crit_diagnostics: - c.destroy(); - break; - case types::s_tmsi: - c.destroy(); - break; - default: - break; - } -} -void error_ind_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::mme_ue_s1ap_id: - break; - case types::enb_ue_s1ap_id: - break; - case types::cause: - c.init(); - break; - case types::crit_diagnostics: - c.init(); - break; - case types::s_tmsi: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); - } -} -error_ind_ies_o::value_c::value_c(const error_ind_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::mme_ue_s1ap_id: - c.init(other.c.get()); - break; - case types::enb_ue_s1ap_id: - c.init(other.c.get()); - break; - case types::cause: - c.init(other.c.get()); - break; - case types::crit_diagnostics: - c.init(other.c.get()); - break; - case types::s_tmsi: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); - } -} -error_ind_ies_o::value_c& error_ind_ies_o::value_c::operator=(const error_ind_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::mme_ue_s1ap_id: - c.set(other.c.get()); - break; - case types::enb_ue_s1ap_id: - c.set(other.c.get()); - break; - case types::cause: - c.set(other.c.get()); - break; - case types::crit_diagnostics: - c.set(other.c.get()); - break; - case types::s_tmsi: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "error_ind_ies_o::value_c"); - } - - return *this; -} void error_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -23580,7 +23793,7 @@ SRSASN_CODE error_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string error_ind_ies_o::value_c::types_opts::to_string() const +const char* error_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics", "S-TMSI"}; @@ -23721,7 +23934,7 @@ void error_ind_s::to_json(json_writer& j) const } // NumberOfMeasurementReportingLevels ::= ENUMERATED -std::string nof_meas_report_levels_opts::to_string() const +const char* nof_meas_report_levels_opts::to_string() const { static const char* options[] = {"rl2", "rl3", "rl4", "rl5", "rl10"}; return convert_enum_idx(options, 5, value, "nof_meas_report_levels_e"); @@ -23755,7 +23968,7 @@ void event_triggered_cell_load_report_request_s::to_json(json_writer& j) const } // OverloadFlag ::= ENUMERATED -std::string overload_flag_opts::to_string() const +const char* overload_flag_opts::to_string() const { static const char* options[] = {"overload"}; return convert_enum_idx(options, 1, value, "overload_flag_e"); @@ -23798,7 +24011,7 @@ void event_triggered_cell_load_report_resp_s::to_json(json_writer& j) const } // SourceOfUEActivityBehaviourInformation ::= ENUMERATED -std::string source_of_ue_activity_behaviour_info_opts::to_string() const +const char* source_of_ue_activity_behaviour_info_opts::to_string() const { static const char* options[] = {"subscription-information", "statistics"}; return convert_enum_idx(options, 2, value, "source_of_ue_activity_behaviour_info_e"); @@ -23871,7 +24084,7 @@ void expected_ue_activity_behaviour_s::to_json(json_writer& j) const } // ExpectedHOInterval ::= ENUMERATED -std::string expected_ho_interv_opts::to_string() const +const char* expected_ho_interv_opts::to_string() const { static const char* options[] = {"sec15", "sec30", "sec60", "sec90", "sec120", "sec180", "long-time"}; return convert_enum_idx(options, 7, value, "expected_ho_interv_e"); @@ -23999,21 +24212,21 @@ SRSASN_CODE fail_event_report_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string fail_event_report_c::types_opts::to_string() const +const char* fail_event_report_c::types_opts::to_string() const { static const char* options[] = {"tooEarlyInterRATHOReportFromEUTRAN"}; return convert_enum_idx(options, 1, value, "fail_event_report_c::types"); } // HoReportType ::= ENUMERATED -std::string ho_report_type_opts::to_string() const +const char* ho_report_type_opts::to_string() const { static const char* options[] = {"unnecessaryhotoanotherrat", "earlyirathandover"}; return convert_enum_idx(options, 2, value, "ho_report_type_e"); } // HoType ::= ENUMERATED -std::string ho_type_opts::to_string() const +const char* ho_type_opts::to_string() const { static const char* options[] = {"ltetoutran", "ltetogeran"}; return convert_enum_idx(options, 2, value, "ho_type_e"); @@ -24148,36 +24361,6 @@ presence_e ho_cancel_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cancel_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_cancel_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_cancel_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_cancel_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_cancel_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void ho_cancel_ies_o::value_c::destroy_() { switch (type_) { @@ -24249,6 +24432,36 @@ ho_cancel_ies_o::value_c& ho_cancel_ies_o::value_c::operator=(const ho_cancel_ie return *this; } +uint64_t& ho_cancel_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_cancel_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_cancel_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_cancel_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_cancel_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void ho_cancel_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -24307,7 +24520,7 @@ SRSASN_CODE ho_cancel_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cancel_ies_o::value_c::types_opts::to_string() const +const char* ho_cancel_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause"}; return convert_enum_idx(options, 3, value, "ho_cancel_ies_o::value_c::types"); @@ -24469,36 +24682,6 @@ presence_e ho_cancel_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cancel_ack_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_cancel_ack_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cancel_ack_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_cancel_ack_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_cancel_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -24570,6 +24753,36 @@ ho_cancel_ack_ies_o::value_c& ho_cancel_ack_ies_o::value_c::operator=(const ho_c return *this; } +uint64_t& ho_cancel_ack_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_cancel_ack_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cancel_ack_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_cancel_ack_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_cancel_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_cancel_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -24628,7 +24841,7 @@ SRSASN_CODE ho_cancel_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cancel_ack_ies_o::value_c::types_opts::to_string() const +const char* ho_cancel_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "ho_cancel_ack_ies_o::value_c::types"); @@ -24732,7 +24945,7 @@ void ho_cancel_ack_s::to_json(json_writer& j) const } // HandoverType ::= ENUMERATED -std::string handov_type_opts::to_string() const +const char* handov_type_opts::to_string() const { static const char* options[] = { "intralte", "ltetoutran", "ltetogeran", "utrantolte", "gerantolte", "eps-to-5gs", "fivegs-to-eps"}; @@ -24857,97 +25070,6 @@ presence_e ho_cmd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_cmd_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_cmd_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -handov_type_e& ho_cmd_ies_o::value_c::handov_type() -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_paramsfrom_e_utran() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -erab_ie_container_list_l& ho_cmd_ies_o::value_c::erab_subjectto_data_forwarding_list() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABDataForwardingItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -erab_list_l& ho_cmd_ies_o::value_c::erab_to_release_list_ho_cmd() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container_secondary() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_cmd_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_cmd_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const handov_type_e& ho_cmd_ies_o::value_c::handov_type() const -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_paramsfrom_e_utran() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const erab_ie_container_list_l& -ho_cmd_ies_o::value_c::erab_subjectto_data_forwarding_list() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABDataForwardingItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const erab_list_l& ho_cmd_ies_o::value_c::erab_to_release_list_ho_cmd() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container_secondary() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_cmd_ies_o::value_c::destroy_() { switch (type_) { @@ -25087,6 +25209,97 @@ ho_cmd_ies_o::value_c& ho_cmd_ies_o::value_c::operator=(const ho_cmd_ies_o::valu return *this; } +uint64_t& ho_cmd_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_cmd_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_cmd_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_paramsfrom_e_utran() +{ + assert_choice_type(types::nas_security_paramsfrom_e_utran, type_, "Value"); + return c.get >(); +} +erab_ie_container_list_l& ho_cmd_ies_o::value_c::erab_subjectto_data_forwarding_list() +{ + assert_choice_type(types::erab_subjectto_data_forwarding_list, type_, "Value"); + return c.get >(); +} +erab_list_l& ho_cmd_ies_o::value_c::erab_to_release_list_ho_cmd() +{ + assert_choice_type(types::erab_to_release_list_ho_cmd, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container_secondary() +{ + assert_choice_type(types::target_to_source_transparent_container_secondary, type_, "Value"); + return c.get >(); +} +crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_cmd_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_cmd_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_cmd_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_cmd_ies_o::value_c::nas_security_paramsfrom_e_utran() const +{ + assert_choice_type(types::nas_security_paramsfrom_e_utran, type_, "Value"); + return c.get >(); +} +const erab_ie_container_list_l& +ho_cmd_ies_o::value_c::erab_subjectto_data_forwarding_list() const +{ + assert_choice_type(types::erab_subjectto_data_forwarding_list, type_, "Value"); + return c.get >(); +} +const erab_list_l& ho_cmd_ies_o::value_c::erab_to_release_list_ho_cmd() const +{ + assert_choice_type(types::erab_to_release_list_ho_cmd, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container() const +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_cmd_ies_o::value_c::target_to_source_transparent_container_secondary() const +{ + assert_choice_type(types::target_to_source_transparent_container_secondary, type_, "Value"); + return c.get >(); +} +const crit_diagnostics_s& ho_cmd_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -25205,7 +25418,7 @@ SRSASN_CODE ho_cmd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_cmd_ies_o::value_c::types_opts::to_string() const +const char* ho_cmd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -25463,36 +25676,6 @@ presence_e ho_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -25568,6 +25751,36 @@ ho_fail_ies_o::value_c& ho_fail_ies_o::value_c::operator=(const ho_fail_ies_o::v return *this; } +uint64_t& ho_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -25627,7 +25840,7 @@ SRSASN_CODE ho_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_fail_ies_o::value_c::types_opts::to_string() const +const char* ho_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "Cause", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "ho_fail_ies_o::value_c::types"); @@ -25827,76 +26040,6 @@ presence_e ho_notify_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_notify_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_notify_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -eutran_cgi_s& ho_notify_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -tai_s& ho_notify_ies_o::value_c::tai() -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -tunnel_info_s& ho_notify_ies_o::value_c::tunnel_info_for_bbf() -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -bounded_octstring<32, 256, true>& ho_notify_ies_o::value_c::lhn_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -ps_cell_info_s& ho_notify_ies_o::value_c::ps_cell_info() -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_notify_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_notify_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const eutran_cgi_s& ho_notify_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const tai_s& ho_notify_ies_o::value_c::tai() const -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -const tunnel_info_s& ho_notify_ies_o::value_c::tunnel_info_for_bbf() const -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -const bounded_octstring<32, 256, true>& ho_notify_ies_o::value_c::lhn_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const ps_cell_info_s& ho_notify_ies_o::value_c::ps_cell_info() const -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} void ho_notify_ies_o::value_c::destroy_() { switch (type_) { @@ -26016,6 +26159,76 @@ ho_notify_ies_o::value_c& ho_notify_ies_o::value_c::operator=(const ho_notify_ie return *this; } +uint64_t& ho_notify_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_notify_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +eutran_cgi_s& ho_notify_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +tai_s& ho_notify_ies_o::value_c::tai() +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +tunnel_info_s& ho_notify_ies_o::value_c::tunnel_info_for_bbf() +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +bounded_octstring<32, 256, true>& ho_notify_ies_o::value_c::lhn_id() +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +ps_cell_info_s& ho_notify_ies_o::value_c::ps_cell_info() +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +const uint64_t& ho_notify_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_notify_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const eutran_cgi_s& ho_notify_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const tai_s& ho_notify_ies_o::value_c::tai() const +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +const tunnel_info_s& ho_notify_ies_o::value_c::tunnel_info_for_bbf() const +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +const bounded_octstring<32, 256, true>& ho_notify_ies_o::value_c::lhn_id() const +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +const ps_cell_info_s& ho_notify_ies_o::value_c::ps_cell_info() const +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} void ho_notify_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -26113,7 +26326,7 @@ SRSASN_CODE ho_notify_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_notify_ies_o::value_c::types_opts::to_string() const +const char* ho_notify_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -26345,46 +26558,6 @@ presence_e ho_prep_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_prep_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_prep_fail_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_prep_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_prep_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_prep_fail_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_prep_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ho_prep_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -26468,6 +26641,46 @@ ho_prep_fail_ies_o::value_c& ho_prep_fail_ies_o::value_c::operator=(const ho_pre return *this; } +uint64_t& ho_prep_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_prep_fail_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ho_prep_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ho_prep_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_prep_fail_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ho_prep_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ho_prep_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ho_prep_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -26536,7 +26749,7 @@ SRSASN_CODE ho_prep_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_prep_fail_ies_o::value_c::types_opts::to_string() const +const char* ho_prep_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics"}; @@ -26700,14 +26913,14 @@ void mbsfn_result_to_log_info_s::to_json(json_writer& j) const } // Links-to-log ::= ENUMERATED -std::string links_to_log_opts::to_string() const +const char* links_to_log_opts::to_string() const { static const char* options[] = {"uplink", "downlink", "both-uplink-and-downlink"}; return convert_enum_idx(options, 3, value, "links_to_log_e"); } // LoggingDuration ::= ENUMERATED -std::string logging_dur_opts::to_string() const +const char* logging_dur_opts::to_string() const { static const char* options[] = {"m10", "m20", "m40", "m60", "m90", "m120"}; return convert_enum_idx(options, 6, value, "logging_dur_e"); @@ -26719,7 +26932,7 @@ uint8_t logging_dur_opts::to_number() const } // LoggingInterval ::= ENUMERATED -std::string logging_interv_opts::to_string() const +const char* logging_interv_opts::to_string() const { static const char* options[] = {"ms128", "ms256", "ms512", "ms1024", "ms2048", "ms3072", "ms4096", "ms6144"}; return convert_enum_idx(options, 8, value, "logging_interv_e"); @@ -26731,7 +26944,7 @@ uint16_t logging_interv_opts::to_number() const } // M3period ::= ENUMERATED -std::string m3period_opts::to_string() const +const char* m3period_opts::to_string() const { static const char* options[] = { "ms100", "ms1000", "ms10000", "ms1024", "ms1280", "ms2048", "ms2560", "ms5120", "ms10240", "min1"}; @@ -26744,7 +26957,7 @@ uint16_t m3period_opts::to_number() const } // M4period ::= ENUMERATED -std::string m4period_opts::to_string() const +const char* m4period_opts::to_string() const { static const char* options[] = {"ms1024", "ms2048", "ms5120", "ms10240", "min1"}; return convert_enum_idx(options, 5, value, "m4period_e"); @@ -26756,7 +26969,7 @@ uint16_t m4period_opts::to_number() const } // M5period ::= ENUMERATED -std::string m5period_opts::to_string() const +const char* m5period_opts::to_string() const { static const char* options[] = {"ms1024", "ms2048", "ms5120", "ms10240", "min1"}; return convert_enum_idx(options, 5, value, "m5period_e"); @@ -26768,7 +26981,7 @@ uint16_t m5period_opts::to_number() const } // M6delay-threshold ::= ENUMERATED -std::string m6delay_thres_opts::to_string() const +const char* m6delay_thres_opts::to_string() const { static const char* options[] = { "ms30", "ms40", "ms50", "ms60", "ms70", "ms80", "ms90", "ms100", "ms150", "ms300", "ms500", "ms750"}; @@ -26781,7 +26994,7 @@ uint16_t m6delay_thres_opts::to_number() const } // M6report-Interval ::= ENUMERATED -std::string m6report_interv_opts::to_string() const +const char* m6report_interv_opts::to_string() const { static const char* options[] = {"ms1024", "ms2048", "ms5120", "ms10240"}; return convert_enum_idx(options, 4, value, "m6report_interv_e"); @@ -26793,7 +27006,7 @@ uint16_t m6report_interv_opts::to_number() const } // WLANMeasConfig ::= ENUMERATED -std::string wlan_meas_cfg_opts::to_string() const +const char* wlan_meas_cfg_opts::to_string() const { static const char* options[] = {"setup"}; return convert_enum_idx(options, 1, value, "wlan_meas_cfg_e"); @@ -27100,6 +27313,16 @@ meas_thres_a2_c& meas_thres_a2_c::operator=(const meas_thres_a2_c& other) return *this; } +uint8_t& meas_thres_a2_c::set_thres_rsrp() +{ + set(types::thres_rsrp); + return c.get(); +} +uint8_t& meas_thres_a2_c::set_thres_rsrq() +{ + set(types::thres_rsrq); + return c.get(); +} void meas_thres_a2_c::to_json(json_writer& j) const { j.start_obj(); @@ -27150,14 +27373,14 @@ SRSASN_CODE meas_thres_a2_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string meas_thres_a2_c::types_opts::to_string() const +const char* meas_thres_a2_c::types_opts::to_string() const { static const char* options[] = {"threshold-RSRP", "threshold-RSRQ"}; return convert_enum_idx(options, 2, value, "meas_thres_a2_c::types"); } // ReportAmountMDT ::= ENUMERATED -std::string report_amount_mdt_opts::to_string() const +const char* report_amount_mdt_opts::to_string() const { static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "rinfinity"}; return convert_enum_idx(options, 8, value, "report_amount_mdt_e"); @@ -27169,7 +27392,7 @@ int8_t report_amount_mdt_opts::to_number() const } // ReportIntervalMDT ::= ENUMERATED -std::string report_interv_mdt_opts::to_string() const +const char* report_interv_mdt_opts::to_string() const { static const char* options[] = {"ms120", "ms240", @@ -27265,13 +27488,13 @@ void wlan_meas_cfg_s::to_json(json_writer& j) const j.end_obj(); } -std::string wlan_meas_cfg_s::wlan_rssi_opts::to_string() const +const char* wlan_meas_cfg_s::wlan_rssi_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "wlan_meas_cfg_s::wlan_rssi_e_"); } -std::string wlan_meas_cfg_s::wlan_rtt_opts::to_string() const +const char* wlan_meas_cfg_s::wlan_rtt_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "wlan_meas_cfg_s::wlan_rtt_e_"); @@ -27376,86 +27599,6 @@ presence_e immediate_mdt_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -m3_cfg_s& immediate_mdt_ext_ies_o::ext_c::m3_cfg() -{ - assert_choice_type("M3Configuration", type_.to_string(), "Extension"); - return c.get(); -} -m4_cfg_s& immediate_mdt_ext_ies_o::ext_c::m4_cfg() -{ - assert_choice_type("M4Configuration", type_.to_string(), "Extension"); - return c.get(); -} -m5_cfg_s& immediate_mdt_ext_ies_o::ext_c::m5_cfg() -{ - assert_choice_type("M5Configuration", type_.to_string(), "Extension"); - return c.get(); -} -fixed_bitstring<8, false, true>& immediate_mdt_ext_ies_o::ext_c::mdt_location_info() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -m6_cfg_s& immediate_mdt_ext_ies_o::ext_c::m6_cfg() -{ - assert_choice_type("M6Configuration", type_.to_string(), "Extension"); - return c.get(); -} -m7_cfg_s& immediate_mdt_ext_ies_o::ext_c::m7_cfg() -{ - assert_choice_type("M7Configuration", type_.to_string(), "Extension"); - return c.get(); -} -bluetooth_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() -{ - assert_choice_type("BluetoothMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -wlan_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::wlan_meas_cfg() -{ - assert_choice_type("WLANMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -const m3_cfg_s& immediate_mdt_ext_ies_o::ext_c::m3_cfg() const -{ - assert_choice_type("M3Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const m4_cfg_s& immediate_mdt_ext_ies_o::ext_c::m4_cfg() const -{ - assert_choice_type("M4Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const m5_cfg_s& immediate_mdt_ext_ies_o::ext_c::m5_cfg() const -{ - assert_choice_type("M5Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const fixed_bitstring<8, false, true>& immediate_mdt_ext_ies_o::ext_c::mdt_location_info() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const m6_cfg_s& immediate_mdt_ext_ies_o::ext_c::m6_cfg() const -{ - assert_choice_type("M6Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const m7_cfg_s& immediate_mdt_ext_ies_o::ext_c::m7_cfg() const -{ - assert_choice_type("M7Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const bluetooth_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() const -{ - assert_choice_type("BluetoothMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -const wlan_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::wlan_meas_cfg() const -{ - assert_choice_type("WLANMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} void immediate_mdt_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -27595,6 +27738,86 @@ immediate_mdt_ext_ies_o::ext_c& immediate_mdt_ext_ies_o::ext_c::operator=(const return *this; } +m3_cfg_s& immediate_mdt_ext_ies_o::ext_c::m3_cfg() +{ + assert_choice_type(types::m3_cfg, type_, "Extension"); + return c.get(); +} +m4_cfg_s& immediate_mdt_ext_ies_o::ext_c::m4_cfg() +{ + assert_choice_type(types::m4_cfg, type_, "Extension"); + return c.get(); +} +m5_cfg_s& immediate_mdt_ext_ies_o::ext_c::m5_cfg() +{ + assert_choice_type(types::m5_cfg, type_, "Extension"); + return c.get(); +} +fixed_bitstring<8, false, true>& immediate_mdt_ext_ies_o::ext_c::mdt_location_info() +{ + assert_choice_type(types::mdt_location_info, type_, "Extension"); + return c.get >(); +} +m6_cfg_s& immediate_mdt_ext_ies_o::ext_c::m6_cfg() +{ + assert_choice_type(types::m6_cfg, type_, "Extension"); + return c.get(); +} +m7_cfg_s& immediate_mdt_ext_ies_o::ext_c::m7_cfg() +{ + assert_choice_type(types::m7_cfg, type_, "Extension"); + return c.get(); +} +bluetooth_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() +{ + assert_choice_type(types::bluetooth_meas_cfg, type_, "Extension"); + return c.get(); +} +wlan_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::wlan_meas_cfg() +{ + assert_choice_type(types::wlan_meas_cfg, type_, "Extension"); + return c.get(); +} +const m3_cfg_s& immediate_mdt_ext_ies_o::ext_c::m3_cfg() const +{ + assert_choice_type(types::m3_cfg, type_, "Extension"); + return c.get(); +} +const m4_cfg_s& immediate_mdt_ext_ies_o::ext_c::m4_cfg() const +{ + assert_choice_type(types::m4_cfg, type_, "Extension"); + return c.get(); +} +const m5_cfg_s& immediate_mdt_ext_ies_o::ext_c::m5_cfg() const +{ + assert_choice_type(types::m5_cfg, type_, "Extension"); + return c.get(); +} +const fixed_bitstring<8, false, true>& immediate_mdt_ext_ies_o::ext_c::mdt_location_info() const +{ + assert_choice_type(types::mdt_location_info, type_, "Extension"); + return c.get >(); +} +const m6_cfg_s& immediate_mdt_ext_ies_o::ext_c::m6_cfg() const +{ + assert_choice_type(types::m6_cfg, type_, "Extension"); + return c.get(); +} +const m7_cfg_s& immediate_mdt_ext_ies_o::ext_c::m7_cfg() const +{ + assert_choice_type(types::m7_cfg, type_, "Extension"); + return c.get(); +} +const bluetooth_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() const +{ + assert_choice_type(types::bluetooth_meas_cfg, type_, "Extension"); + return c.get(); +} +const wlan_meas_cfg_s& immediate_mdt_ext_ies_o::ext_c::wlan_meas_cfg() const +{ + assert_choice_type(types::wlan_meas_cfg, type_, "Extension"); + return c.get(); +} void immediate_mdt_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -27704,7 +27927,7 @@ SRSASN_CODE immediate_mdt_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string immediate_mdt_ext_ies_o::ext_c::types_opts::to_string() const +const char* immediate_mdt_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"M3Configuration", "M4Configuration", @@ -27792,26 +28015,6 @@ presence_e logged_mdt_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -bluetooth_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() -{ - assert_choice_type("BluetoothMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -wlan_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::wlan_meas_cfg() -{ - assert_choice_type("WLANMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -const bluetooth_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() const -{ - assert_choice_type("BluetoothMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} -const wlan_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::wlan_meas_cfg() const -{ - assert_choice_type("WLANMeasurementConfiguration", type_.to_string(), "Extension"); - return c.get(); -} void logged_mdt_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -27879,6 +28082,26 @@ logged_mdt_ext_ies_o::ext_c& logged_mdt_ext_ies_o::ext_c::operator=(const logged return *this; } +bluetooth_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() +{ + assert_choice_type(types::bluetooth_meas_cfg, type_, "Extension"); + return c.get(); +} +wlan_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::wlan_meas_cfg() +{ + assert_choice_type(types::wlan_meas_cfg, type_, "Extension"); + return c.get(); +} +const bluetooth_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::bluetooth_meas_cfg() const +{ + assert_choice_type(types::bluetooth_meas_cfg, type_, "Extension"); + return c.get(); +} +const wlan_meas_cfg_s& logged_mdt_ext_ies_o::ext_c::wlan_meas_cfg() const +{ + assert_choice_type(types::wlan_meas_cfg, type_, "Extension"); + return c.get(); +} void logged_mdt_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -27929,7 +28152,7 @@ SRSASN_CODE logged_mdt_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string logged_mdt_ext_ies_o::ext_c::types_opts::to_string() const +const char* logged_mdt_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"BluetoothMeasurementConfiguration", "WLANMeasurementConfiguration"}; return convert_enum_idx(options, 2, value, "logged_mdt_ext_ies_o::ext_c::types"); @@ -27975,7 +28198,7 @@ void m1_periodic_report_s::to_json(json_writer& j) const } // M1ReportingTrigger ::= ENUMERATED -std::string m1_report_trigger_opts::to_string() const +const char* m1_report_trigger_opts::to_string() const { static const char* options[] = {"periodic", "a2eventtriggered", "a2eventtriggered-periodic"}; return convert_enum_idx(options, 3, value, "m1_report_trigger_e"); @@ -28074,7 +28297,7 @@ SRSASN_CODE mdt_mode_ext_ie_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mdt_mode_ext_ie_o::value_c::types_opts::to_string() const +const char* mdt_mode_ext_ie_o::value_c::types_opts::to_string() const { static const char* options[] = {"LoggedMBSFNMDT"}; return convert_enum_idx(options, 1, value, "mdt_mode_ext_ie_o::value_c::types"); @@ -28404,14 +28627,14 @@ void logged_mdt_s::to_json(json_writer& j) const template struct asn1::s1ap::protocol_ie_single_container_s; // ServiceType ::= ENUMERATED -std::string service_type_opts::to_string() const +const char* service_type_opts::to_string() const { static const char* options[] = {"qMC-for-streaming-service", "qMC-for-MTSI-service"}; return convert_enum_idx(options, 2, value, "service_type_e"); } // MDT-Activation ::= ENUMERATED -std::string mdt_activation_opts::to_string() const +const char* mdt_activation_opts::to_string() const { static const char* options[] = { "immediate-MDT-only", "immediate-MDT-and-Trace", "logged-MDT-only", "logged-MBSFN-MDT"}; @@ -28477,7 +28700,7 @@ SRSASN_CODE mdt_cfg_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mdt_cfg_ext_ies_o::ext_c::types_opts::to_string() const +const char* mdt_cfg_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"MDTPLMNList"}; return convert_enum_idx(options, 1, value, "mdt_cfg_ext_ies_o::ext_c::types"); @@ -28563,6 +28786,21 @@ mdt_mode_c& mdt_mode_c::operator=(const mdt_mode_c& other) return *this; } +immediate_mdt_s& mdt_mode_c::set_immediate_mdt() +{ + set(types::immediate_mdt); + return c.get(); +} +logged_mdt_s& mdt_mode_c::set_logged_mdt() +{ + set(types::logged_mdt); + return c.get(); +} +protocol_ie_single_container_s& mdt_mode_c::set_mdt_mode_ext() +{ + set(types::mdt_mode_ext); + return c.get >(); +} void mdt_mode_c::to_json(json_writer& j) const { j.start_obj(); @@ -28627,7 +28865,7 @@ SRSASN_CODE mdt_mode_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mdt_mode_c::types_opts::to_string() const +const char* mdt_mode_c::types_opts::to_string() const { static const char* options[] = {"immediateMDT", "loggedMDT", "mDTMode-Extension"}; return convert_enum_idx(options, 3, value, "mdt_mode_c::types"); @@ -28688,7 +28926,7 @@ SRSASN_CODE ue_app_layer_meas_cfg_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_app_layer_meas_cfg_ext_ies_o::ext_c::types_opts::to_string() const +const char* ue_app_layer_meas_cfg_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"ServiceType"}; return convert_enum_idx(options, 1, value, "ue_app_layer_meas_cfg_ext_ies_o::ext_c::types"); @@ -28738,14 +28976,14 @@ void mdt_cfg_s::to_json(json_writer& j) const } // ProSeUEtoNetworkRelaying ::= ENUMERATED -std::string pro_se_ueto_network_relaying_opts::to_string() const +const char* pro_se_ueto_network_relaying_opts::to_string() const { static const char* options[] = {"authorized", "not-authorized"}; return convert_enum_idx(options, 2, value, "pro_se_ueto_network_relaying_e"); } // RequestTypeAdditionalInfo ::= ENUMERATED -std::string request_type_add_info_opts::to_string() const +const char* request_type_add_info_opts::to_string() const { static const char* options[] = {"includePSCell"}; return convert_enum_idx(options, 1, value, "request_type_add_info_e"); @@ -28791,14 +29029,14 @@ void ue_app_layer_meas_cfg_s::to_json(json_writer& j) const } // EventType ::= ENUMERATED -std::string event_type_opts::to_string() const +const char* event_type_opts::to_string() const { static const char* options[] = {"direct", "change-of-serve-cell", "stop-change-of-serve-cell"}; return convert_enum_idx(options, 3, value, "event_type_e"); } // PedestrianUE ::= ENUMERATED -std::string pedestrian_ue_opts::to_string() const +const char* pedestrian_ue_opts::to_string() const { static const char* options[] = {"authorized", "not-authorized"}; return convert_enum_idx(options, 2, value, "pedestrian_ue_e"); @@ -28859,7 +29097,7 @@ SRSASN_CODE pro_se_authorized_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pro_se_authorized_ext_ies_o::ext_c::types_opts::to_string() const +const char* pro_se_authorized_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"ProSeUEtoNetworkRelaying"}; return convert_enum_idx(options, 1, value, "pro_se_authorized_ext_ies_o::ext_c::types"); @@ -28871,21 +29109,21 @@ uint8_t pro_se_authorized_ext_ies_o::ext_c::types_opts::to_number() const } // ProSeDirectCommunication ::= ENUMERATED -std::string pro_se_direct_communication_opts::to_string() const +const char* pro_se_direct_communication_opts::to_string() const { static const char* options[] = {"authorized", "not-authorized"}; return convert_enum_idx(options, 2, value, "pro_se_direct_communication_e"); } // ProSeDirectDiscovery ::= ENUMERATED -std::string pro_se_direct_discovery_opts::to_string() const +const char* pro_se_direct_discovery_opts::to_string() const { static const char* options[] = {"authorized", "not-authorized"}; return convert_enum_idx(options, 2, value, "pro_se_direct_discovery_e"); } // ReportArea ::= ENUMERATED -std::string report_area_opts::to_string() const +const char* report_area_opts::to_string() const { static const char* options[] = {"ecgi"}; return convert_enum_idx(options, 1, value, "report_area_e"); @@ -28946,7 +29184,7 @@ SRSASN_CODE request_type_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string request_type_ext_ies_o::ext_c::types_opts::to_string() const +const char* request_type_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"RequestTypeAdditionalInfo"}; return convert_enum_idx(options, 1, value, "request_type_ext_ies_o::ext_c::types"); @@ -29009,26 +29247,6 @@ presence_e trace_activation_ext_ies_o::get_presence(const uint32_t& id) } // Extension ::= OPEN TYPE -mdt_cfg_s& trace_activation_ext_ies_o::ext_c::mdt_cfg() -{ - assert_choice_type("MDT-Configuration", type_.to_string(), "Extension"); - return c.get(); -} -ue_app_layer_meas_cfg_s& trace_activation_ext_ies_o::ext_c::ue_app_layer_meas_cfg() -{ - assert_choice_type("UEAppLayerMeasConfig", type_.to_string(), "Extension"); - return c.get(); -} -const mdt_cfg_s& trace_activation_ext_ies_o::ext_c::mdt_cfg() const -{ - assert_choice_type("MDT-Configuration", type_.to_string(), "Extension"); - return c.get(); -} -const ue_app_layer_meas_cfg_s& trace_activation_ext_ies_o::ext_c::ue_app_layer_meas_cfg() const -{ - assert_choice_type("UEAppLayerMeasConfig", type_.to_string(), "Extension"); - return c.get(); -} void trace_activation_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -29097,6 +29315,26 @@ trace_activation_ext_ies_o::ext_c::operator=(const trace_activation_ext_ies_o::e return *this; } +mdt_cfg_s& trace_activation_ext_ies_o::ext_c::mdt_cfg() +{ + assert_choice_type(types::mdt_cfg, type_, "Extension"); + return c.get(); +} +ue_app_layer_meas_cfg_s& trace_activation_ext_ies_o::ext_c::ue_app_layer_meas_cfg() +{ + assert_choice_type(types::ue_app_layer_meas_cfg, type_, "Extension"); + return c.get(); +} +const mdt_cfg_s& trace_activation_ext_ies_o::ext_c::mdt_cfg() const +{ + assert_choice_type(types::mdt_cfg, type_, "Extension"); + return c.get(); +} +const ue_app_layer_meas_cfg_s& trace_activation_ext_ies_o::ext_c::ue_app_layer_meas_cfg() const +{ + assert_choice_type(types::ue_app_layer_meas_cfg, type_, "Extension"); + return c.get(); +} void trace_activation_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -29147,14 +29385,14 @@ SRSASN_CODE trace_activation_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string trace_activation_ext_ies_o::ext_c::types_opts::to_string() const +const char* trace_activation_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"MDT-Configuration", "UEAppLayerMeasConfig"}; return convert_enum_idx(options, 2, value, "trace_activation_ext_ies_o::ext_c::types"); } // TraceDepth ::= ENUMERATED -std::string trace_depth_opts::to_string() const +const char* trace_depth_opts::to_string() const { static const char* options[] = {"minimum", "medium", @@ -29166,21 +29404,21 @@ std::string trace_depth_opts::to_string() const } // VehicleUE ::= ENUMERATED -std::string vehicle_ue_opts::to_string() const +const char* vehicle_ue_opts::to_string() const { static const char* options[] = {"authorized", "not-authorized"}; return convert_enum_idx(options, 2, value, "vehicle_ue_e"); } // AerialUEsubscriptionInformation ::= ENUMERATED -std::string aerial_uesubscription_info_opts::to_string() const +const char* aerial_uesubscription_info_opts::to_string() const { static const char* options[] = {"allowed", "not-allowed"}; return convert_enum_idx(options, 2, value, "aerial_uesubscription_info_e"); } // ManagementBasedMDTAllowed ::= ENUMERATED -std::string management_based_mdt_allowed_opts::to_string() const +const char* management_based_mdt_allowed_opts::to_string() const { static const char* options[] = {"allowed"}; return convert_enum_idx(options, 1, value, "management_based_mdt_allowed_e"); @@ -29504,7 +29742,7 @@ void ue_sidelink_aggregate_maximum_bitrate_s::to_json(json_writer& j) const } // UEUserPlaneCIoTSupportIndicator ::= ENUMERATED -std::string ueuser_plane_cio_tsupport_ind_opts::to_string() const +const char* ueuser_plane_cio_tsupport_ind_opts::to_string() const { static const char* options[] = {"supported"}; return convert_enum_idx(options, 1, value, "ueuser_plane_cio_tsupport_ind_e"); @@ -29834,328 +30072,6 @@ presence_e ho_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -handov_type_e& ho_request_ies_o::value_c::handov_type() -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_request_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& ho_request_ies_o::value_c::erab_to_be_setup_list_ho_req() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSetupItemHOReqIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -ho_restrict_list_s& ho_request_ies_o::value_c::ho_restrict_list() -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -trace_activation_s& ho_request_ies_o::value_c::trace_activation() -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -request_type_s& ho_request_ies_o::value_c::request_type() -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} -srvcc_operation_possible_e& ho_request_ies_o::value_c::srvcc_operation_possible() -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -security_context_s& ho_request_ies_o::value_c::security_context() -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_request_ies_o::value_c::nas_security_paramsto_e_utran() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<27, false, true>& ho_request_ies_o::value_c::csg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -csg_membership_status_e& ho_request_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -gummei_s& ho_request_ies_o::value_c::gummei_id() -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id_minus2() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -management_based_mdt_allowed_e& ho_request_ies_o::value_c::management_based_mdt_allowed() -{ - assert_choice_type("ManagementBasedMDTAllowed", type_.to_string(), "Value"); - return c.get(); -} -mdtplmn_list_l& ho_request_ies_o::value_c::management_based_mdtplmn_list() -{ - assert_choice_type("MDTPLMNList", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -expected_ue_behaviour_s& ho_request_ies_o::value_c::expected_ue_behaviour() -{ - assert_choice_type("ExpectedUEBehaviour", type_.to_string(), "Value"); - return c.get(); -} -pro_se_authorized_s& ho_request_ies_o::value_c::pro_se_authorized() -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ueuser_plane_cio_tsupport_ind_e& ho_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -v2xservices_authorized_s& ho_request_ies_o::value_c::v2xservices_authorized() -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ue_sidelink_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -enhanced_coverage_restricted_e& ho_request_ies_o::value_c::enhanced_coverage_restricted() -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -nrue_security_cap_s& ho_request_ies_o::value_c::nrue_security_cap() -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -ce_mode_brestricted_e& ho_request_ies_o::value_c::ce_mode_brestricted() -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -aerial_uesubscription_info_e& ho_request_ies_o::value_c::aerial_uesubscription_info() -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -pending_data_ind_e& ho_request_ies_o::value_c::pending_data_ind() -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -subscription_based_ue_differentiation_info_s& ho_request_ies_o::value_c::subscription_based_ue_differentiation_info() -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<32, false, true>& ho_request_ies_o::value_c::add_rrm_prio_idx() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const handov_type_e& ho_request_ies_o::value_c::handov_type() const -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_request_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -ho_request_ies_o::value_c::erab_to_be_setup_list_ho_req() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSetupItemHOReqIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const ho_restrict_list_s& ho_request_ies_o::value_c::ho_restrict_list() const -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -const trace_activation_s& ho_request_ies_o::value_c::trace_activation() const -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -const request_type_s& ho_request_ies_o::value_c::request_type() const -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} -const srvcc_operation_possible_e& ho_request_ies_o::value_c::srvcc_operation_possible() const -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -const security_context_s& ho_request_ies_o::value_c::security_context() const -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_request_ies_o::value_c::nas_security_paramsto_e_utran() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<27, false, true>& ho_request_ies_o::value_c::csg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const csg_membership_status_e& ho_request_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const gummei_s& ho_request_ies_o::value_c::gummei_id() const -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id_minus2() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const management_based_mdt_allowed_e& ho_request_ies_o::value_c::management_based_mdt_allowed() const -{ - assert_choice_type("ManagementBasedMDTAllowed", type_.to_string(), "Value"); - return c.get(); -} -const mdtplmn_list_l& ho_request_ies_o::value_c::management_based_mdtplmn_list() const -{ - assert_choice_type("MDTPLMNList", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const expected_ue_behaviour_s& ho_request_ies_o::value_c::expected_ue_behaviour() const -{ - assert_choice_type("ExpectedUEBehaviour", type_.to_string(), "Value"); - return c.get(); -} -const pro_se_authorized_s& ho_request_ies_o::value_c::pro_se_authorized() const -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ueuser_plane_cio_tsupport_ind_e& ho_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -const v2xservices_authorized_s& ho_request_ies_o::value_c::v2xservices_authorized() const -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ue_sidelink_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const enhanced_coverage_restricted_e& ho_request_ies_o::value_c::enhanced_coverage_restricted() const -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -const nrue_security_cap_s& ho_request_ies_o::value_c::nrue_security_cap() const -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const ce_mode_brestricted_e& ho_request_ies_o::value_c::ce_mode_brestricted() const -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -const aerial_uesubscription_info_e& ho_request_ies_o::value_c::aerial_uesubscription_info() const -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -const pending_data_ind_e& ho_request_ies_o::value_c::pending_data_ind() const -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -const subscription_based_ue_differentiation_info_s& -ho_request_ies_o::value_c::subscription_based_ue_differentiation_info() const -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<32, false, true>& ho_request_ies_o::value_c::add_rrm_prio_idx() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} void ho_request_ies_o::value_c::destroy_() { switch (type_) { @@ -30539,6 +30455,328 @@ ho_request_ies_o::value_c& ho_request_ies_o::value_c::operator=(const ho_request return *this; } +uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_request_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +cause_c& ho_request_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& ho_request_ies_o::value_c::erab_to_be_setup_list_ho_req() +{ + assert_choice_type(types::erab_to_be_setup_list_ho_req, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +ho_restrict_list_s& ho_request_ies_o::value_c::ho_restrict_list() +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +trace_activation_s& ho_request_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +request_type_s& ho_request_ies_o::value_c::request_type() +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} +srvcc_operation_possible_e& ho_request_ies_o::value_c::srvcc_operation_possible() +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +security_context_s& ho_request_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_request_ies_o::value_c::nas_security_paramsto_e_utran() +{ + assert_choice_type(types::nas_security_paramsto_e_utran, type_, "Value"); + return c.get >(); +} +fixed_bitstring<27, false, true>& ho_request_ies_o::value_c::csg_id() +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +csg_membership_status_e& ho_request_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +gummei_s& ho_request_ies_o::value_c::gummei_id() +{ + assert_choice_type(types::gummei_id, type_, "Value"); + return c.get(); +} +uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id_minus2() +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +management_based_mdt_allowed_e& ho_request_ies_o::value_c::management_based_mdt_allowed() +{ + assert_choice_type(types::management_based_mdt_allowed, type_, "Value"); + return c.get(); +} +mdtplmn_list_l& ho_request_ies_o::value_c::management_based_mdtplmn_list() +{ + assert_choice_type(types::management_based_mdtplmn_list, type_, "Value"); + return c.get(); +} +fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +expected_ue_behaviour_s& ho_request_ies_o::value_c::expected_ue_behaviour() +{ + assert_choice_type(types::expected_ue_behaviour, type_, "Value"); + return c.get(); +} +pro_se_authorized_s& ho_request_ies_o::value_c::pro_se_authorized() +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +ueuser_plane_cio_tsupport_ind_e& ho_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +v2xservices_authorized_s& ho_request_ies_o::value_c::v2xservices_authorized() +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +ue_sidelink_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +enhanced_coverage_restricted_e& ho_request_ies_o::value_c::enhanced_coverage_restricted() +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +nrue_security_cap_s& ho_request_ies_o::value_c::nrue_security_cap() +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +ce_mode_brestricted_e& ho_request_ies_o::value_c::ce_mode_brestricted() +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +aerial_uesubscription_info_e& ho_request_ies_o::value_c::aerial_uesubscription_info() +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +pending_data_ind_e& ho_request_ies_o::value_c::pending_data_ind() +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +subscription_based_ue_differentiation_info_s& ho_request_ies_o::value_c::subscription_based_ue_differentiation_info() +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +fixed_bitstring<32, false, true>& ho_request_ies_o::value_c::add_rrm_prio_idx() +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} +const uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_request_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const cause_c& ho_request_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +ho_request_ies_o::value_c::erab_to_be_setup_list_ho_req() const +{ + assert_choice_type(types::erab_to_be_setup_list_ho_req, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_request_ies_o::value_c::source_to_target_transparent_container() const +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +const ue_security_cap_s& ho_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const ho_restrict_list_s& ho_request_ies_o::value_c::ho_restrict_list() const +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +const trace_activation_s& ho_request_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const request_type_s& ho_request_ies_o::value_c::request_type() const +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} +const srvcc_operation_possible_e& ho_request_ies_o::value_c::srvcc_operation_possible() const +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +const security_context_s& ho_request_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_request_ies_o::value_c::nas_security_paramsto_e_utran() const +{ + assert_choice_type(types::nas_security_paramsto_e_utran, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<27, false, true>& ho_request_ies_o::value_c::csg_id() const +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +const csg_membership_status_e& ho_request_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const gummei_s& ho_request_ies_o::value_c::gummei_id() const +{ + assert_choice_type(types::gummei_id, type_, "Value"); + return c.get(); +} +const uint64_t& ho_request_ies_o::value_c::mme_ue_s1ap_id_minus2() const +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +const management_based_mdt_allowed_e& ho_request_ies_o::value_c::management_based_mdt_allowed() const +{ + assert_choice_type(types::management_based_mdt_allowed, type_, "Value"); + return c.get(); +} +const mdtplmn_list_l& ho_request_ies_o::value_c::management_based_mdtplmn_list() const +{ + assert_choice_type(types::management_based_mdtplmn_list, type_, "Value"); + return c.get(); +} +const fixed_bitstring<64, false, true>& ho_request_ies_o::value_c::masked_imeisv() const +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +const expected_ue_behaviour_s& ho_request_ies_o::value_c::expected_ue_behaviour() const +{ + assert_choice_type(types::expected_ue_behaviour, type_, "Value"); + return c.get(); +} +const pro_se_authorized_s& ho_request_ies_o::value_c::pro_se_authorized() const +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +const ueuser_plane_cio_tsupport_ind_e& ho_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +const v2xservices_authorized_s& ho_request_ies_o::value_c::v2xservices_authorized() const +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +const ue_sidelink_aggregate_maximum_bitrate_s& ho_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const enhanced_coverage_restricted_e& ho_request_ies_o::value_c::enhanced_coverage_restricted() const +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +const nrue_security_cap_s& ho_request_ies_o::value_c::nrue_security_cap() const +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +const ce_mode_brestricted_e& ho_request_ies_o::value_c::ce_mode_brestricted() const +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +const aerial_uesubscription_info_e& ho_request_ies_o::value_c::aerial_uesubscription_info() const +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +const pending_data_ind_e& ho_request_ies_o::value_c::pending_data_ind() const +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +const subscription_based_ue_differentiation_info_s& +ho_request_ies_o::value_c::subscription_based_ue_differentiation_info() const +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +const fixed_bitstring<32, false, true>& ho_request_ies_o::value_c::add_rrm_prio_idx() const +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} void ho_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -30877,7 +31115,7 @@ SRSASN_CODE ho_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_request_ies_o::value_c::types_opts::to_string() const +const char* ho_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "HandoverType", @@ -31419,7 +31657,7 @@ void ho_request_s::to_json(json_writer& j) const } // CE-mode-B-SupportIndicator ::= ENUMERATED -std::string ce_mode_b_support_ind_opts::to_string() const +const char* ce_mode_b_support_ind_opts::to_string() const { static const char* options[] = {"supported"}; return convert_enum_idx(options, 1, value, "ce_mode_b_support_ind_e"); @@ -31531,98 +31769,6 @@ presence_e ho_request_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_request_ack_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_request_ack_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& ho_request_ack_ies_o::value_c::erab_admitted_list() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABAdmittedItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -erab_ie_container_list_l& -ho_request_ack_ies_o::value_c::erab_failed_to_setup_list_ho_req_ack() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedtoSetupItemHOReqAckIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<27, false, true>& ho_request_ack_ies_o::value_c::csg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -cell_access_mode_e& ho_request_ack_ies_o::value_c::cell_access_mode() -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -ce_mode_b_support_ind_e& ho_request_ack_ies_o::value_c::ce_mode_b_support_ind() -{ - assert_choice_type("CE-mode-B-SupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_request_ack_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_request_ack_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& ho_request_ack_ies_o::value_c::erab_admitted_list() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABAdmittedItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const erab_ie_container_list_l& -ho_request_ack_ies_o::value_c::erab_failed_to_setup_list_ho_req_ack() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedtoSetupItemHOReqAckIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<27, false, true>& ho_request_ack_ies_o::value_c::csg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cell_access_mode_e& ho_request_ack_ies_o::value_c::cell_access_mode() const -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -const ce_mode_b_support_ind_e& ho_request_ack_ies_o::value_c::ce_mode_b_support_ind() const -{ - assert_choice_type("CE-mode-B-SupportIndicator", type_.to_string(), "Value"); - return c.get(); -} void ho_request_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -31758,6 +31904,98 @@ ho_request_ack_ies_o::value_c& ho_request_ack_ies_o::value_c::operator=(const ho return *this; } +uint64_t& ho_request_ack_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_request_ack_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& ho_request_ack_ies_o::value_c::erab_admitted_list() +{ + assert_choice_type(types::erab_admitted_list, type_, "Value"); + return c.get >(); +} +erab_ie_container_list_l& +ho_request_ack_ies_o::value_c::erab_failed_to_setup_list_ho_req_ack() +{ + assert_choice_type(types::erab_failed_to_setup_list_ho_req_ack, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +fixed_bitstring<27, false, true>& ho_request_ack_ies_o::value_c::csg_id() +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +cell_access_mode_e& ho_request_ack_ies_o::value_c::cell_access_mode() +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +ce_mode_b_support_ind_e& ho_request_ack_ies_o::value_c::ce_mode_b_support_ind() +{ + assert_choice_type(types::ce_mode_b_support_ind, type_, "Value"); + return c.get(); +} +const uint64_t& ho_request_ack_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_request_ack_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& ho_request_ack_ies_o::value_c::erab_admitted_list() const +{ + assert_choice_type(types::erab_admitted_list, type_, "Value"); + return c.get >(); +} +const erab_ie_container_list_l& +ho_request_ack_ies_o::value_c::erab_failed_to_setup_list_ho_req_ack() const +{ + assert_choice_type(types::erab_failed_to_setup_list_ho_req_ack, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_request_ack_ies_o::value_c::target_to_source_transparent_container() const +{ + assert_choice_type(types::target_to_source_transparent_container, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<27, false, true>& ho_request_ack_ies_o::value_c::csg_id() const +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +const crit_diagnostics_s& ho_request_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cell_access_mode_e& ho_request_ack_ies_o::value_c::cell_access_mode() const +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +const ce_mode_b_support_ind_e& ho_request_ack_ies_o::value_c::ce_mode_b_support_ind() const +{ + assert_choice_type(types::ce_mode_b_support_ind, type_, "Value"); + return c.get(); +} void ho_request_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -31872,7 +32110,7 @@ SRSASN_CODE ho_request_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_request_ack_ies_o::value_c::types_opts::to_string() const +const char* ho_request_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -32107,21 +32345,21 @@ void target_ng_ran_node_id_s::to_json(json_writer& j) const } // Direct-Forwarding-Path-Availability ::= ENUMERATED -std::string direct_forwarding_path_availability_opts::to_string() const +const char* direct_forwarding_path_availability_opts::to_string() const { static const char* options[] = {"directPathAvailable"}; return convert_enum_idx(options, 1, value, "direct_forwarding_path_availability_e"); } // PS-ServiceNotAvailable ::= ENUMERATED -std::string ps_service_not_available_opts::to_string() const +const char* ps_service_not_available_opts::to_string() const { static const char* options[] = {"ps-service-not-available"}; return convert_enum_idx(options, 1, value, "ps_service_not_available_e"); } // SRVCCHOIndication ::= ENUMERATED -std::string srvccho_ind_opts::to_string() const +const char* srvccho_ind_opts::to_string() const { static const char* options[] = {"pSandCS", "cSonly"}; return convert_enum_idx(options, 2, value, "srvccho_ind_e"); @@ -32219,6 +32457,26 @@ target_id_c& target_id_c::operator=(const target_id_c& other) return *this; } +targetenb_id_s& target_id_c::set_targetenb_id() +{ + set(types::targetenb_id); + return c.get(); +} +target_rnc_id_s& target_id_c::set_target_rnc_id() +{ + set(types::target_rnc_id); + return c.get(); +} +cgi_s& target_id_c::set_cgi() +{ + set(types::cgi); + return c.get(); +} +target_ng_ran_node_id_s& target_id_c::set_targetg_ng_ran_node_id() +{ + set(types::targetg_ng_ran_node_id); + return c.get(); +} void target_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -32293,7 +32551,7 @@ SRSASN_CODE target_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string target_id_c::types_opts::to_string() const +const char* target_id_c::types_opts::to_string() const { static const char* options[] = {"targeteNB-ID", "targetRNC-ID", "cGI", "targetgNgRanNode-ID"}; return convert_enum_idx(options, 4, value, "target_id_c::types"); @@ -32440,146 +32698,6 @@ presence_e ho_required_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ho_required_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ho_required_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -handov_type_e& ho_required_ies_o::value_c::handov_type() -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ho_required_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -target_id_c& ho_required_ies_o::value_c::target_id() -{ - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); -} -direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() -{ - assert_choice_type("Direct-Forwarding-Path-Availability", type_.to_string(), "Value"); - return c.get(); -} -srvccho_ind_e& ho_required_ies_o::value_c::srvccho_ind() -{ - assert_choice_type("SRVCCHOIndication", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container_secondary() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_required_ies_o::value_c::ms_classmark2() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ho_required_ies_o::value_c::ms_classmark3() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<27, false, true>& ho_required_ies_o::value_c::csg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -cell_access_mode_e& ho_required_ies_o::value_c::cell_access_mode() -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -ps_service_not_available_e& ho_required_ies_o::value_c::ps_service_not_available() -{ - assert_choice_type("PS-ServiceNotAvailable", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ho_required_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ho_required_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const handov_type_e& ho_required_ies_o::value_c::handov_type() const -{ - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ho_required_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const target_id_c& ho_required_ies_o::value_c::target_id() const -{ - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); -} -const direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() const -{ - assert_choice_type("Direct-Forwarding-Path-Availability", type_.to_string(), "Value"); - return c.get(); -} -const srvccho_ind_e& ho_required_ies_o::value_c::srvccho_ind() const -{ - assert_choice_type("SRVCCHOIndication", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container_secondary() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_required_ies_o::value_c::ms_classmark2() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ho_required_ies_o::value_c::ms_classmark3() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<27, false, true>& ho_required_ies_o::value_c::csg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cell_access_mode_e& ho_required_ies_o::value_c::cell_access_mode() const -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -const ps_service_not_available_e& ho_required_ies_o::value_c::ps_service_not_available() const -{ - assert_choice_type("PS-ServiceNotAvailable", type_.to_string(), "Value"); - return c.get(); -} void ho_required_ies_o::value_c::destroy_() { switch (type_) { @@ -32763,6 +32881,146 @@ ho_required_ies_o::value_c& ho_required_ies_o::value_c::operator=(const ho_requi return *this; } +uint64_t& ho_required_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ho_required_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +handov_type_e& ho_required_ies_o::value_c::handov_type() +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +cause_c& ho_required_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +target_id_c& ho_required_ies_o::value_c::target_id() +{ + assert_choice_type(types::target_id, type_, "Value"); + return c.get(); +} +direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() +{ + assert_choice_type(types::direct_forwarding_path_availability, type_, "Value"); + return c.get(); +} +srvccho_ind_e& ho_required_ies_o::value_c::srvccho_ind() +{ + assert_choice_type(types::srvccho_ind, type_, "Value"); + return c.get(); +} +unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container_secondary() +{ + assert_choice_type(types::source_to_target_transparent_container_secondary, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_required_ies_o::value_c::ms_classmark2() +{ + assert_choice_type(types::ms_classmark2, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ho_required_ies_o::value_c::ms_classmark3() +{ + assert_choice_type(types::ms_classmark3, type_, "Value"); + return c.get >(); +} +fixed_bitstring<27, false, true>& ho_required_ies_o::value_c::csg_id() +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +cell_access_mode_e& ho_required_ies_o::value_c::cell_access_mode() +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +ps_service_not_available_e& ho_required_ies_o::value_c::ps_service_not_available() +{ + assert_choice_type(types::ps_service_not_available, type_, "Value"); + return c.get(); +} +const uint64_t& ho_required_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ho_required_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const handov_type_e& ho_required_ies_o::value_c::handov_type() const +{ + assert_choice_type(types::handov_type, type_, "Value"); + return c.get(); +} +const cause_c& ho_required_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const target_id_c& ho_required_ies_o::value_c::target_id() const +{ + assert_choice_type(types::target_id, type_, "Value"); + return c.get(); +} +const direct_forwarding_path_availability_e& ho_required_ies_o::value_c::direct_forwarding_path_availability() const +{ + assert_choice_type(types::direct_forwarding_path_availability, type_, "Value"); + return c.get(); +} +const srvccho_ind_e& ho_required_ies_o::value_c::srvccho_ind() const +{ + assert_choice_type(types::srvccho_ind, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container() const +{ + assert_choice_type(types::source_to_target_transparent_container, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_required_ies_o::value_c::source_to_target_transparent_container_secondary() const +{ + assert_choice_type(types::source_to_target_transparent_container_secondary, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_required_ies_o::value_c::ms_classmark2() const +{ + assert_choice_type(types::ms_classmark2, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ho_required_ies_o::value_c::ms_classmark3() const +{ + assert_choice_type(types::ms_classmark3, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<27, false, true>& ho_required_ies_o::value_c::csg_id() const +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +const cell_access_mode_e& ho_required_ies_o::value_c::cell_access_mode() const +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +const ps_service_not_available_e& ho_required_ies_o::value_c::ps_service_not_available() const +{ + assert_choice_type(types::ps_service_not_available, type_, "Value"); + return c.get(); +} void ho_required_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -32921,7 +33179,7 @@ SRSASN_CODE ho_required_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ho_required_ies_o::value_c::types_opts::to_string() const +const char* ho_required_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -33253,6 +33511,16 @@ mme_paging_target_c& mme_paging_target_c::operator=(const mme_paging_target_c& o return *this; } +global_enb_id_s& mme_paging_target_c::set_global_enb_id() +{ + set(types::global_enb_id); + return c.get(); +} +tai_s& mme_paging_target_c::set_tai() +{ + set(types::tai); + return c.get(); +} void mme_paging_target_c::to_json(json_writer& j) const { j.start_obj(); @@ -33305,7 +33573,7 @@ SRSASN_CODE mme_paging_target_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_paging_target_c::types_opts::to_string() const +const char* mme_paging_target_c::types_opts::to_string() const { static const char* options[] = {"global-ENB-ID", "tAI"}; return convert_enum_idx(options, 2, value, "mme_paging_target_c::types"); @@ -33404,7 +33672,7 @@ SRSASN_CODE recommended_enb_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string recommended_enb_item_ies_o::value_c::types_opts::to_string() const +const char* recommended_enb_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"RecommendedENBItem"}; return convert_enum_idx(options, 1, value, "recommended_enb_item_ies_o::value_c::types"); @@ -33564,46 +33832,6 @@ presence_e init_context_setup_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& init_context_setup_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& init_context_setup_fail_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& init_context_setup_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& init_context_setup_fail_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& init_context_setup_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void init_context_setup_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -33688,6 +33916,46 @@ init_context_setup_fail_ies_o::value_c::operator=(const init_context_setup_fail_ return *this; } +uint64_t& init_context_setup_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& init_context_setup_fail_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& init_context_setup_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& init_context_setup_fail_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& init_context_setup_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& init_context_setup_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void init_context_setup_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -33756,7 +34024,7 @@ SRSASN_CODE init_context_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string init_context_setup_fail_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics"}; @@ -33873,14 +34141,14 @@ void init_context_setup_fail_s::to_json(json_writer& j) const } // AdditionalCSFallbackIndicator ::= ENUMERATED -std::string add_cs_fallback_ind_opts::to_string() const +const char* add_cs_fallback_ind_opts::to_string() const { static const char* options[] = {"no-restriction", "restriction"}; return convert_enum_idx(options, 2, value, "add_cs_fallback_ind_e"); } // CSFallbackIndicator ::= ENUMERATED -std::string cs_fallback_ind_opts::to_string() const +const char* cs_fallback_ind_opts::to_string() const { static const char* options[] = {"cs-fallback-required", "cs-fallback-high-priority"}; return convert_enum_idx(options, 2, value, "cs_fallback_ind_e"); @@ -34155,331 +34423,6 @@ presence_e init_context_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& init_context_setup_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& init_context_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_to_be_setup_list_ctxt_su_req_l& init_context_setup_request_ies_o::value_c::erab_to_be_setup_list_ctxt_su_req() -{ - assert_choice_type("E-RABToBeSetupListCtxtSUReq", type_.to_string(), "Value"); - return c.get(); -} -ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -ho_restrict_list_s& init_context_setup_request_ies_o::value_c::ho_restrict_list() -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -uint16_t& init_context_setup_request_ies_o::value_c::subscriber_profile_idfor_rfp() -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::cs_fallback_ind() -{ - assert_choice_type("CSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -srvcc_operation_possible_e& init_context_setup_request_ies_o::value_c::srvcc_operation_possible() -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& init_context_setup_request_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -lai_s& init_context_setup_request_ies_o::value_c::registered_lai() -{ - assert_choice_type("LAI", type_.to_string(), "Value"); - return c.get(); -} -gummei_s& init_context_setup_request_ies_o::value_c::gummei_id() -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id_minus2() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -management_based_mdt_allowed_e& init_context_setup_request_ies_o::value_c::management_based_mdt_allowed() -{ - assert_choice_type("ManagementBasedMDTAllowed", type_.to_string(), "Value"); - return c.get(); -} -mdtplmn_list_l& init_context_setup_request_ies_o::value_c::management_based_mdtplmn_list() -{ - assert_choice_type("MDTPLMNList", type_.to_string(), "Value"); - return c.get(); -} -add_cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::add_cs_fallback_ind() -{ - assert_choice_type("AdditionalCSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -expected_ue_behaviour_s& init_context_setup_request_ies_o::value_c::expected_ue_behaviour() -{ - assert_choice_type("ExpectedUEBehaviour", type_.to_string(), "Value"); - return c.get(); -} -pro_se_authorized_s& init_context_setup_request_ies_o::value_c::pro_se_authorized() -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ueuser_plane_cio_tsupport_ind_e& init_context_setup_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -v2xservices_authorized_s& init_context_setup_request_ies_o::value_c::v2xservices_authorized() -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ue_sidelink_aggregate_maximum_bitrate_s& -init_context_setup_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -enhanced_coverage_restricted_e& init_context_setup_request_ies_o::value_c::enhanced_coverage_restricted() -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -nrue_security_cap_s& init_context_setup_request_ies_o::value_c::nrue_security_cap() -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -ce_mode_brestricted_e& init_context_setup_request_ies_o::value_c::ce_mode_brestricted() -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -aerial_uesubscription_info_e& init_context_setup_request_ies_o::value_c::aerial_uesubscription_info() -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -pending_data_ind_e& init_context_setup_request_ies_o::value_c::pending_data_ind() -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -subscription_based_ue_differentiation_info_s& -init_context_setup_request_ies_o::value_c::subscription_based_ue_differentiation_info() -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<32, false, true>& init_context_setup_request_ies_o::value_c::add_rrm_prio_idx() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& init_context_setup_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& init_context_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_to_be_setup_list_ctxt_su_req_l& -init_context_setup_request_ies_o::value_c::erab_to_be_setup_list_ctxt_su_req() const -{ - assert_choice_type("E-RABToBeSetupListCtxtSUReq", type_.to_string(), "Value"); - return c.get(); -} -const ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() const -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -const ho_restrict_list_s& init_context_setup_request_ies_o::value_c::ho_restrict_list() const -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& init_context_setup_request_ies_o::value_c::subscriber_profile_idfor_rfp() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::cs_fallback_ind() const -{ - assert_choice_type("CSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -const srvcc_operation_possible_e& init_context_setup_request_ies_o::value_c::srvcc_operation_possible() const -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& init_context_setup_request_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const lai_s& init_context_setup_request_ies_o::value_c::registered_lai() const -{ - assert_choice_type("LAI", type_.to_string(), "Value"); - return c.get(); -} -const gummei_s& init_context_setup_request_ies_o::value_c::gummei_id() const -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id_minus2() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const management_based_mdt_allowed_e& init_context_setup_request_ies_o::value_c::management_based_mdt_allowed() const -{ - assert_choice_type("ManagementBasedMDTAllowed", type_.to_string(), "Value"); - return c.get(); -} -const mdtplmn_list_l& init_context_setup_request_ies_o::value_c::management_based_mdtplmn_list() const -{ - assert_choice_type("MDTPLMNList", type_.to_string(), "Value"); - return c.get(); -} -const add_cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::add_cs_fallback_ind() const -{ - assert_choice_type("AdditionalCSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const expected_ue_behaviour_s& init_context_setup_request_ies_o::value_c::expected_ue_behaviour() const -{ - assert_choice_type("ExpectedUEBehaviour", type_.to_string(), "Value"); - return c.get(); -} -const pro_se_authorized_s& init_context_setup_request_ies_o::value_c::pro_se_authorized() const -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ueuser_plane_cio_tsupport_ind_e& init_context_setup_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -const v2xservices_authorized_s& init_context_setup_request_ies_o::value_c::v2xservices_authorized() const -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ue_sidelink_aggregate_maximum_bitrate_s& -init_context_setup_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const enhanced_coverage_restricted_e& init_context_setup_request_ies_o::value_c::enhanced_coverage_restricted() const -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -const nrue_security_cap_s& init_context_setup_request_ies_o::value_c::nrue_security_cap() const -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const ce_mode_brestricted_e& init_context_setup_request_ies_o::value_c::ce_mode_brestricted() const -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -const aerial_uesubscription_info_e& init_context_setup_request_ies_o::value_c::aerial_uesubscription_info() const -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -const pending_data_ind_e& init_context_setup_request_ies_o::value_c::pending_data_ind() const -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -const subscription_based_ue_differentiation_info_s& -init_context_setup_request_ies_o::value_c::subscription_based_ue_differentiation_info() const -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<32, false, true>& init_context_setup_request_ies_o::value_c::add_rrm_prio_idx() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} void init_context_setup_request_ies_o::value_c::destroy_() { switch (type_) { @@ -34852,6 +34795,331 @@ init_context_setup_request_ies_o::value_c::operator=(const init_context_setup_re return *this; } +uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& init_context_setup_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& init_context_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_to_be_setup_list_ctxt_su_req_l& init_context_setup_request_ies_o::value_c::erab_to_be_setup_list_ctxt_su_req() +{ + assert_choice_type(types::erab_to_be_setup_list_ctxt_su_req, type_, "Value"); + return c.get(); +} +ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +ho_restrict_list_s& init_context_setup_request_ies_o::value_c::ho_restrict_list() +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +uint16_t& init_context_setup_request_ies_o::value_c::subscriber_profile_idfor_rfp() +{ + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); + return c.get(); +} +cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::cs_fallback_ind() +{ + assert_choice_type(types::cs_fallback_ind, type_, "Value"); + return c.get(); +} +srvcc_operation_possible_e& init_context_setup_request_ies_o::value_c::srvcc_operation_possible() +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +csg_membership_status_e& init_context_setup_request_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +lai_s& init_context_setup_request_ies_o::value_c::registered_lai() +{ + assert_choice_type(types::registered_lai, type_, "Value"); + return c.get(); +} +gummei_s& init_context_setup_request_ies_o::value_c::gummei_id() +{ + assert_choice_type(types::gummei_id, type_, "Value"); + return c.get(); +} +uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id_minus2() +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +management_based_mdt_allowed_e& init_context_setup_request_ies_o::value_c::management_based_mdt_allowed() +{ + assert_choice_type(types::management_based_mdt_allowed, type_, "Value"); + return c.get(); +} +mdtplmn_list_l& init_context_setup_request_ies_o::value_c::management_based_mdtplmn_list() +{ + assert_choice_type(types::management_based_mdtplmn_list, type_, "Value"); + return c.get(); +} +add_cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::add_cs_fallback_ind() +{ + assert_choice_type(types::add_cs_fallback_ind, type_, "Value"); + return c.get(); +} +fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +expected_ue_behaviour_s& init_context_setup_request_ies_o::value_c::expected_ue_behaviour() +{ + assert_choice_type(types::expected_ue_behaviour, type_, "Value"); + return c.get(); +} +pro_se_authorized_s& init_context_setup_request_ies_o::value_c::pro_se_authorized() +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +ueuser_plane_cio_tsupport_ind_e& init_context_setup_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +v2xservices_authorized_s& init_context_setup_request_ies_o::value_c::v2xservices_authorized() +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +ue_sidelink_aggregate_maximum_bitrate_s& +init_context_setup_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +enhanced_coverage_restricted_e& init_context_setup_request_ies_o::value_c::enhanced_coverage_restricted() +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +nrue_security_cap_s& init_context_setup_request_ies_o::value_c::nrue_security_cap() +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +ce_mode_brestricted_e& init_context_setup_request_ies_o::value_c::ce_mode_brestricted() +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +aerial_uesubscription_info_e& init_context_setup_request_ies_o::value_c::aerial_uesubscription_info() +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +pending_data_ind_e& init_context_setup_request_ies_o::value_c::pending_data_ind() +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +subscription_based_ue_differentiation_info_s& +init_context_setup_request_ies_o::value_c::subscription_based_ue_differentiation_info() +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +fixed_bitstring<32, false, true>& init_context_setup_request_ies_o::value_c::add_rrm_prio_idx() +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} +const uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& init_context_setup_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& init_context_setup_request_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_to_be_setup_list_ctxt_su_req_l& +init_context_setup_request_ies_o::value_c::erab_to_be_setup_list_ctxt_su_req() const +{ + assert_choice_type(types::erab_to_be_setup_list_ctxt_su_req, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& init_context_setup_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const fixed_bitstring<256, false, true>& init_context_setup_request_ies_o::value_c::security_key() const +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +const trace_activation_s& init_context_setup_request_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const ho_restrict_list_s& init_context_setup_request_ies_o::value_c::ho_restrict_list() const +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +const unbounded_octstring& init_context_setup_request_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const uint16_t& init_context_setup_request_ies_o::value_c::subscriber_profile_idfor_rfp() const +{ + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); + return c.get(); +} +const cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::cs_fallback_ind() const +{ + assert_choice_type(types::cs_fallback_ind, type_, "Value"); + return c.get(); +} +const srvcc_operation_possible_e& init_context_setup_request_ies_o::value_c::srvcc_operation_possible() const +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& init_context_setup_request_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const lai_s& init_context_setup_request_ies_o::value_c::registered_lai() const +{ + assert_choice_type(types::registered_lai, type_, "Value"); + return c.get(); +} +const gummei_s& init_context_setup_request_ies_o::value_c::gummei_id() const +{ + assert_choice_type(types::gummei_id, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_request_ies_o::value_c::mme_ue_s1ap_id_minus2() const +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +const management_based_mdt_allowed_e& init_context_setup_request_ies_o::value_c::management_based_mdt_allowed() const +{ + assert_choice_type(types::management_based_mdt_allowed, type_, "Value"); + return c.get(); +} +const mdtplmn_list_l& init_context_setup_request_ies_o::value_c::management_based_mdtplmn_list() const +{ + assert_choice_type(types::management_based_mdtplmn_list, type_, "Value"); + return c.get(); +} +const add_cs_fallback_ind_e& init_context_setup_request_ies_o::value_c::add_cs_fallback_ind() const +{ + assert_choice_type(types::add_cs_fallback_ind, type_, "Value"); + return c.get(); +} +const fixed_bitstring<64, false, true>& init_context_setup_request_ies_o::value_c::masked_imeisv() const +{ + assert_choice_type(types::masked_imeisv, type_, "Value"); + return c.get >(); +} +const expected_ue_behaviour_s& init_context_setup_request_ies_o::value_c::expected_ue_behaviour() const +{ + assert_choice_type(types::expected_ue_behaviour, type_, "Value"); + return c.get(); +} +const pro_se_authorized_s& init_context_setup_request_ies_o::value_c::pro_se_authorized() const +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +const ueuser_plane_cio_tsupport_ind_e& init_context_setup_request_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +const v2xservices_authorized_s& init_context_setup_request_ies_o::value_c::v2xservices_authorized() const +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +const ue_sidelink_aggregate_maximum_bitrate_s& +init_context_setup_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const enhanced_coverage_restricted_e& init_context_setup_request_ies_o::value_c::enhanced_coverage_restricted() const +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +const nrue_security_cap_s& init_context_setup_request_ies_o::value_c::nrue_security_cap() const +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +const ce_mode_brestricted_e& init_context_setup_request_ies_o::value_c::ce_mode_brestricted() const +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +const aerial_uesubscription_info_e& init_context_setup_request_ies_o::value_c::aerial_uesubscription_info() const +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +const pending_data_ind_e& init_context_setup_request_ies_o::value_c::pending_data_ind() const +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +const subscription_based_ue_differentiation_info_s& +init_context_setup_request_ies_o::value_c::subscription_based_ue_differentiation_info() const +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +const fixed_bitstring<32, false, true>& init_context_setup_request_ies_o::value_c::add_rrm_prio_idx() const +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} void init_context_setup_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -35190,7 +35458,7 @@ SRSASN_CODE init_context_setup_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string init_context_setup_request_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -35819,56 +36087,6 @@ presence_e init_context_setup_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& init_context_setup_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& init_context_setup_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_setup_list_ctxt_su_res_l& init_context_setup_resp_ies_o::value_c::erab_setup_list_ctxt_su_res() -{ - assert_choice_type("E-RABSetupListCtxtSURes", type_.to_string(), "Value"); - return c.get(); -} -erab_list_l& init_context_setup_resp_ies_o::value_c::erab_failed_to_setup_list_ctxt_su_res() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& init_context_setup_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& init_context_setup_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_setup_list_ctxt_su_res_l& init_context_setup_resp_ies_o::value_c::erab_setup_list_ctxt_su_res() const -{ - assert_choice_type("E-RABSetupListCtxtSURes", type_.to_string(), "Value"); - return c.get(); -} -const erab_list_l& init_context_setup_resp_ies_o::value_c::erab_failed_to_setup_list_ctxt_su_res() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void init_context_setup_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -35965,6 +36183,56 @@ init_context_setup_resp_ies_o::value_c::operator=(const init_context_setup_resp_ return *this; } +uint64_t& init_context_setup_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& init_context_setup_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_setup_list_ctxt_su_res_l& init_context_setup_resp_ies_o::value_c::erab_setup_list_ctxt_su_res() +{ + assert_choice_type(types::erab_setup_list_ctxt_su_res, type_, "Value"); + return c.get(); +} +erab_list_l& init_context_setup_resp_ies_o::value_c::erab_failed_to_setup_list_ctxt_su_res() +{ + assert_choice_type(types::erab_failed_to_setup_list_ctxt_su_res, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& init_context_setup_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& init_context_setup_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_setup_list_ctxt_su_res_l& init_context_setup_resp_ies_o::value_c::erab_setup_list_ctxt_su_res() const +{ + assert_choice_type(types::erab_setup_list_ctxt_su_res, type_, "Value"); + return c.get(); +} +const erab_list_l& init_context_setup_resp_ies_o::value_c::erab_failed_to_setup_list_ctxt_su_res() const +{ + assert_choice_type(types::erab_failed_to_setup_list_ctxt_su_res, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& init_context_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void init_context_setup_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -36049,7 +36317,7 @@ SRSASN_CODE init_context_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string init_context_setup_resp_ies_o::value_c::types_opts::to_string() const +const char* init_context_setup_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -36184,21 +36452,21 @@ void init_context_setup_resp_s::to_json(json_writer& j) const } // Coverage-Level ::= ENUMERATED -std::string coverage_level_opts::to_string() const +const char* coverage_level_opts::to_string() const { static const char* options[] = {"extendedcoverage"}; return convert_enum_idx(options, 1, value, "coverage_level_e"); } // EDT-Session ::= ENUMERATED -std::string edt_session_opts::to_string() const +const char* edt_session_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "edt_session_e"); } // GUMMEIType ::= ENUMERATED -std::string gummei_type_opts::to_string() const +const char* gummei_type_opts::to_string() const { static const char* options[] = {"native", "mapped", "mappedFrom5G"}; return convert_enum_idx(options, 3, value, "gummei_type_e"); @@ -36213,7 +36481,7 @@ uint8_t gummei_type_opts::to_number() const } // RRC-Establishment-Cause ::= ENUMERATED -std::string rrc_establishment_cause_opts::to_string() const +const char* rrc_establishment_cause_opts::to_string() const { static const char* options[] = {"emergency", "highPriorityAccess", @@ -36227,7 +36495,7 @@ std::string rrc_establishment_cause_opts::to_string() const } // RelayNode-Indicator ::= ENUMERATED -std::string relay_node_ind_opts::to_string() const +const char* relay_node_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "relay_node_ind_e"); @@ -36432,493 +36700,493 @@ presence_e init_ue_msg_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE +void init_ue_msg_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::nas_pdu: + c.destroy >(); + break; + case types::tai: + c.destroy(); + break; + case types::eutran_cgi: + c.destroy(); + break; + case types::s_tmsi: + c.destroy(); + break; + case types::csg_id: + c.destroy >(); + break; + case types::gummei_id: + c.destroy(); + break; + case types::gw_transport_layer_address: + c.destroy >(); + break; + case types::tunnel_info_for_bbf: + c.destroy(); + break; + case types::sipto_l_gw_transport_layer_address: + c.destroy >(); + break; + case types::lhn_id: + c.destroy >(); + break; + case types::mme_group_id: + c.destroy >(); + break; + case types::ue_application_layer_meas_cap: + c.destroy >(); + break; + default: + break; + } +} +void init_ue_msg_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::enb_ue_s1ap_id: + break; + case types::nas_pdu: + c.init >(); + break; + case types::tai: + c.init(); + break; + case types::eutran_cgi: + c.init(); + break; + case types::rrc_establishment_cause: + break; + case types::s_tmsi: + c.init(); + break; + case types::csg_id: + c.init >(); + break; + case types::gummei_id: + c.init(); + break; + case types::cell_access_mode: + break; + case types::gw_transport_layer_address: + c.init >(); + break; + case types::relay_node_ind: + break; + case types::gummei_type: + break; + case types::tunnel_info_for_bbf: + c.init(); + break; + case types::sipto_l_gw_transport_layer_address: + c.init >(); + break; + case types::lhn_id: + c.init >(); + break; + case types::mme_group_id: + c.init >(); + break; + case types::ue_usage_type: + break; + case types::ce_mode_b_support_ind: + break; + case types::dcn_id: + break; + case types::coverage_level: + break; + case types::ue_application_layer_meas_cap: + c.init >(); + break; + case types::edt_session: + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } +} +init_ue_msg_ies_o::value_c::value_c(const init_ue_msg_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::enb_ue_s1ap_id: + c.init(other.c.get()); + break; + case types::nas_pdu: + c.init(other.c.get >()); + break; + case types::tai: + c.init(other.c.get()); + break; + case types::eutran_cgi: + c.init(other.c.get()); + break; + case types::rrc_establishment_cause: + c.init(other.c.get()); + break; + case types::s_tmsi: + c.init(other.c.get()); + break; + case types::csg_id: + c.init(other.c.get >()); + break; + case types::gummei_id: + c.init(other.c.get()); + break; + case types::cell_access_mode: + c.init(other.c.get()); + break; + case types::gw_transport_layer_address: + c.init(other.c.get >()); + break; + case types::relay_node_ind: + c.init(other.c.get()); + break; + case types::gummei_type: + c.init(other.c.get()); + break; + case types::tunnel_info_for_bbf: + c.init(other.c.get()); + break; + case types::sipto_l_gw_transport_layer_address: + c.init(other.c.get >()); + break; + case types::lhn_id: + c.init(other.c.get >()); + break; + case types::mme_group_id: + c.init(other.c.get >()); + break; + case types::ue_usage_type: + c.init(other.c.get()); + break; + case types::ce_mode_b_support_ind: + c.init(other.c.get()); + break; + case types::dcn_id: + c.init(other.c.get()); + break; + case types::coverage_level: + c.init(other.c.get()); + break; + case types::ue_application_layer_meas_cap: + c.init(other.c.get >()); + break; + case types::edt_session: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } +} +init_ue_msg_ies_o::value_c& init_ue_msg_ies_o::value_c::operator=(const init_ue_msg_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::enb_ue_s1ap_id: + c.set(other.c.get()); + break; + case types::nas_pdu: + c.set(other.c.get >()); + break; + case types::tai: + c.set(other.c.get()); + break; + case types::eutran_cgi: + c.set(other.c.get()); + break; + case types::rrc_establishment_cause: + c.set(other.c.get()); + break; + case types::s_tmsi: + c.set(other.c.get()); + break; + case types::csg_id: + c.set(other.c.get >()); + break; + case types::gummei_id: + c.set(other.c.get()); + break; + case types::cell_access_mode: + c.set(other.c.get()); + break; + case types::gw_transport_layer_address: + c.set(other.c.get >()); + break; + case types::relay_node_ind: + c.set(other.c.get()); + break; + case types::gummei_type: + c.set(other.c.get()); + break; + case types::tunnel_info_for_bbf: + c.set(other.c.get()); + break; + case types::sipto_l_gw_transport_layer_address: + c.set(other.c.get >()); + break; + case types::lhn_id: + c.set(other.c.get >()); + break; + case types::mme_group_id: + c.set(other.c.get >()); + break; + case types::ue_usage_type: + c.set(other.c.get()); + break; + case types::ce_mode_b_support_ind: + c.set(other.c.get()); + break; + case types::dcn_id: + c.set(other.c.get()); + break; + case types::coverage_level: + c.set(other.c.get()); + break; + case types::ue_application_layer_meas_cap: + c.set(other.c.get >()); + break; + case types::edt_session: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); + } + + return *this; +} uint32_t& init_ue_msg_ies_o::value_c::enb_ue_s1ap_id() { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::nas_pdu, type_, "Value"); return c.get >(); } tai_s& init_ue_msg_ies_o::value_c::tai() { - assert_choice_type("TAI", type_.to_string(), "Value"); + assert_choice_type(types::tai, type_, "Value"); return c.get(); } eutran_cgi_s& init_ue_msg_ies_o::value_c::eutran_cgi() { - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); + assert_choice_type(types::eutran_cgi, type_, "Value"); return c.get(); } rrc_establishment_cause_e& init_ue_msg_ies_o::value_c::rrc_establishment_cause() { - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); + assert_choice_type(types::rrc_establishment_cause, type_, "Value"); return c.get(); } s_tmsi_s& init_ue_msg_ies_o::value_c::s_tmsi() { - assert_choice_type("S-TMSI", type_.to_string(), "Value"); + assert_choice_type(types::s_tmsi, type_, "Value"); return c.get(); } fixed_bitstring<27, false, true>& init_ue_msg_ies_o::value_c::csg_id() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::csg_id, type_, "Value"); return c.get >(); } gummei_s& init_ue_msg_ies_o::value_c::gummei_id() { - assert_choice_type("GUMMEI", type_.to_string(), "Value"); + assert_choice_type(types::gummei_id, type_, "Value"); return c.get(); } cell_access_mode_e& init_ue_msg_ies_o::value_c::cell_access_mode() { - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); + assert_choice_type(types::cell_access_mode, type_, "Value"); return c.get(); } bounded_bitstring<1, 160, true, true>& init_ue_msg_ies_o::value_c::gw_transport_layer_address() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::gw_transport_layer_address, type_, "Value"); return c.get >(); } relay_node_ind_e& init_ue_msg_ies_o::value_c::relay_node_ind() { - assert_choice_type("RelayNode-Indicator", type_.to_string(), "Value"); + assert_choice_type(types::relay_node_ind, type_, "Value"); return c.get(); } gummei_type_e& init_ue_msg_ies_o::value_c::gummei_type() { - assert_choice_type("GUMMEIType", type_.to_string(), "Value"); + assert_choice_type(types::gummei_type, type_, "Value"); return c.get(); } tunnel_info_s& init_ue_msg_ies_o::value_c::tunnel_info_for_bbf() { - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); return c.get(); } bounded_bitstring<1, 160, true, true>& init_ue_msg_ies_o::value_c::sipto_l_gw_transport_layer_address() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::sipto_l_gw_transport_layer_address, type_, "Value"); return c.get >(); } bounded_octstring<32, 256, true>& init_ue_msg_ies_o::value_c::lhn_id() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::lhn_id, type_, "Value"); return c.get >(); } fixed_octstring<2, true>& init_ue_msg_ies_o::value_c::mme_group_id() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::mme_group_id, type_, "Value"); return c.get >(); } uint16_t& init_ue_msg_ies_o::value_c::ue_usage_type() { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); + assert_choice_type(types::ue_usage_type, type_, "Value"); return c.get(); } ce_mode_b_support_ind_e& init_ue_msg_ies_o::value_c::ce_mode_b_support_ind() { - assert_choice_type("CE-mode-B-SupportIndicator", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_b_support_ind, type_, "Value"); return c.get(); } uint32_t& init_ue_msg_ies_o::value_c::dcn_id() { - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); + assert_choice_type(types::dcn_id, type_, "Value"); return c.get(); } coverage_level_e& init_ue_msg_ies_o::value_c::coverage_level() { - assert_choice_type("Coverage-Level", type_.to_string(), "Value"); + assert_choice_type(types::coverage_level, type_, "Value"); return c.get(); } fixed_bitstring<8, false, true>& init_ue_msg_ies_o::value_c::ue_application_layer_meas_cap() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_application_layer_meas_cap, type_, "Value"); return c.get >(); } edt_session_e& init_ue_msg_ies_o::value_c::edt_session() { - assert_choice_type("EDT-Session", type_.to_string(), "Value"); + assert_choice_type(types::edt_session, type_, "Value"); return c.get(); } const uint32_t& init_ue_msg_ies_o::value_c::enb_ue_s1ap_id() const { - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); return c.get(); } const unbounded_octstring& init_ue_msg_ies_o::value_c::nas_pdu() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::nas_pdu, type_, "Value"); return c.get >(); } const tai_s& init_ue_msg_ies_o::value_c::tai() const { - assert_choice_type("TAI", type_.to_string(), "Value"); + assert_choice_type(types::tai, type_, "Value"); return c.get(); } const eutran_cgi_s& init_ue_msg_ies_o::value_c::eutran_cgi() const { - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); + assert_choice_type(types::eutran_cgi, type_, "Value"); return c.get(); } const rrc_establishment_cause_e& init_ue_msg_ies_o::value_c::rrc_establishment_cause() const { - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); + assert_choice_type(types::rrc_establishment_cause, type_, "Value"); return c.get(); } const s_tmsi_s& init_ue_msg_ies_o::value_c::s_tmsi() const { - assert_choice_type("S-TMSI", type_.to_string(), "Value"); + assert_choice_type(types::s_tmsi, type_, "Value"); return c.get(); } const fixed_bitstring<27, false, true>& init_ue_msg_ies_o::value_c::csg_id() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::csg_id, type_, "Value"); return c.get >(); } const gummei_s& init_ue_msg_ies_o::value_c::gummei_id() const { - assert_choice_type("GUMMEI", type_.to_string(), "Value"); + assert_choice_type(types::gummei_id, type_, "Value"); return c.get(); } const cell_access_mode_e& init_ue_msg_ies_o::value_c::cell_access_mode() const { - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); + assert_choice_type(types::cell_access_mode, type_, "Value"); return c.get(); } const bounded_bitstring<1, 160, true, true>& init_ue_msg_ies_o::value_c::gw_transport_layer_address() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::gw_transport_layer_address, type_, "Value"); return c.get >(); } const relay_node_ind_e& init_ue_msg_ies_o::value_c::relay_node_ind() const { - assert_choice_type("RelayNode-Indicator", type_.to_string(), "Value"); + assert_choice_type(types::relay_node_ind, type_, "Value"); return c.get(); } const gummei_type_e& init_ue_msg_ies_o::value_c::gummei_type() const { - assert_choice_type("GUMMEIType", type_.to_string(), "Value"); + assert_choice_type(types::gummei_type, type_, "Value"); return c.get(); } const tunnel_info_s& init_ue_msg_ies_o::value_c::tunnel_info_for_bbf() const { - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); return c.get(); } const bounded_bitstring<1, 160, true, true>& init_ue_msg_ies_o::value_c::sipto_l_gw_transport_layer_address() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::sipto_l_gw_transport_layer_address, type_, "Value"); return c.get >(); } const bounded_octstring<32, 256, true>& init_ue_msg_ies_o::value_c::lhn_id() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::lhn_id, type_, "Value"); return c.get >(); } const fixed_octstring<2, true>& init_ue_msg_ies_o::value_c::mme_group_id() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::mme_group_id, type_, "Value"); return c.get >(); } const uint16_t& init_ue_msg_ies_o::value_c::ue_usage_type() const { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); + assert_choice_type(types::ue_usage_type, type_, "Value"); return c.get(); } const ce_mode_b_support_ind_e& init_ue_msg_ies_o::value_c::ce_mode_b_support_ind() const { - assert_choice_type("CE-mode-B-SupportIndicator", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_b_support_ind, type_, "Value"); return c.get(); } const uint32_t& init_ue_msg_ies_o::value_c::dcn_id() const { - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); + assert_choice_type(types::dcn_id, type_, "Value"); return c.get(); } const coverage_level_e& init_ue_msg_ies_o::value_c::coverage_level() const { - assert_choice_type("Coverage-Level", type_.to_string(), "Value"); + assert_choice_type(types::coverage_level, type_, "Value"); return c.get(); } const fixed_bitstring<8, false, true>& init_ue_msg_ies_o::value_c::ue_application_layer_meas_cap() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_application_layer_meas_cap, type_, "Value"); return c.get >(); } const edt_session_e& init_ue_msg_ies_o::value_c::edt_session() const { - assert_choice_type("EDT-Session", type_.to_string(), "Value"); + assert_choice_type(types::edt_session, type_, "Value"); return c.get(); } -void init_ue_msg_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::nas_pdu: - c.destroy >(); - break; - case types::tai: - c.destroy(); - break; - case types::eutran_cgi: - c.destroy(); - break; - case types::s_tmsi: - c.destroy(); - break; - case types::csg_id: - c.destroy >(); - break; - case types::gummei_id: - c.destroy(); - break; - case types::gw_transport_layer_address: - c.destroy >(); - break; - case types::tunnel_info_for_bbf: - c.destroy(); - break; - case types::sipto_l_gw_transport_layer_address: - c.destroy >(); - break; - case types::lhn_id: - c.destroy >(); - break; - case types::mme_group_id: - c.destroy >(); - break; - case types::ue_application_layer_meas_cap: - c.destroy >(); - break; - default: - break; - } -} -void init_ue_msg_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::enb_ue_s1ap_id: - break; - case types::nas_pdu: - c.init >(); - break; - case types::tai: - c.init(); - break; - case types::eutran_cgi: - c.init(); - break; - case types::rrc_establishment_cause: - break; - case types::s_tmsi: - c.init(); - break; - case types::csg_id: - c.init >(); - break; - case types::gummei_id: - c.init(); - break; - case types::cell_access_mode: - break; - case types::gw_transport_layer_address: - c.init >(); - break; - case types::relay_node_ind: - break; - case types::gummei_type: - break; - case types::tunnel_info_for_bbf: - c.init(); - break; - case types::sipto_l_gw_transport_layer_address: - c.init >(); - break; - case types::lhn_id: - c.init >(); - break; - case types::mme_group_id: - c.init >(); - break; - case types::ue_usage_type: - break; - case types::ce_mode_b_support_ind: - break; - case types::dcn_id: - break; - case types::coverage_level: - break; - case types::ue_application_layer_meas_cap: - c.init >(); - break; - case types::edt_session: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); - } -} -init_ue_msg_ies_o::value_c::value_c(const init_ue_msg_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::enb_ue_s1ap_id: - c.init(other.c.get()); - break; - case types::nas_pdu: - c.init(other.c.get >()); - break; - case types::tai: - c.init(other.c.get()); - break; - case types::eutran_cgi: - c.init(other.c.get()); - break; - case types::rrc_establishment_cause: - c.init(other.c.get()); - break; - case types::s_tmsi: - c.init(other.c.get()); - break; - case types::csg_id: - c.init(other.c.get >()); - break; - case types::gummei_id: - c.init(other.c.get()); - break; - case types::cell_access_mode: - c.init(other.c.get()); - break; - case types::gw_transport_layer_address: - c.init(other.c.get >()); - break; - case types::relay_node_ind: - c.init(other.c.get()); - break; - case types::gummei_type: - c.init(other.c.get()); - break; - case types::tunnel_info_for_bbf: - c.init(other.c.get()); - break; - case types::sipto_l_gw_transport_layer_address: - c.init(other.c.get >()); - break; - case types::lhn_id: - c.init(other.c.get >()); - break; - case types::mme_group_id: - c.init(other.c.get >()); - break; - case types::ue_usage_type: - c.init(other.c.get()); - break; - case types::ce_mode_b_support_ind: - c.init(other.c.get()); - break; - case types::dcn_id: - c.init(other.c.get()); - break; - case types::coverage_level: - c.init(other.c.get()); - break; - case types::ue_application_layer_meas_cap: - c.init(other.c.get >()); - break; - case types::edt_session: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); - } -} -init_ue_msg_ies_o::value_c& init_ue_msg_ies_o::value_c::operator=(const init_ue_msg_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::enb_ue_s1ap_id: - c.set(other.c.get()); - break; - case types::nas_pdu: - c.set(other.c.get >()); - break; - case types::tai: - c.set(other.c.get()); - break; - case types::eutran_cgi: - c.set(other.c.get()); - break; - case types::rrc_establishment_cause: - c.set(other.c.get()); - break; - case types::s_tmsi: - c.set(other.c.get()); - break; - case types::csg_id: - c.set(other.c.get >()); - break; - case types::gummei_id: - c.set(other.c.get()); - break; - case types::cell_access_mode: - c.set(other.c.get()); - break; - case types::gw_transport_layer_address: - c.set(other.c.get >()); - break; - case types::relay_node_ind: - c.set(other.c.get()); - break; - case types::gummei_type: - c.set(other.c.get()); - break; - case types::tunnel_info_for_bbf: - c.set(other.c.get()); - break; - case types::sipto_l_gw_transport_layer_address: - c.set(other.c.get >()); - break; - case types::lhn_id: - c.set(other.c.get >()); - break; - case types::mme_group_id: - c.set(other.c.get >()); - break; - case types::ue_usage_type: - c.set(other.c.get()); - break; - case types::ce_mode_b_support_ind: - c.set(other.c.get()); - break; - case types::dcn_id: - c.set(other.c.get()); - break; - case types::coverage_level: - c.set(other.c.get()); - break; - case types::ue_application_layer_meas_cap: - c.set(other.c.get >()); - break; - case types::edt_session: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "init_ue_msg_ies_o::value_c"); - } - - return *this; -} void init_ue_msg_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -37152,7 +37420,7 @@ SRSASN_CODE init_ue_msg_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string init_ue_msg_ies_o::value_c::types_opts::to_string() const +const char* init_ue_msg_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..16777215)", "OCTET STRING", @@ -37666,7 +37934,7 @@ SRSASN_CODE served_gummeis_item_ext_ies_o::ext_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string served_gummeis_item_ext_ies_o::ext_c::types_opts::to_string() const +const char* served_gummeis_item_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"GUMMEIType"}; return convert_enum_idx(options, 1, value, "served_gummeis_item_ext_ies_o::ext_c::types"); @@ -37765,7 +38033,7 @@ SRSASN_CODE ue_associated_lc_s1_conn_item_res_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_associated_lc_s1_conn_item_res_o::value_c::types_opts::to_string() const +const char* ue_associated_lc_s1_conn_item_res_o::value_c::types_opts::to_string() const { static const char* options[] = {"UE-associatedLogicalS1-ConnectionItem"}; return convert_enum_idx(options, 1, value, "ue_associated_lc_s1_conn_item_res_o::value_c::types"); @@ -37777,7 +38045,7 @@ uint8_t ue_associated_lc_s1_conn_item_res_o::value_c::types_opts::to_number() co } // NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED -std::string nb_io_t_paging_e_drx_cycle_opts::to_string() const +const char* nb_io_t_paging_e_drx_cycle_opts::to_string() const { static const char* options[] = { "hf2", "hf4", "hf6", "hf8", "hf10", "hf12", "hf14", "hf16", "hf32", "hf64", "hf128", "hf256", "hf512", "hf1024"}; @@ -37790,7 +38058,7 @@ uint16_t nb_io_t_paging_e_drx_cycle_opts::to_number() const } // NB-IoT-PagingTimeWindow ::= ENUMERATED -std::string nb_io_t_paging_time_win_opts::to_string() const +const char* nb_io_t_paging_time_win_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15", "s16"}; @@ -37803,7 +38071,7 @@ uint8_t nb_io_t_paging_time_win_opts::to_number() const } // OverloadAction ::= ENUMERATED -std::string overload_action_opts::to_string() const +const char* overload_action_opts::to_string() const { static const char* options[] = { "reject-non-emergency-mo-dt", @@ -37817,7 +38085,7 @@ std::string overload_action_opts::to_string() const } // Paging-eDRX-Cycle ::= ENUMERATED -std::string paging_e_drx_cycle_opts::to_string() const +const char* paging_e_drx_cycle_opts::to_string() const { static const char* options[] = { "hfhalf", "hf1", "hf2", "hf4", "hf6", "hf8", "hf10", "hf12", "hf14", "hf16", "hf32", "hf64", "hf128", "hf256"}; @@ -37828,14 +38096,14 @@ float paging_e_drx_cycle_opts::to_number() const static const float options[] = {0.5, 1.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 32.0, 64.0, 128.0, 256.0}; return map_enum_number(options, 14, value, "paging_e_drx_cycle_e"); } -std::string paging_e_drx_cycle_opts::to_number_string() const +const char* paging_e_drx_cycle_opts::to_number_string() const { static const char* options[] = {"0.5", "1", "2", "4", "6", "8", "10", "12", "14", "16", "32", "64", "128", "256"}; return convert_enum_idx(options, 14, value, "paging_e_drx_cycle_e"); } // PagingTimeWindow ::= ENUMERATED -std::string paging_time_win_opts::to_string() const +const char* paging_time_win_opts::to_string() const { static const char* options[] = { "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15", "s16"}; @@ -37848,7 +38116,7 @@ uint8_t paging_time_win_opts::to_number() const } // ResetAll ::= ENUMERATED -std::string reset_all_opts::to_string() const +const char* reset_all_opts::to_string() const { static const char* options[] = {"reset-all"}; return convert_enum_idx(options, 1, value, "reset_all_e"); @@ -38002,7 +38270,7 @@ SRSASN_CODE tai_item_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string tai_item_ies_o::value_c::types_opts::to_string() const +const char* tai_item_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"TAIItem"}; return convert_enum_idx(options, 1, value, "tai_item_ies_o::value_c::types"); @@ -38103,7 +38371,7 @@ SRSASN_CODE ue_associated_lc_s1_conn_item_res_ack_o::value_c::unpack(cbit_ref& b return SRSASN_SUCCESS; } -std::string ue_associated_lc_s1_conn_item_res_ack_o::value_c::types_opts::to_string() const +const char* ue_associated_lc_s1_conn_item_res_ack_o::value_c::types_opts::to_string() const { static const char* options[] = {"UE-associatedLogicalS1-ConnectionItem"}; return convert_enum_idx(options, 1, value, "ue_associated_lc_s1_conn_item_res_ack_o::value_c::types"); @@ -38117,56 +38385,56 @@ uint8_t ue_associated_lc_s1_conn_item_res_ack_o::value_c::types_opts::to_number( template struct asn1::s1ap::protocol_ie_single_container_s; // CNDomain ::= ENUMERATED -std::string cn_domain_opts::to_string() const +const char* cn_domain_opts::to_string() const { static const char* options[] = {"ps", "cs"}; return convert_enum_idx(options, 2, value, "cn_domain_e"); } // Cdma2000HORequiredIndication ::= ENUMERATED -std::string cdma2000_ho_required_ind_opts::to_string() const +const char* cdma2000_ho_required_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "cdma2000_ho_required_ind_e"); } // ConcurrentWarningMessageIndicator ::= ENUMERATED -std::string concurrent_warning_msg_ind_opts::to_string() const +const char* concurrent_warning_msg_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "concurrent_warning_msg_ind_e"); } // GWContextReleaseIndication ::= ENUMERATED -std::string gw_context_release_ind_opts::to_string() const +const char* gw_context_release_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "gw_context_release_ind_e"); } // HandoverFlag ::= ENUMERATED -std::string ho_flag_opts::to_string() const +const char* ho_flag_opts::to_string() const { static const char* options[] = {"handoverPreparation"}; return convert_enum_idx(options, 1, value, "ho_flag_e"); } // KillAllWarningMessages ::= ENUMERATED -std::string kill_all_warning_msgs_opts::to_string() const +const char* kill_all_warning_msgs_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "kill_all_warning_msgs_e"); } // LTE-M-Indication ::= ENUMERATED -std::string lte_m_ind_opts::to_string() const +const char* lte_m_ind_opts::to_string() const { static const char* options[] = {"lte-m"}; return convert_enum_idx(options, 1, value, "lte_m_ind_e"); } // MMERelaySupportIndicator ::= ENUMERATED -std::string mme_relay_support_ind_opts::to_string() const +const char* mme_relay_support_ind_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "mme_relay_support_ind_e"); @@ -38244,7 +38512,7 @@ SRSASN_CODE overload_resp_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string overload_resp_c::types_opts::to_string() const +const char* overload_resp_c::types_opts::to_string() const { static const char* options[] = {"overloadAction"}; return convert_enum_idx(options, 1, value, "overload_resp_c::types"); @@ -38298,7 +38566,7 @@ void paging_e_drx_info_s::to_json(json_writer& j) const } // PagingPriority ::= ENUMERATED -std::string paging_prio_opts::to_string() const +const char* paging_prio_opts::to_string() const { static const char* options[] = { "priolevel1", "priolevel2", "priolevel3", "priolevel4", "priolevel5", "priolevel6", "priolevel7", "priolevel8"}; @@ -38374,6 +38642,16 @@ reset_type_c& reset_type_c::operator=(const reset_type_c& other) return *this; } +reset_all_e& reset_type_c::set_s1_interface() +{ + set(types::s1_interface); + return c.get(); +} +ue_associated_lc_s1_conn_list_res_l& reset_type_c::set_part_of_s1_interface() +{ + set(types::part_of_s1_interface); + return c.get(); +} void reset_type_c::to_json(json_writer& j) const { j.start_obj(); @@ -38428,14 +38706,14 @@ SRSASN_CODE reset_type_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string reset_type_c::types_opts::to_string() const +const char* reset_type_c::types_opts::to_string() const { static const char* options[] = {"s1-Interface", "partOfS1-Interface"}; return convert_enum_idx(options, 2, value, "reset_type_c::types"); } // SRVCCOperationNotPossible ::= ENUMERATED -std::string srvcc_operation_not_possible_opts::to_string() const +const char* srvcc_operation_not_possible_opts::to_string() const { static const char* options[] = {"notPossible"}; return convert_enum_idx(options, 1, value, "srvcc_operation_not_possible_e"); @@ -38444,7 +38722,7 @@ std::string srvcc_operation_not_possible_opts::to_string() const template struct asn1::s1ap::protocol_ie_single_container_s; // UE-RetentionInformation ::= ENUMERATED -std::string ue_retention_info_opts::to_string() const +const char* ue_retention_info_opts::to_string() const { static const char* options[] = {"ues-retained"}; return convert_enum_idx(options, 1, value, "ue_retention_info_e"); @@ -38514,6 +38792,16 @@ ue_s1ap_ids_c& ue_s1ap_ids_c::operator=(const ue_s1ap_ids_c& other) return *this; } +ue_s1ap_id_pair_s& ue_s1ap_ids_c::set_ue_s1ap_id_pair() +{ + set(types::ue_s1ap_id_pair); + return c.get(); +} +uint64_t& ue_s1ap_ids_c::set_mme_ue_s1ap_id() +{ + set(types::mme_ue_s1ap_id); + return c.get(); +} void ue_s1ap_ids_c::to_json(json_writer& j) const { j.start_obj(); @@ -38565,7 +38853,7 @@ SRSASN_CODE ue_s1ap_ids_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_s1ap_ids_c::types_opts::to_string() const +const char* ue_s1ap_ids_c::types_opts::to_string() const { static const char* options[] = {"uE-S1AP-ID-pair", "mME-UE-S1AP-ID"}; return convert_enum_idx(options, 2, value, "ue_s1ap_ids_c::types"); @@ -38641,6 +38929,16 @@ ue_paging_id_c& ue_paging_id_c::operator=(const ue_paging_id_c& other) return *this; } +s_tmsi_s& ue_paging_id_c::set_s_tmsi() +{ + set(types::s_tmsi); + return c.get(); +} +bounded_octstring<3, 8, true>& ue_paging_id_c::set_imsi() +{ + set(types::imsi); + return c.get >(); +} void ue_paging_id_c::to_json(json_writer& j) const { j.start_obj(); @@ -38692,14 +38990,14 @@ SRSASN_CODE ue_paging_id_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_paging_id_c::types_opts::to_string() const +const char* ue_paging_id_c::types_opts::to_string() const { static const char* options[] = {"s-TMSI", "iMSI"}; return convert_enum_idx(options, 2, value, "ue_paging_id_c::types"); } // VoiceSupportMatchIndicator ::= ENUMERATED -std::string voice_support_match_ind_opts::to_string() const +const char* voice_support_match_ind_opts::to_string() const { static const char* options[] = {"supported", "not-supported"}; return convert_enum_idx(options, 2, value, "voice_support_match_ind_e"); @@ -38785,6 +39083,21 @@ warning_area_list_c& warning_area_list_c::operator=(const warning_area_list_c& o return *this; } +ecgi_list_l& warning_area_list_c::set_cell_id_list() +{ + set(types::cell_id_list); + return c.get(); +} +tai_listfor_warning_l& warning_area_list_c::set_tracking_area_listfor_warning() +{ + set(types::tracking_area_listfor_warning); + return c.get(); +} +emergency_area_id_list_l& warning_area_list_c::set_emergency_area_id_list() +{ + set(types::emergency_area_id_list); + return c.get(); +} void warning_area_list_c::to_json(json_writer& j) const { j.start_obj(); @@ -38856,7 +39169,7 @@ SRSASN_CODE warning_area_list_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string warning_area_list_c::types_opts::to_string() const +const char* warning_area_list_c::types_opts::to_string() const { static const char* options[] = {"cellIDList", "trackingAreaListforWarning", "emergencyAreaIDList"}; return convert_enum_idx(options, 3, value, "warning_area_list_c::types"); @@ -38933,46 +39246,6 @@ presence_e kill_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -warning_area_list_c& kill_request_ies_o::value_c::warning_area_list() -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -kill_all_warning_msgs_e& kill_request_ies_o::value_c::kill_all_warning_msgs() -{ - assert_choice_type("KillAllWarningMessages", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const warning_area_list_c& kill_request_ies_o::value_c::warning_area_list() const -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -const kill_all_warning_msgs_e& kill_request_ies_o::value_c::kill_all_warning_msgs() const -{ - assert_choice_type("KillAllWarningMessages", type_.to_string(), "Value"); - return c.get(); -} void kill_request_ies_o::value_c::destroy_() { switch (type_) { @@ -39060,6 +39333,46 @@ kill_request_ies_o::value_c& kill_request_ies_o::value_c::operator=(const kill_r return *this; } +fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +warning_area_list_c& kill_request_ies_o::value_c::warning_area_list() +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +kill_all_warning_msgs_e& kill_request_ies_o::value_c::kill_all_warning_msgs() +{ + assert_choice_type(types::kill_all_warning_msgs, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& kill_request_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const warning_area_list_c& kill_request_ies_o::value_c::warning_area_list() const +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +const kill_all_warning_msgs_e& kill_request_ies_o::value_c::kill_all_warning_msgs() const +{ + assert_choice_type(types::kill_all_warning_msgs, type_, "Value"); + return c.get(); +} void kill_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -39127,7 +39440,7 @@ SRSASN_CODE kill_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string kill_request_ies_o::value_c::types_opts::to_string() const +const char* kill_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"BIT STRING", "BIT STRING", "WarningAreaList", "KillAllWarningMessages"}; return convert_enum_idx(options, 4, value, "kill_request_ies_o::value_c::types"); @@ -39204,46 +39517,6 @@ presence_e kill_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -broadcast_cancelled_area_list_c& kill_resp_ies_o::value_c::broadcast_cancelled_area_list() -{ - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& kill_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const broadcast_cancelled_area_list_c& kill_resp_ies_o::value_c::broadcast_cancelled_area_list() const -{ - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& kill_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void kill_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -39335,6 +39608,46 @@ kill_resp_ies_o::value_c& kill_resp_ies_o::value_c::operator=(const kill_resp_ie return *this; } +fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +broadcast_cancelled_area_list_c& kill_resp_ies_o::value_c::broadcast_cancelled_area_list() +{ + assert_choice_type(types::broadcast_cancelled_area_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& kill_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& kill_resp_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const broadcast_cancelled_area_list_c& kill_resp_ies_o::value_c::broadcast_cancelled_area_list() const +{ + assert_choice_type(types::broadcast_cancelled_area_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& kill_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void kill_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -39403,7 +39716,7 @@ SRSASN_CODE kill_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string kill_resp_ies_o::value_c::types_opts::to_string() const +const char* kill_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCancelledAreaList", "CriticalityDiagnostics"}; return convert_enum_idx(options, 4, value, "kill_resp_ies_o::value_c::types"); @@ -39494,66 +39807,6 @@ presence_e location_report_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& location_report_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -eutran_cgi_s& location_report_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -tai_s& location_report_ies_o::value_c::tai() -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -request_type_s& location_report_ies_o::value_c::request_type() -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} -ps_cell_info_s& location_report_ies_o::value_c::ps_cell_info() -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& location_report_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const eutran_cgi_s& location_report_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const tai_s& location_report_ies_o::value_c::tai() const -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -const request_type_s& location_report_ies_o::value_c::request_type() const -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} -const ps_cell_info_s& location_report_ies_o::value_c::ps_cell_info() const -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} void location_report_ies_o::value_c::destroy_() { switch (type_) { @@ -39661,6 +39914,66 @@ location_report_ies_o::value_c& location_report_ies_o::value_c::operator=(const return *this; } +uint64_t& location_report_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& location_report_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +eutran_cgi_s& location_report_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +tai_s& location_report_ies_o::value_c::tai() +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +request_type_s& location_report_ies_o::value_c::request_type() +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} +ps_cell_info_s& location_report_ies_o::value_c::ps_cell_info() +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +const uint64_t& location_report_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& location_report_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const eutran_cgi_s& location_report_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const tai_s& location_report_ies_o::value_c::tai() const +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +const request_type_s& location_report_ies_o::value_c::request_type() const +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} +const ps_cell_info_s& location_report_ies_o::value_c::ps_cell_info() const +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} void location_report_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -39749,7 +40062,7 @@ SRSASN_CODE location_report_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string location_report_ies_o::value_c::types_opts::to_string() const +const char* location_report_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "EUTRAN-CGI", "TAI", "RequestType", "PSCellInformation"}; @@ -39820,36 +40133,6 @@ presence_e location_report_ctrl_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_ctrl_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& location_report_ctrl_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -request_type_s& location_report_ctrl_ies_o::value_c::request_type() -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_ctrl_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& location_report_ctrl_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const request_type_s& location_report_ctrl_ies_o::value_c::request_type() const -{ - assert_choice_type("RequestType", type_.to_string(), "Value"); - return c.get(); -} void location_report_ctrl_ies_o::value_c::destroy_() { switch (type_) { @@ -39922,6 +40205,36 @@ location_report_ctrl_ies_o::value_c::operator=(const location_report_ctrl_ies_o: return *this; } +uint64_t& location_report_ctrl_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& location_report_ctrl_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +request_type_s& location_report_ctrl_ies_o::value_c::request_type() +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} +const uint64_t& location_report_ctrl_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& location_report_ctrl_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const request_type_s& location_report_ctrl_ies_o::value_c::request_type() const +{ + assert_choice_type(types::request_type, type_, "Value"); + return c.get(); +} void location_report_ctrl_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -39980,7 +40293,7 @@ SRSASN_CODE location_report_ctrl_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string location_report_ctrl_ies_o::value_c::types_opts::to_string() const +const char* location_report_ctrl_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "RequestType"}; return convert_enum_idx(options, 3, value, "location_report_ctrl_ies_o::value_c::types"); @@ -40050,36 +40363,6 @@ presence_e location_report_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& location_report_fail_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& location_report_fail_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& location_report_fail_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& location_report_fail_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& location_report_fail_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& location_report_fail_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void location_report_fail_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -40152,6 +40435,36 @@ location_report_fail_ind_ies_o::value_c::operator=(const location_report_fail_in return *this; } +uint64_t& location_report_fail_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& location_report_fail_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& location_report_fail_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& location_report_fail_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& location_report_fail_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& location_report_fail_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void location_report_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -40210,7 +40523,7 @@ SRSASN_CODE location_report_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string location_report_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* location_report_fail_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause"}; return convert_enum_idx(options, 3, value, "location_report_fail_ind_ies_o::value_c::types"); @@ -40273,26 +40586,6 @@ presence_e mmecp_relocation_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& mmecp_relocation_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& mmecp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& mmecp_relocation_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& mmecp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} void mmecp_relocation_ind_ies_o::value_c::destroy_() {} void mmecp_relocation_ind_ies_o::value_c::set(types::options e) { @@ -40337,6 +40630,26 @@ mmecp_relocation_ind_ies_o::value_c::operator=(const mmecp_relocation_ind_ies_o: return *this; } +uint64_t& mmecp_relocation_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& mmecp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint64_t& mmecp_relocation_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& mmecp_relocation_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} void mmecp_relocation_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -40385,7 +40698,7 @@ SRSASN_CODE mmecp_relocation_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mmecp_relocation_ind_ies_o::value_c::types_opts::to_string() const +const char* mmecp_relocation_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)"}; return convert_enum_idx(options, 2, value, "mmecp_relocation_ind_ies_o::value_c::types"); @@ -40448,26 +40761,6 @@ presence_e mme_cfg_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -son_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::son_cfg_transfer_mct() -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -en_dcson_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_mct() -{ - assert_choice_type("EN-DCSONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const son_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::son_cfg_transfer_mct() const -{ - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} -const en_dcson_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_mct() const -{ - assert_choice_type("EN-DCSONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); -} void mme_cfg_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -40536,6 +40829,26 @@ mme_cfg_transfer_ies_o::value_c::operator=(const mme_cfg_transfer_ies_o::value_c return *this; } +son_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::son_cfg_transfer_mct() +{ + assert_choice_type(types::son_cfg_transfer_mct, type_, "Value"); + return c.get(); +} +en_dcson_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_mct() +{ + assert_choice_type(types::en_dcson_cfg_transfer_mct, type_, "Value"); + return c.get(); +} +const son_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::son_cfg_transfer_mct() const +{ + assert_choice_type(types::son_cfg_transfer_mct, type_, "Value"); + return c.get(); +} +const en_dcson_cfg_transfer_s& mme_cfg_transfer_ies_o::value_c::en_dcson_cfg_transfer_mct() const +{ + assert_choice_type(types::en_dcson_cfg_transfer_mct, type_, "Value"); + return c.get(); +} void mme_cfg_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -40586,7 +40899,7 @@ SRSASN_CODE mme_cfg_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_cfg_transfer_ies_o::value_c::types_opts::to_string() const +const char* mme_cfg_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"SONConfigurationTransfer", "EN-DCSONConfigurationTransfer"}; return convert_enum_idx(options, 2, value, "mme_cfg_transfer_ies_o::value_c::types"); @@ -40648,7 +40961,7 @@ SRSASN_CODE mme_cfg_upd_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const +const char* mme_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"CriticalityDiagnostics"}; return convert_enum_idx(options, 1, value, "mme_cfg_upd_ack_ies_o::value_c::types"); @@ -40718,36 +41031,6 @@ presence_e mme_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& mme_cfg_upd_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& mme_cfg_upd_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& mme_cfg_upd_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& mme_cfg_upd_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& mme_cfg_upd_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& mme_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void mme_cfg_upd_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -40824,6 +41107,36 @@ mme_cfg_upd_fail_ies_o::value_c::operator=(const mme_cfg_upd_fail_ies_o::value_c return *this; } +cause_c& mme_cfg_upd_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +time_to_wait_e& mme_cfg_upd_fail_ies_o::value_c::time_to_wait() +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& mme_cfg_upd_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cause_c& mme_cfg_upd_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const time_to_wait_e& mme_cfg_upd_fail_ies_o::value_c::time_to_wait() const +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& mme_cfg_upd_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void mme_cfg_upd_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -40883,7 +41196,7 @@ SRSASN_CODE mme_cfg_upd_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const +const char* mme_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "mme_cfg_upd_fail_ies_o::value_c::types"); @@ -40960,133 +41273,133 @@ presence_e mme_cfg_upd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE +void mme_cfg_upd_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::mm_ename: + c.destroy >(); + break; + case types::served_gummeis: + c.destroy(); + break; + case types::served_dcns: + c.destroy(); + break; + default: + break; + } +} +void mme_cfg_upd_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::mm_ename: + c.init >(); + break; + case types::served_gummeis: + c.init(); + break; + case types::relative_mme_capacity: + break; + case types::served_dcns: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); + } +} +mme_cfg_upd_ies_o::value_c::value_c(const mme_cfg_upd_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::mm_ename: + c.init(other.c.get >()); + break; + case types::served_gummeis: + c.init(other.c.get()); + break; + case types::relative_mme_capacity: + c.init(other.c.get()); + break; + case types::served_dcns: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); + } +} +mme_cfg_upd_ies_o::value_c& mme_cfg_upd_ies_o::value_c::operator=(const mme_cfg_upd_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::mm_ename: + c.set(other.c.get >()); + break; + case types::served_gummeis: + c.set(other.c.get()); + break; + case types::relative_mme_capacity: + c.set(other.c.get()); + break; + case types::served_dcns: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); + } + + return *this; +} printable_string<1, 150, true, true>& mme_cfg_upd_ies_o::value_c::mm_ename() { - assert_choice_type("PrintableString", type_.to_string(), "Value"); + assert_choice_type(types::mm_ename, type_, "Value"); return c.get >(); } served_gummeis_l& mme_cfg_upd_ies_o::value_c::served_gummeis() { - assert_choice_type("ServedGUMMEIs", type_.to_string(), "Value"); + assert_choice_type(types::served_gummeis, type_, "Value"); return c.get(); } uint16_t& mme_cfg_upd_ies_o::value_c::relative_mme_capacity() { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); + assert_choice_type(types::relative_mme_capacity, type_, "Value"); return c.get(); } served_dcns_l& mme_cfg_upd_ies_o::value_c::served_dcns() { - assert_choice_type("ServedDCNs", type_.to_string(), "Value"); + assert_choice_type(types::served_dcns, type_, "Value"); return c.get(); } const printable_string<1, 150, true, true>& mme_cfg_upd_ies_o::value_c::mm_ename() const { - assert_choice_type("PrintableString", type_.to_string(), "Value"); + assert_choice_type(types::mm_ename, type_, "Value"); return c.get >(); } const served_gummeis_l& mme_cfg_upd_ies_o::value_c::served_gummeis() const { - assert_choice_type("ServedGUMMEIs", type_.to_string(), "Value"); + assert_choice_type(types::served_gummeis, type_, "Value"); return c.get(); } const uint16_t& mme_cfg_upd_ies_o::value_c::relative_mme_capacity() const { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); + assert_choice_type(types::relative_mme_capacity, type_, "Value"); return c.get(); } const served_dcns_l& mme_cfg_upd_ies_o::value_c::served_dcns() const { - assert_choice_type("ServedDCNs", type_.to_string(), "Value"); + assert_choice_type(types::served_dcns, type_, "Value"); return c.get(); } -void mme_cfg_upd_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::mm_ename: - c.destroy >(); - break; - case types::served_gummeis: - c.destroy(); - break; - case types::served_dcns: - c.destroy(); - break; - default: - break; - } -} -void mme_cfg_upd_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::mm_ename: - c.init >(); - break; - case types::served_gummeis: - c.init(); - break; - case types::relative_mme_capacity: - break; - case types::served_dcns: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); - } -} -mme_cfg_upd_ies_o::value_c::value_c(const mme_cfg_upd_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::mm_ename: - c.init(other.c.get >()); - break; - case types::served_gummeis: - c.init(other.c.get()); - break; - case types::relative_mme_capacity: - c.init(other.c.get()); - break; - case types::served_dcns: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); - } -} -mme_cfg_upd_ies_o::value_c& mme_cfg_upd_ies_o::value_c::operator=(const mme_cfg_upd_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::mm_ename: - c.set(other.c.get >()); - break; - case types::served_gummeis: - c.set(other.c.get()); - break; - case types::relative_mme_capacity: - c.set(other.c.get()); - break; - case types::served_dcns: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mme_cfg_upd_ies_o::value_c"); - } - - return *this; -} void mme_cfg_upd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -41161,7 +41474,7 @@ SRSASN_CODE mme_cfg_upd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_cfg_upd_ies_o::value_c::types_opts::to_string() const +const char* mme_cfg_upd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"PrintableString", "ServedGUMMEIs", "INTEGER (0..255)", "ServedDCNs"}; return convert_enum_idx(options, 4, value, "mme_cfg_upd_ies_o::value_c::types"); @@ -41231,7 +41544,7 @@ SRSASN_CODE mme_direct_info_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_direct_info_transfer_ies_o::value_c::types_opts::to_string() const +const char* mme_direct_info_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Inter-SystemInformationTransferType"}; return convert_enum_idx(options, 1, value, "mme_direct_info_transfer_ies_o::value_c::types"); @@ -41301,38 +41614,6 @@ presence_e mme_status_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& mme_status_transfer_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& mme_status_transfer_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -enb_status_transfer_transparent_container_s& -mme_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() -{ - assert_choice_type("ENB-StatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& mme_status_transfer_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& mme_status_transfer_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const enb_status_transfer_transparent_container_s& -mme_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() const -{ - assert_choice_type("ENB-StatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); -} void mme_status_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -41405,6 +41686,38 @@ mme_status_transfer_ies_o::value_c::operator=(const mme_status_transfer_ies_o::v return *this; } +uint64_t& mme_status_transfer_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& mme_status_transfer_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +enb_status_transfer_transparent_container_s& +mme_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() +{ + assert_choice_type(types::enb_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} +const uint64_t& mme_status_transfer_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& mme_status_transfer_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const enb_status_transfer_transparent_container_s& +mme_status_transfer_ies_o::value_c::enb_status_transfer_transparent_container() const +{ + assert_choice_type(types::enb_status_transfer_transparent_container, type_, "Value"); + return c.get(); +} void mme_status_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -41463,7 +41776,7 @@ SRSASN_CODE mme_status_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string mme_status_transfer_ies_o::value_c::types_opts::to_string() const +const char* mme_status_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "ENB-StatusTransfer-TransparentContainer"}; @@ -41527,26 +41840,6 @@ presence_e nas_delivery_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& nas_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& nas_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& nas_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& nas_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} void nas_delivery_ind_ies_o::value_c::destroy_() {} void nas_delivery_ind_ies_o::value_c::set(types::options e) { @@ -41591,6 +41884,26 @@ nas_delivery_ind_ies_o::value_c::operator=(const nas_delivery_ind_ies_o::value_c return *this; } +uint64_t& nas_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& nas_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint64_t& nas_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& nas_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} void nas_delivery_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -41639,7 +41952,7 @@ SRSASN_CODE nas_delivery_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string nas_delivery_ind_ies_o::value_c::types_opts::to_string() const +const char* nas_delivery_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)"}; return convert_enum_idx(options, 2, value, "nas_delivery_ind_ies_o::value_c::types"); @@ -41716,46 +42029,6 @@ presence_e nas_non_delivery_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& nas_non_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& nas_non_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -cause_c& nas_non_delivery_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& nas_non_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& nas_non_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cause_c& nas_non_delivery_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void nas_non_delivery_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -41840,6 +42113,46 @@ nas_non_delivery_ind_ies_o::value_c::operator=(const nas_non_delivery_ind_ies_o: return *this; } +uint64_t& nas_non_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& nas_non_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +cause_c& nas_non_delivery_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& nas_non_delivery_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& nas_non_delivery_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& nas_non_delivery_ind_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const cause_c& nas_non_delivery_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void nas_non_delivery_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -41907,7 +42220,7 @@ SRSASN_CODE nas_non_delivery_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string nas_non_delivery_ind_ies_o::value_c::types_opts::to_string() const +const char* nas_non_delivery_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "OCTET STRING", "Cause"}; return convert_enum_idx(options, 4, value, "nas_non_delivery_ind_ies_o::value_c::types"); @@ -41977,36 +42290,6 @@ presence_e overload_start_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -overload_resp_c& overload_start_ies_o::value_c::overload_resp() -{ - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); -} -gummei_list_l& overload_start_ies_o::value_c::gummei_list() -{ - assert_choice_type("GUMMEIList", type_.to_string(), "Value"); - return c.get(); -} -uint8_t& overload_start_ies_o::value_c::traffic_load_reduction_ind() -{ - assert_choice_type("INTEGER (1..99)", type_.to_string(), "Value"); - return c.get(); -} -const overload_resp_c& overload_start_ies_o::value_c::overload_resp() const -{ - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); -} -const gummei_list_l& overload_start_ies_o::value_c::gummei_list() const -{ - assert_choice_type("GUMMEIList", type_.to_string(), "Value"); - return c.get(); -} -const uint8_t& overload_start_ies_o::value_c::traffic_load_reduction_ind() const -{ - assert_choice_type("INTEGER (1..99)", type_.to_string(), "Value"); - return c.get(); -} void overload_start_ies_o::value_c::destroy_() { switch (type_) { @@ -42082,6 +42365,36 @@ overload_start_ies_o::value_c& overload_start_ies_o::value_c::operator=(const ov return *this; } +overload_resp_c& overload_start_ies_o::value_c::overload_resp() +{ + assert_choice_type(types::overload_resp, type_, "Value"); + return c.get(); +} +gummei_list_l& overload_start_ies_o::value_c::gummei_list() +{ + assert_choice_type(types::gummei_list, type_, "Value"); + return c.get(); +} +uint8_t& overload_start_ies_o::value_c::traffic_load_reduction_ind() +{ + assert_choice_type(types::traffic_load_reduction_ind, type_, "Value"); + return c.get(); +} +const overload_resp_c& overload_start_ies_o::value_c::overload_resp() const +{ + assert_choice_type(types::overload_resp, type_, "Value"); + return c.get(); +} +const gummei_list_l& overload_start_ies_o::value_c::gummei_list() const +{ + assert_choice_type(types::gummei_list, type_, "Value"); + return c.get(); +} +const uint8_t& overload_start_ies_o::value_c::traffic_load_reduction_ind() const +{ + assert_choice_type(types::traffic_load_reduction_ind, type_, "Value"); + return c.get(); +} void overload_start_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -42144,7 +42457,7 @@ SRSASN_CODE overload_start_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string overload_start_ies_o::value_c::types_opts::to_string() const +const char* overload_start_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"OverloadResponse", "GUMMEIList", "INTEGER (1..99)"}; return convert_enum_idx(options, 3, value, "overload_start_ies_o::value_c::types"); @@ -42217,7 +42530,7 @@ SRSASN_CODE overload_stop_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string overload_stop_ies_o::value_c::types_opts::to_string() const +const char* overload_stop_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"GUMMEIList"}; return convert_enum_idx(options, 1, value, "overload_stop_ies_o::value_c::types"); @@ -42280,26 +42593,6 @@ presence_e pws_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -pw_sfailed_ecgi_list_l& pws_fail_ind_ies_o::value_c::pw_sfailed_ecgi_list() -{ - assert_choice_type("PWSfailedECGIList", type_.to_string(), "Value"); - return c.get(); -} -global_enb_id_s& pws_fail_ind_ies_o::value_c::global_enb_id() -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} -const pw_sfailed_ecgi_list_l& pws_fail_ind_ies_o::value_c::pw_sfailed_ecgi_list() const -{ - assert_choice_type("PWSfailedECGIList", type_.to_string(), "Value"); - return c.get(); -} -const global_enb_id_s& pws_fail_ind_ies_o::value_c::global_enb_id() const -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} void pws_fail_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -42367,6 +42660,26 @@ pws_fail_ind_ies_o::value_c& pws_fail_ind_ies_o::value_c::operator=(const pws_fa return *this; } +pw_sfailed_ecgi_list_l& pws_fail_ind_ies_o::value_c::pw_sfailed_ecgi_list() +{ + assert_choice_type(types::pw_sfailed_ecgi_list, type_, "Value"); + return c.get(); +} +global_enb_id_s& pws_fail_ind_ies_o::value_c::global_enb_id() +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} +const pw_sfailed_ecgi_list_l& pws_fail_ind_ies_o::value_c::pw_sfailed_ecgi_list() const +{ + assert_choice_type(types::pw_sfailed_ecgi_list, type_, "Value"); + return c.get(); +} +const global_enb_id_s& pws_fail_ind_ies_o::value_c::global_enb_id() const +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} void pws_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -42420,7 +42733,7 @@ SRSASN_CODE pws_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pws_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* pws_fail_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"PWSfailedECGIList", "Global-ENB-ID"}; return convert_enum_idx(options, 2, value, "pws_fail_ind_ies_o::value_c::types"); @@ -42497,46 +42810,6 @@ presence_e pws_restart_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ecgi_list_for_restart_l& pws_restart_ind_ies_o::value_c::ecgi_list_for_restart() -{ - assert_choice_type("ECGIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -global_enb_id_s& pws_restart_ind_ies_o::value_c::global_enb_id() -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} -tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() -{ - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() -{ - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const ecgi_list_for_restart_l& pws_restart_ind_ies_o::value_c::ecgi_list_for_restart() const -{ - assert_choice_type("ECGIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const global_enb_id_s& pws_restart_ind_ies_o::value_c::global_enb_id() const -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} -const tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() const -{ - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); -} -const emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() const -{ - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); -} void pws_restart_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -42628,6 +42901,46 @@ pws_restart_ind_ies_o::value_c& pws_restart_ind_ies_o::value_c::operator=(const return *this; } +ecgi_list_for_restart_l& pws_restart_ind_ies_o::value_c::ecgi_list_for_restart() +{ + assert_choice_type(types::ecgi_list_for_restart, type_, "Value"); + return c.get(); +} +global_enb_id_s& pws_restart_ind_ies_o::value_c::global_enb_id() +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} +tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() +{ + assert_choice_type(types::tai_list_for_restart, type_, "Value"); + return c.get(); +} +emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() +{ + assert_choice_type(types::emergency_area_id_list_for_restart, type_, "Value"); + return c.get(); +} +const ecgi_list_for_restart_l& pws_restart_ind_ies_o::value_c::ecgi_list_for_restart() const +{ + assert_choice_type(types::ecgi_list_for_restart, type_, "Value"); + return c.get(); +} +const global_enb_id_s& pws_restart_ind_ies_o::value_c::global_enb_id() const +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} +const tai_list_for_restart_l& pws_restart_ind_ies_o::value_c::tai_list_for_restart() const +{ + assert_choice_type(types::tai_list_for_restart, type_, "Value"); + return c.get(); +} +const emergency_area_id_list_for_restart_l& pws_restart_ind_ies_o::value_c::emergency_area_id_list_for_restart() const +{ + assert_choice_type(types::emergency_area_id_list_for_restart, type_, "Value"); + return c.get(); +} void pws_restart_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -42707,7 +43020,7 @@ SRSASN_CODE pws_restart_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string pws_restart_ind_ies_o::value_c::types_opts::to_string() const +const char* pws_restart_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "ECGIListForRestart", "Global-ENB-ID", "TAIListForRestart", "EmergencyAreaIDListForRestart"}; @@ -42862,359 +43175,359 @@ presence_e paging_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE +void paging_ies_o::value_c::destroy_() +{ + switch (type_) { + case types::ue_id_idx_value: + c.destroy >(); + break; + case types::ue_paging_id: + c.destroy(); + break; + case types::tai_list: + c.destroy(); + break; + case types::csg_id_list: + c.destroy(); + break; + case types::ue_radio_cap_for_paging: + c.destroy >(); + break; + case types::assist_data_for_paging: + c.destroy(); + break; + case types::paging_e_drx_info: + c.destroy(); + break; + case types::extended_ue_id_idx_value: + c.destroy >(); + break; + case types::nb_io_t_paging_e_drx_info: + c.destroy(); + break; + case types::nb_io_t_ue_id_idx_value: + c.destroy >(); + break; + default: + break; + } +} +void paging_ies_o::value_c::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::ue_id_idx_value: + c.init >(); + break; + case types::ue_paging_id: + c.init(); + break; + case types::paging_drx: + break; + case types::cn_domain: + break; + case types::tai_list: + c.init(); + break; + case types::csg_id_list: + c.init(); + break; + case types::paging_prio: + break; + case types::ue_radio_cap_for_paging: + c.init >(); + break; + case types::assist_data_for_paging: + c.init(); + break; + case types::paging_e_drx_info: + c.init(); + break; + case types::extended_ue_id_idx_value: + c.init >(); + break; + case types::nb_io_t_paging_e_drx_info: + c.init(); + break; + case types::nb_io_t_ue_id_idx_value: + c.init >(); + break; + case types::enhanced_coverage_restricted: + break; + case types::ce_mode_brestricted: + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "paging_ies_o::value_c"); + } +} +paging_ies_o::value_c::value_c(const paging_ies_o::value_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::ue_id_idx_value: + c.init(other.c.get >()); + break; + case types::ue_paging_id: + c.init(other.c.get()); + break; + case types::paging_drx: + c.init(other.c.get()); + break; + case types::cn_domain: + c.init(other.c.get()); + break; + case types::tai_list: + c.init(other.c.get()); + break; + case types::csg_id_list: + c.init(other.c.get()); + break; + case types::paging_prio: + c.init(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.init(other.c.get >()); + break; + case types::assist_data_for_paging: + c.init(other.c.get()); + break; + case types::paging_e_drx_info: + c.init(other.c.get()); + break; + case types::extended_ue_id_idx_value: + c.init(other.c.get >()); + break; + case types::nb_io_t_paging_e_drx_info: + c.init(other.c.get()); + break; + case types::nb_io_t_ue_id_idx_value: + c.init(other.c.get >()); + break; + case types::enhanced_coverage_restricted: + c.init(other.c.get()); + break; + case types::ce_mode_brestricted: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "paging_ies_o::value_c"); + } +} +paging_ies_o::value_c& paging_ies_o::value_c::operator=(const paging_ies_o::value_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::ue_id_idx_value: + c.set(other.c.get >()); + break; + case types::ue_paging_id: + c.set(other.c.get()); + break; + case types::paging_drx: + c.set(other.c.get()); + break; + case types::cn_domain: + c.set(other.c.get()); + break; + case types::tai_list: + c.set(other.c.get()); + break; + case types::csg_id_list: + c.set(other.c.get()); + break; + case types::paging_prio: + c.set(other.c.get()); + break; + case types::ue_radio_cap_for_paging: + c.set(other.c.get >()); + break; + case types::assist_data_for_paging: + c.set(other.c.get()); + break; + case types::paging_e_drx_info: + c.set(other.c.get()); + break; + case types::extended_ue_id_idx_value: + c.set(other.c.get >()); + break; + case types::nb_io_t_paging_e_drx_info: + c.set(other.c.get()); + break; + case types::nb_io_t_ue_id_idx_value: + c.set(other.c.get >()); + break; + case types::enhanced_coverage_restricted: + c.set(other.c.get()); + break; + case types::ce_mode_brestricted: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "paging_ies_o::value_c"); + } + + return *this; +} fixed_bitstring<10, false, true>& paging_ies_o::value_c::ue_id_idx_value() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_id_idx_value, type_, "Value"); return c.get >(); } ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() { - assert_choice_type("UEPagingID", type_.to_string(), "Value"); + assert_choice_type(types::ue_paging_id, type_, "Value"); return c.get(); } paging_drx_e& paging_ies_o::value_c::paging_drx() { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); + assert_choice_type(types::paging_drx, type_, "Value"); return c.get(); } cn_domain_e& paging_ies_o::value_c::cn_domain() { - assert_choice_type("CNDomain", type_.to_string(), "Value"); + assert_choice_type(types::cn_domain, type_, "Value"); return c.get(); } tai_list_l& paging_ies_o::value_c::tai_list() { - assert_choice_type("TAIList", type_.to_string(), "Value"); + assert_choice_type(types::tai_list, type_, "Value"); return c.get(); } csg_id_list_l& paging_ies_o::value_c::csg_id_list() { - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); + assert_choice_type(types::csg_id_list, type_, "Value"); return c.get(); } paging_prio_e& paging_ies_o::value_c::paging_prio() { - assert_choice_type("PagingPriority", type_.to_string(), "Value"); + assert_choice_type(types::paging_prio, type_, "Value"); return c.get(); } unbounded_octstring& paging_ies_o::value_c::ue_radio_cap_for_paging() { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); return c.get >(); } assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() { - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); + assert_choice_type(types::assist_data_for_paging, type_, "Value"); return c.get(); } paging_e_drx_info_s& paging_ies_o::value_c::paging_e_drx_info() { - assert_choice_type("Paging-eDRXInformation", type_.to_string(), "Value"); + assert_choice_type(types::paging_e_drx_info, type_, "Value"); return c.get(); } fixed_bitstring<14, false, true>& paging_ies_o::value_c::extended_ue_id_idx_value() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::extended_ue_id_idx_value, type_, "Value"); return c.get >(); } nb_io_t_paging_e_drx_info_s& paging_ies_o::value_c::nb_io_t_paging_e_drx_info() { - assert_choice_type("NB-IoT-Paging-eDRXInformation", type_.to_string(), "Value"); + assert_choice_type(types::nb_io_t_paging_e_drx_info, type_, "Value"); return c.get(); } fixed_bitstring<12, false, true>& paging_ies_o::value_c::nb_io_t_ue_id_idx_value() { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::nb_io_t_ue_id_idx_value, type_, "Value"); return c.get >(); } enhanced_coverage_restricted_e& paging_ies_o::value_c::enhanced_coverage_restricted() { - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); return c.get(); } ce_mode_brestricted_e& paging_ies_o::value_c::ce_mode_brestricted() { - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); return c.get(); } const fixed_bitstring<10, false, true>& paging_ies_o::value_c::ue_id_idx_value() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_id_idx_value, type_, "Value"); return c.get >(); } const ue_paging_id_c& paging_ies_o::value_c::ue_paging_id() const { - assert_choice_type("UEPagingID", type_.to_string(), "Value"); + assert_choice_type(types::ue_paging_id, type_, "Value"); return c.get(); } const paging_drx_e& paging_ies_o::value_c::paging_drx() const { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); + assert_choice_type(types::paging_drx, type_, "Value"); return c.get(); } const cn_domain_e& paging_ies_o::value_c::cn_domain() const { - assert_choice_type("CNDomain", type_.to_string(), "Value"); + assert_choice_type(types::cn_domain, type_, "Value"); return c.get(); } const tai_list_l& paging_ies_o::value_c::tai_list() const { - assert_choice_type("TAIList", type_.to_string(), "Value"); + assert_choice_type(types::tai_list, type_, "Value"); return c.get(); } const csg_id_list_l& paging_ies_o::value_c::csg_id_list() const { - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); + assert_choice_type(types::csg_id_list, type_, "Value"); return c.get(); } const paging_prio_e& paging_ies_o::value_c::paging_prio() const { - assert_choice_type("PagingPriority", type_.to_string(), "Value"); + assert_choice_type(types::paging_prio, type_, "Value"); return c.get(); } const unbounded_octstring& paging_ies_o::value_c::ue_radio_cap_for_paging() const { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); return c.get >(); } const assist_data_for_paging_s& paging_ies_o::value_c::assist_data_for_paging() const { - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); + assert_choice_type(types::assist_data_for_paging, type_, "Value"); return c.get(); } const paging_e_drx_info_s& paging_ies_o::value_c::paging_e_drx_info() const { - assert_choice_type("Paging-eDRXInformation", type_.to_string(), "Value"); + assert_choice_type(types::paging_e_drx_info, type_, "Value"); return c.get(); } const fixed_bitstring<14, false, true>& paging_ies_o::value_c::extended_ue_id_idx_value() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::extended_ue_id_idx_value, type_, "Value"); return c.get >(); } const nb_io_t_paging_e_drx_info_s& paging_ies_o::value_c::nb_io_t_paging_e_drx_info() const { - assert_choice_type("NB-IoT-Paging-eDRXInformation", type_.to_string(), "Value"); + assert_choice_type(types::nb_io_t_paging_e_drx_info, type_, "Value"); return c.get(); } const fixed_bitstring<12, false, true>& paging_ies_o::value_c::nb_io_t_ue_id_idx_value() const { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); + assert_choice_type(types::nb_io_t_ue_id_idx_value, type_, "Value"); return c.get >(); } const enhanced_coverage_restricted_e& paging_ies_o::value_c::enhanced_coverage_restricted() const { - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); return c.get(); } const ce_mode_brestricted_e& paging_ies_o::value_c::ce_mode_brestricted() const { - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); return c.get(); } -void paging_ies_o::value_c::destroy_() -{ - switch (type_) { - case types::ue_id_idx_value: - c.destroy >(); - break; - case types::ue_paging_id: - c.destroy(); - break; - case types::tai_list: - c.destroy(); - break; - case types::csg_id_list: - c.destroy(); - break; - case types::ue_radio_cap_for_paging: - c.destroy >(); - break; - case types::assist_data_for_paging: - c.destroy(); - break; - case types::paging_e_drx_info: - c.destroy(); - break; - case types::extended_ue_id_idx_value: - c.destroy >(); - break; - case types::nb_io_t_paging_e_drx_info: - c.destroy(); - break; - case types::nb_io_t_ue_id_idx_value: - c.destroy >(); - break; - default: - break; - } -} -void paging_ies_o::value_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::ue_id_idx_value: - c.init >(); - break; - case types::ue_paging_id: - c.init(); - break; - case types::paging_drx: - break; - case types::cn_domain: - break; - case types::tai_list: - c.init(); - break; - case types::csg_id_list: - c.init(); - break; - case types::paging_prio: - break; - case types::ue_radio_cap_for_paging: - c.init >(); - break; - case types::assist_data_for_paging: - c.init(); - break; - case types::paging_e_drx_info: - c.init(); - break; - case types::extended_ue_id_idx_value: - c.init >(); - break; - case types::nb_io_t_paging_e_drx_info: - c.init(); - break; - case types::nb_io_t_ue_id_idx_value: - c.init >(); - break; - case types::enhanced_coverage_restricted: - break; - case types::ce_mode_brestricted: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - } -} -paging_ies_o::value_c::value_c(const paging_ies_o::value_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_id_idx_value: - c.init(other.c.get >()); - break; - case types::ue_paging_id: - c.init(other.c.get()); - break; - case types::paging_drx: - c.init(other.c.get()); - break; - case types::cn_domain: - c.init(other.c.get()); - break; - case types::tai_list: - c.init(other.c.get()); - break; - case types::csg_id_list: - c.init(other.c.get()); - break; - case types::paging_prio: - c.init(other.c.get()); - break; - case types::ue_radio_cap_for_paging: - c.init(other.c.get >()); - break; - case types::assist_data_for_paging: - c.init(other.c.get()); - break; - case types::paging_e_drx_info: - c.init(other.c.get()); - break; - case types::extended_ue_id_idx_value: - c.init(other.c.get >()); - break; - case types::nb_io_t_paging_e_drx_info: - c.init(other.c.get()); - break; - case types::nb_io_t_ue_id_idx_value: - c.init(other.c.get >()); - break; - case types::enhanced_coverage_restricted: - c.init(other.c.get()); - break; - case types::ce_mode_brestricted: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - } -} -paging_ies_o::value_c& paging_ies_o::value_c::operator=(const paging_ies_o::value_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ue_id_idx_value: - c.set(other.c.get >()); - break; - case types::ue_paging_id: - c.set(other.c.get()); - break; - case types::paging_drx: - c.set(other.c.get()); - break; - case types::cn_domain: - c.set(other.c.get()); - break; - case types::tai_list: - c.set(other.c.get()); - break; - case types::csg_id_list: - c.set(other.c.get()); - break; - case types::paging_prio: - c.set(other.c.get()); - break; - case types::ue_radio_cap_for_paging: - c.set(other.c.get >()); - break; - case types::assist_data_for_paging: - c.set(other.c.get()); - break; - case types::paging_e_drx_info: - c.set(other.c.get()); - break; - case types::extended_ue_id_idx_value: - c.set(other.c.get >()); - break; - case types::nb_io_t_paging_e_drx_info: - c.set(other.c.get()); - break; - case types::nb_io_t_ue_id_idx_value: - c.set(other.c.get >()); - break; - case types::enhanced_coverage_restricted: - c.set(other.c.get()); - break; - case types::ce_mode_brestricted: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "paging_ies_o::value_c"); - } - - return *this; -} void paging_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -43392,7 +43705,7 @@ SRSASN_CODE paging_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string paging_ies_o::value_c::types_opts::to_string() const +const char* paging_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"BIT STRING", "UEPagingID", @@ -43604,221 +43917,6 @@ presence_e path_switch_request_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& path_switch_request_ack_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -path_switch_request_ack_ies_o::value_c::erab_to_be_switched_ul_list() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSwitchedULItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -erab_list_l& path_switch_request_ack_ies_o::value_c::erab_to_be_released_list() -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -security_context_s& path_switch_request_ack_ies_o::value_c::security_context() -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id_minus2() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& path_switch_request_ack_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -pro_se_authorized_s& path_switch_request_ack_ies_o::value_c::pro_se_authorized() -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ueuser_plane_cio_tsupport_ind_e& path_switch_request_ack_ies_o::value_c::ueuser_plane_cio_tsupport_ind() -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -v2xservices_authorized_s& path_switch_request_ack_ies_o::value_c::v2xservices_authorized() -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ue_sidelink_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -enhanced_coverage_restricted_e& path_switch_request_ack_ies_o::value_c::enhanced_coverage_restricted() -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -nrue_security_cap_s& path_switch_request_ack_ies_o::value_c::nrue_security_cap() -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -ce_mode_brestricted_e& path_switch_request_ack_ies_o::value_c::ce_mode_brestricted() -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -aerial_uesubscription_info_e& path_switch_request_ack_ies_o::value_c::aerial_uesubscription_info() -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -pending_data_ind_e& path_switch_request_ack_ies_o::value_c::pending_data_ind() -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -subscription_based_ue_differentiation_info_s& -path_switch_request_ack_ies_o::value_c::subscription_based_ue_differentiation_info() -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -ho_restrict_list_s& path_switch_request_ack_ies_o::value_c::ho_restrict_list() -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<32, false, true>& path_switch_request_ack_ies_o::value_c::add_rrm_prio_idx() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& path_switch_request_ack_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -path_switch_request_ack_ies_o::value_c::erab_to_be_switched_ul_list() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSwitchedULItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const erab_list_l& path_switch_request_ack_ies_o::value_c::erab_to_be_released_list() const -{ - assert_choice_type("E-RABList", type_.to_string(), "Value"); - return c.get(); -} -const security_context_s& path_switch_request_ack_ies_o::value_c::security_context() const -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id_minus2() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& path_switch_request_ack_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const pro_se_authorized_s& path_switch_request_ack_ies_o::value_c::pro_se_authorized() const -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ueuser_plane_cio_tsupport_ind_e& path_switch_request_ack_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const -{ - assert_choice_type("UEUserPlaneCIoTSupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -const v2xservices_authorized_s& path_switch_request_ack_ies_o::value_c::v2xservices_authorized() const -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ue_sidelink_aggregate_maximum_bitrate_s& -path_switch_request_ack_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const enhanced_coverage_restricted_e& path_switch_request_ack_ies_o::value_c::enhanced_coverage_restricted() const -{ - assert_choice_type("EnhancedCoverageRestricted", type_.to_string(), "Value"); - return c.get(); -} -const nrue_security_cap_s& path_switch_request_ack_ies_o::value_c::nrue_security_cap() const -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const ce_mode_brestricted_e& path_switch_request_ack_ies_o::value_c::ce_mode_brestricted() const -{ - assert_choice_type("CE-ModeBRestricted", type_.to_string(), "Value"); - return c.get(); -} -const aerial_uesubscription_info_e& path_switch_request_ack_ies_o::value_c::aerial_uesubscription_info() const -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -const pending_data_ind_e& path_switch_request_ack_ies_o::value_c::pending_data_ind() const -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -const subscription_based_ue_differentiation_info_s& -path_switch_request_ack_ies_o::value_c::subscription_based_ue_differentiation_info() const -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -const ho_restrict_list_s& path_switch_request_ack_ies_o::value_c::ho_restrict_list() const -{ - assert_choice_type("HandoverRestrictionList", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<32, false, true>& path_switch_request_ack_ies_o::value_c::add_rrm_prio_idx() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} void path_switch_request_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -44079,142 +44177,357 @@ path_switch_request_ack_ies_o::value_c::operator=(const path_switch_request_ack_ return *this; } -void path_switch_request_ack_ies_o::value_c::to_json(json_writer& j) const +uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id() { - j.start_obj(); - switch (type_) { - case types::mme_ue_s1ap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::enb_ue_s1ap_id: - j.write_int("INTEGER (0..16777215)", c.get()); - break; - case types::ueaggregate_maximum_bitrate: - j.write_fieldname("UEAggregateMaximumBitrate"); - c.get().to_json(j); - break; - case types::erab_to_be_switched_ul_list: - j.write_fieldname("E-RAB-IE-ContainerList{{E-RABToBeSwitchedULItemIEs}}"); - break; - case types::erab_to_be_released_list: - j.start_array("E-RABList"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); - break; - case types::security_context: - j.write_fieldname("SecurityContext"); - c.get().to_json(j); - break; - case types::crit_diagnostics: - j.write_fieldname("CriticalityDiagnostics"); - c.get().to_json(j); - break; - case types::mme_ue_s1ap_id_minus2: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::csg_membership_status: - j.write_str("CSGMembershipStatus", c.get().to_string()); - break; - case types::pro_se_authorized: - j.write_fieldname("ProSeAuthorized"); - c.get().to_json(j); - break; - case types::ueuser_plane_cio_tsupport_ind: - j.write_str("UEUserPlaneCIoTSupportIndicator", "supported"); - break; - case types::v2xservices_authorized: - j.write_fieldname("V2XServicesAuthorized"); - c.get().to_json(j); - break; - case types::ue_sidelink_aggregate_maximum_bitrate: - j.write_fieldname("UESidelinkAggregateMaximumBitrate"); - c.get().to_json(j); - break; - case types::enhanced_coverage_restricted: - j.write_str("EnhancedCoverageRestricted", "restricted"); - break; - case types::nrue_security_cap: - j.write_fieldname("NRUESecurityCapabilities"); - c.get().to_json(j); - break; - case types::ce_mode_brestricted: - j.write_str("CE-ModeBRestricted", c.get().to_string()); - break; - case types::aerial_uesubscription_info: - j.write_str("AerialUEsubscriptionInformation", c.get().to_string()); - break; - case types::pending_data_ind: - j.write_str("PendingDataIndication", "true"); - break; - case types::subscription_based_ue_differentiation_info: - j.write_fieldname("Subscription-Based-UE-DifferentiationInfo"); - c.get().to_json(j); - break; - case types::ho_restrict_list: - j.write_fieldname("HandoverRestrictionList"); - c.get().to_json(j); - break; - case types::add_rrm_prio_idx: - j.write_str("BIT STRING", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); - } - j.end_obj(); + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); } -SRSASN_CODE path_switch_request_ack_ies_o::value_c::pack(bit_ref& bref) const +uint32_t& path_switch_request_ack_ies_o::value_c::enb_ue_s1ap_id() { - varlength_field_pack_guard varlen_scope(bref, true); - switch (type_) { - case types::mme_ue_s1ap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::enb_ue_s1ap_id: - HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)16777215u, false, true)); - break; - case types::ueaggregate_maximum_bitrate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::erab_to_be_switched_ul_list: - HANDLE_CODE( - pack_dyn_seq_of(bref, c.get >(), 1, 256, true)); - break; - case types::erab_to_be_released_list: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); - break; - case types::security_context: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_diagnostics: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::mme_ue_s1ap_id_minus2: - HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); - break; - case types::csg_membership_status: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pro_se_authorized: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ueuser_plane_cio_tsupport_ind: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::v2xservices_authorized: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ue_sidelink_aggregate_maximum_bitrate: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::enhanced_coverage_restricted: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::nrue_security_cap: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::ce_mode_brestricted: + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +path_switch_request_ack_ies_o::value_c::erab_to_be_switched_ul_list() +{ + assert_choice_type(types::erab_to_be_switched_ul_list, type_, "Value"); + return c.get >(); +} +erab_list_l& path_switch_request_ack_ies_o::value_c::erab_to_be_released_list() +{ + assert_choice_type(types::erab_to_be_released_list, type_, "Value"); + return c.get(); +} +security_context_s& path_switch_request_ack_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id_minus2() +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +csg_membership_status_e& path_switch_request_ack_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +pro_se_authorized_s& path_switch_request_ack_ies_o::value_c::pro_se_authorized() +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +ueuser_plane_cio_tsupport_ind_e& path_switch_request_ack_ies_o::value_c::ueuser_plane_cio_tsupport_ind() +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +v2xservices_authorized_s& path_switch_request_ack_ies_o::value_c::v2xservices_authorized() +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +ue_sidelink_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +enhanced_coverage_restricted_e& path_switch_request_ack_ies_o::value_c::enhanced_coverage_restricted() +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +nrue_security_cap_s& path_switch_request_ack_ies_o::value_c::nrue_security_cap() +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +ce_mode_brestricted_e& path_switch_request_ack_ies_o::value_c::ce_mode_brestricted() +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +aerial_uesubscription_info_e& path_switch_request_ack_ies_o::value_c::aerial_uesubscription_info() +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +pending_data_ind_e& path_switch_request_ack_ies_o::value_c::pending_data_ind() +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +subscription_based_ue_differentiation_info_s& +path_switch_request_ack_ies_o::value_c::subscription_based_ue_differentiation_info() +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +ho_restrict_list_s& path_switch_request_ack_ies_o::value_c::ho_restrict_list() +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +fixed_bitstring<32, false, true>& path_switch_request_ack_ies_o::value_c::add_rrm_prio_idx() +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} +const uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& path_switch_request_ack_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& path_switch_request_ack_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +path_switch_request_ack_ies_o::value_c::erab_to_be_switched_ul_list() const +{ + assert_choice_type(types::erab_to_be_switched_ul_list, type_, "Value"); + return c.get >(); +} +const erab_list_l& path_switch_request_ack_ies_o::value_c::erab_to_be_released_list() const +{ + assert_choice_type(types::erab_to_be_released_list, type_, "Value"); + return c.get(); +} +const security_context_s& path_switch_request_ack_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& path_switch_request_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_ack_ies_o::value_c::mme_ue_s1ap_id_minus2() const +{ + assert_choice_type(types::mme_ue_s1ap_id_minus2, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& path_switch_request_ack_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const pro_se_authorized_s& path_switch_request_ack_ies_o::value_c::pro_se_authorized() const +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +const ueuser_plane_cio_tsupport_ind_e& path_switch_request_ack_ies_o::value_c::ueuser_plane_cio_tsupport_ind() const +{ + assert_choice_type(types::ueuser_plane_cio_tsupport_ind, type_, "Value"); + return c.get(); +} +const v2xservices_authorized_s& path_switch_request_ack_ies_o::value_c::v2xservices_authorized() const +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +const ue_sidelink_aggregate_maximum_bitrate_s& +path_switch_request_ack_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const enhanced_coverage_restricted_e& path_switch_request_ack_ies_o::value_c::enhanced_coverage_restricted() const +{ + assert_choice_type(types::enhanced_coverage_restricted, type_, "Value"); + return c.get(); +} +const nrue_security_cap_s& path_switch_request_ack_ies_o::value_c::nrue_security_cap() const +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +const ce_mode_brestricted_e& path_switch_request_ack_ies_o::value_c::ce_mode_brestricted() const +{ + assert_choice_type(types::ce_mode_brestricted, type_, "Value"); + return c.get(); +} +const aerial_uesubscription_info_e& path_switch_request_ack_ies_o::value_c::aerial_uesubscription_info() const +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +const pending_data_ind_e& path_switch_request_ack_ies_o::value_c::pending_data_ind() const +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +const subscription_based_ue_differentiation_info_s& +path_switch_request_ack_ies_o::value_c::subscription_based_ue_differentiation_info() const +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +const ho_restrict_list_s& path_switch_request_ack_ies_o::value_c::ho_restrict_list() const +{ + assert_choice_type(types::ho_restrict_list, type_, "Value"); + return c.get(); +} +const fixed_bitstring<32, false, true>& path_switch_request_ack_ies_o::value_c::add_rrm_prio_idx() const +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} +void path_switch_request_ack_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::mme_ue_s1ap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::enb_ue_s1ap_id: + j.write_int("INTEGER (0..16777215)", c.get()); + break; + case types::ueaggregate_maximum_bitrate: + j.write_fieldname("UEAggregateMaximumBitrate"); + c.get().to_json(j); + break; + case types::erab_to_be_switched_ul_list: + j.write_fieldname("E-RAB-IE-ContainerList{{E-RABToBeSwitchedULItemIEs}}"); + break; + case types::erab_to_be_released_list: + j.start_array("E-RABList"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + case types::security_context: + j.write_fieldname("SecurityContext"); + c.get().to_json(j); + break; + case types::crit_diagnostics: + j.write_fieldname("CriticalityDiagnostics"); + c.get().to_json(j); + break; + case types::mme_ue_s1ap_id_minus2: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::csg_membership_status: + j.write_str("CSGMembershipStatus", c.get().to_string()); + break; + case types::pro_se_authorized: + j.write_fieldname("ProSeAuthorized"); + c.get().to_json(j); + break; + case types::ueuser_plane_cio_tsupport_ind: + j.write_str("UEUserPlaneCIoTSupportIndicator", "supported"); + break; + case types::v2xservices_authorized: + j.write_fieldname("V2XServicesAuthorized"); + c.get().to_json(j); + break; + case types::ue_sidelink_aggregate_maximum_bitrate: + j.write_fieldname("UESidelinkAggregateMaximumBitrate"); + c.get().to_json(j); + break; + case types::enhanced_coverage_restricted: + j.write_str("EnhancedCoverageRestricted", "restricted"); + break; + case types::nrue_security_cap: + j.write_fieldname("NRUESecurityCapabilities"); + c.get().to_json(j); + break; + case types::ce_mode_brestricted: + j.write_str("CE-ModeBRestricted", c.get().to_string()); + break; + case types::aerial_uesubscription_info: + j.write_str("AerialUEsubscriptionInformation", c.get().to_string()); + break; + case types::pending_data_ind: + j.write_str("PendingDataIndication", "true"); + break; + case types::subscription_based_ue_differentiation_info: + j.write_fieldname("Subscription-Based-UE-DifferentiationInfo"); + c.get().to_json(j); + break; + case types::ho_restrict_list: + j.write_fieldname("HandoverRestrictionList"); + c.get().to_json(j); + break; + case types::add_rrm_prio_idx: + j.write_str("BIT STRING", c.get >().to_string()); + break; + default: + log_invalid_choice_id(type_, "path_switch_request_ack_ies_o::value_c"); + } + j.end_obj(); +} +SRSASN_CODE path_switch_request_ack_ies_o::value_c::pack(bit_ref& bref) const +{ + varlength_field_pack_guard varlen_scope(bref, true); + switch (type_) { + case types::mme_ue_s1ap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::enb_ue_s1ap_id: + HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)16777215u, false, true)); + break; + case types::ueaggregate_maximum_bitrate: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::erab_to_be_switched_ul_list: + HANDLE_CODE( + pack_dyn_seq_of(bref, c.get >(), 1, 256, true)); + break; + case types::erab_to_be_released_list: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 256, true)); + break; + case types::security_context: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::crit_diagnostics: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::mme_ue_s1ap_id_minus2: + HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)4294967295u, false, true)); + break; + case types::csg_membership_status: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pro_se_authorized: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ueuser_plane_cio_tsupport_ind: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::v2xservices_authorized: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ue_sidelink_aggregate_maximum_bitrate: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::enhanced_coverage_restricted: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::nrue_security_cap: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::ce_mode_brestricted: HANDLE_CODE(c.get().pack(bref)); break; case types::aerial_uesubscription_info: @@ -44313,7 +44626,7 @@ SRSASN_CODE path_switch_request_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string path_switch_request_ack_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -44410,46 +44723,6 @@ presence_e path_switch_request_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& path_switch_request_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& path_switch_request_fail_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& path_switch_request_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& path_switch_request_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& path_switch_request_fail_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& path_switch_request_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void path_switch_request_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -44534,6 +44807,46 @@ path_switch_request_fail_ies_o::value_c::operator=(const path_switch_request_fai return *this; } +uint64_t& path_switch_request_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& path_switch_request_fail_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& path_switch_request_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& path_switch_request_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& path_switch_request_fail_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& path_switch_request_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& path_switch_request_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void path_switch_request_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -44602,7 +44915,7 @@ SRSASN_CODE path_switch_request_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string path_switch_request_fail_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics"}; @@ -44757,158 +45070,6 @@ presence_e path_switch_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint32_t& path_switch_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -path_switch_request_ies_o::value_c::erab_to_be_switched_dl_list() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSwitchedDLItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -uint64_t& path_switch_request_ies_o::value_c::source_mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -eutran_cgi_s& path_switch_request_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -tai_s& path_switch_request_ies_o::value_c::tai() -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<27, false, true>& path_switch_request_ies_o::value_c::csg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -cell_access_mode_e& path_switch_request_ies_o::value_c::cell_access_mode() -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -gummei_s& path_switch_request_ies_o::value_c::source_mme_gummei() -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& path_switch_request_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -tunnel_info_s& path_switch_request_ies_o::value_c::tunnel_info_for_bbf() -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -bounded_octstring<32, 256, true>& path_switch_request_ies_o::value_c::lhn_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -rrc_establishment_cause_e& path_switch_request_ies_o::value_c::rrc_resume_cause() -{ - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); - return c.get(); -} -nrue_security_cap_s& path_switch_request_ies_o::value_c::nrue_security_cap() -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -ps_cell_info_s& path_switch_request_ies_o::value_c::ps_cell_info() -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& path_switch_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -path_switch_request_ies_o::value_c::erab_to_be_switched_dl_list() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABToBeSwitchedDLItemIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& path_switch_request_ies_o::value_c::source_mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const eutran_cgi_s& path_switch_request_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const tai_s& path_switch_request_ies_o::value_c::tai() const -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -const ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<27, false, true>& path_switch_request_ies_o::value_c::csg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cell_access_mode_e& path_switch_request_ies_o::value_c::cell_access_mode() const -{ - assert_choice_type("CellAccessMode", type_.to_string(), "Value"); - return c.get(); -} -const gummei_s& path_switch_request_ies_o::value_c::source_mme_gummei() const -{ - assert_choice_type("GUMMEI", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& path_switch_request_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const tunnel_info_s& path_switch_request_ies_o::value_c::tunnel_info_for_bbf() const -{ - assert_choice_type("TunnelInformation", type_.to_string(), "Value"); - return c.get(); -} -const bounded_octstring<32, 256, true>& path_switch_request_ies_o::value_c::lhn_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const rrc_establishment_cause_e& path_switch_request_ies_o::value_c::rrc_resume_cause() const -{ - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); - return c.get(); -} -const nrue_security_cap_s& path_switch_request_ies_o::value_c::nrue_security_cap() const -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const ps_cell_info_s& path_switch_request_ies_o::value_c::ps_cell_info() const -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} void path_switch_request_ies_o::value_c::destroy_() { switch (type_) { @@ -45113,29 +45274,181 @@ path_switch_request_ies_o::value_c::operator=(const path_switch_request_ies_o::v return *this; } -void path_switch_request_ies_o::value_c::to_json(json_writer& j) const +uint32_t& path_switch_request_ies_o::value_c::enb_ue_s1ap_id() { - j.start_obj(); - switch (type_) { - case types::enb_ue_s1ap_id: - j.write_int("INTEGER (0..16777215)", c.get()); - break; - case types::erab_to_be_switched_dl_list: - j.write_fieldname("E-RAB-IE-ContainerList{{E-RABToBeSwitchedDLItemIEs}}"); - break; - case types::source_mme_ue_s1ap_id: - j.write_int("INTEGER (0..4294967295)", c.get()); - break; - case types::eutran_cgi: - j.write_fieldname("EUTRAN-CGI"); - c.get().to_json(j); - break; - case types::tai: - j.write_fieldname("TAI"); - c.get().to_json(j); - break; - case types::ue_security_cap: - j.write_fieldname("UESecurityCapabilities"); + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +path_switch_request_ies_o::value_c::erab_to_be_switched_dl_list() +{ + assert_choice_type(types::erab_to_be_switched_dl_list, type_, "Value"); + return c.get >(); +} +uint64_t& path_switch_request_ies_o::value_c::source_mme_ue_s1ap_id() +{ + assert_choice_type(types::source_mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +eutran_cgi_s& path_switch_request_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +tai_s& path_switch_request_ies_o::value_c::tai() +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +fixed_bitstring<27, false, true>& path_switch_request_ies_o::value_c::csg_id() +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +cell_access_mode_e& path_switch_request_ies_o::value_c::cell_access_mode() +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +gummei_s& path_switch_request_ies_o::value_c::source_mme_gummei() +{ + assert_choice_type(types::source_mme_gummei, type_, "Value"); + return c.get(); +} +csg_membership_status_e& path_switch_request_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +tunnel_info_s& path_switch_request_ies_o::value_c::tunnel_info_for_bbf() +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +bounded_octstring<32, 256, true>& path_switch_request_ies_o::value_c::lhn_id() +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +rrc_establishment_cause_e& path_switch_request_ies_o::value_c::rrc_resume_cause() +{ + assert_choice_type(types::rrc_resume_cause, type_, "Value"); + return c.get(); +} +nrue_security_cap_s& path_switch_request_ies_o::value_c::nrue_security_cap() +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +ps_cell_info_s& path_switch_request_ies_o::value_c::ps_cell_info() +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +const uint32_t& path_switch_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +path_switch_request_ies_o::value_c::erab_to_be_switched_dl_list() const +{ + assert_choice_type(types::erab_to_be_switched_dl_list, type_, "Value"); + return c.get >(); +} +const uint64_t& path_switch_request_ies_o::value_c::source_mme_ue_s1ap_id() const +{ + assert_choice_type(types::source_mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const eutran_cgi_s& path_switch_request_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const tai_s& path_switch_request_ies_o::value_c::tai() const +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& path_switch_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const fixed_bitstring<27, false, true>& path_switch_request_ies_o::value_c::csg_id() const +{ + assert_choice_type(types::csg_id, type_, "Value"); + return c.get >(); +} +const cell_access_mode_e& path_switch_request_ies_o::value_c::cell_access_mode() const +{ + assert_choice_type(types::cell_access_mode, type_, "Value"); + return c.get(); +} +const gummei_s& path_switch_request_ies_o::value_c::source_mme_gummei() const +{ + assert_choice_type(types::source_mme_gummei, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& path_switch_request_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const tunnel_info_s& path_switch_request_ies_o::value_c::tunnel_info_for_bbf() const +{ + assert_choice_type(types::tunnel_info_for_bbf, type_, "Value"); + return c.get(); +} +const bounded_octstring<32, 256, true>& path_switch_request_ies_o::value_c::lhn_id() const +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +const rrc_establishment_cause_e& path_switch_request_ies_o::value_c::rrc_resume_cause() const +{ + assert_choice_type(types::rrc_resume_cause, type_, "Value"); + return c.get(); +} +const nrue_security_cap_s& path_switch_request_ies_o::value_c::nrue_security_cap() const +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +const ps_cell_info_s& path_switch_request_ies_o::value_c::ps_cell_info() const +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +void path_switch_request_ies_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::enb_ue_s1ap_id: + j.write_int("INTEGER (0..16777215)", c.get()); + break; + case types::erab_to_be_switched_dl_list: + j.write_fieldname("E-RAB-IE-ContainerList{{E-RABToBeSwitchedDLItemIEs}}"); + break; + case types::source_mme_ue_s1ap_id: + j.write_int("INTEGER (0..4294967295)", c.get()); + break; + case types::eutran_cgi: + j.write_fieldname("EUTRAN-CGI"); + c.get().to_json(j); + break; + case types::tai: + j.write_fieldname("TAI"); + c.get().to_json(j); + break; + case types::ue_security_cap: + j.write_fieldname("UESecurityCapabilities"); c.get().to_json(j); break; case types::csg_id: @@ -45287,7 +45600,7 @@ SRSASN_CODE path_switch_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string path_switch_request_ies_o::value_c::types_opts::to_string() const +const char* path_switch_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..16777215)", "E-RAB-IE-ContainerList{{E-RABToBeSwitchedDLItemIEs}}", @@ -45324,7 +45637,7 @@ SRSASN_CODE s1ap_private_ies_empty_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_private_ies_empty_o::value_c::types_opts::to_string() const +const char* s1ap_private_ies_empty_o::value_c::types_opts::to_string() const { static const char* options[] = {}; return convert_enum_idx(options, 0, value, "s1ap_private_ies_empty_o::value_c::types"); @@ -45415,66 +45728,6 @@ presence_e reroute_nas_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint32_t& reroute_nas_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -uint64_t& reroute_nas_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& reroute_nas_request_ies_o::value_c::s1_msg() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_octstring<2, true>& reroute_nas_request_ies_o::value_c::mme_group_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -add_guti_s& reroute_nas_request_ies_o::value_c::add_guti() -{ - assert_choice_type("Additional-GUTI", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& reroute_nas_request_ies_o::value_c::ue_usage_type() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& reroute_nas_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& reroute_nas_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& reroute_nas_request_ies_o::value_c::s1_msg() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_octstring<2, true>& reroute_nas_request_ies_o::value_c::mme_group_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const add_guti_s& reroute_nas_request_ies_o::value_c::add_guti() const -{ - assert_choice_type("Additional-GUTI", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& reroute_nas_request_ies_o::value_c::ue_usage_type() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} void reroute_nas_request_ies_o::value_c::destroy_() { switch (type_) { @@ -45579,6 +45832,66 @@ reroute_nas_request_ies_o::value_c::operator=(const reroute_nas_request_ies_o::v return *this; } +uint32_t& reroute_nas_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint64_t& reroute_nas_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& reroute_nas_request_ies_o::value_c::s1_msg() +{ + assert_choice_type(types::s1_msg, type_, "Value"); + return c.get >(); +} +fixed_octstring<2, true>& reroute_nas_request_ies_o::value_c::mme_group_id() +{ + assert_choice_type(types::mme_group_id, type_, "Value"); + return c.get >(); +} +add_guti_s& reroute_nas_request_ies_o::value_c::add_guti() +{ + assert_choice_type(types::add_guti, type_, "Value"); + return c.get(); +} +uint16_t& reroute_nas_request_ies_o::value_c::ue_usage_type() +{ + assert_choice_type(types::ue_usage_type, type_, "Value"); + return c.get(); +} +const uint32_t& reroute_nas_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint64_t& reroute_nas_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& reroute_nas_request_ies_o::value_c::s1_msg() const +{ + assert_choice_type(types::s1_msg, type_, "Value"); + return c.get >(); +} +const fixed_octstring<2, true>& reroute_nas_request_ies_o::value_c::mme_group_id() const +{ + assert_choice_type(types::mme_group_id, type_, "Value"); + return c.get >(); +} +const add_guti_s& reroute_nas_request_ies_o::value_c::add_guti() const +{ + assert_choice_type(types::add_guti, type_, "Value"); + return c.get(); +} +const uint16_t& reroute_nas_request_ies_o::value_c::ue_usage_type() const +{ + assert_choice_type(types::ue_usage_type, type_, "Value"); + return c.get(); +} void reroute_nas_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -45664,7 +45977,7 @@ SRSASN_CODE reroute_nas_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string reroute_nas_request_ies_o::value_c::types_opts::to_string() const +const char* reroute_nas_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..16777215)", "INTEGER (0..4294967295)", @@ -45732,26 +46045,6 @@ presence_e reset_ack_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ue_associated_lc_s1_conn_list_res_ack_l& reset_ack_ies_o::value_c::ue_associated_lc_s1_conn_list_res_ack() -{ - assert_choice_type("UE-associatedLogicalS1-ConnectionListResAck", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& reset_ack_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const ue_associated_lc_s1_conn_list_res_ack_l& reset_ack_ies_o::value_c::ue_associated_lc_s1_conn_list_res_ack() const -{ - assert_choice_type("UE-associatedLogicalS1-ConnectionListResAck", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& reset_ack_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void reset_ack_ies_o::value_c::destroy_() { switch (type_) { @@ -45819,6 +46112,26 @@ reset_ack_ies_o::value_c& reset_ack_ies_o::value_c::operator=(const reset_ack_ie return *this; } +ue_associated_lc_s1_conn_list_res_ack_l& reset_ack_ies_o::value_c::ue_associated_lc_s1_conn_list_res_ack() +{ + assert_choice_type(types::ue_associated_lc_s1_conn_list_res_ack, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& reset_ack_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const ue_associated_lc_s1_conn_list_res_ack_l& reset_ack_ies_o::value_c::ue_associated_lc_s1_conn_list_res_ack() const +{ + assert_choice_type(types::ue_associated_lc_s1_conn_list_res_ack, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& reset_ack_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void reset_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -45872,7 +46185,7 @@ SRSASN_CODE reset_ack_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string reset_ack_ies_o::value_c::types_opts::to_string() const +const char* reset_ack_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"UE-associatedLogicalS1-ConnectionListResAck", "CriticalityDiagnostics"}; return convert_enum_idx(options, 2, value, "reset_ack_ies_o::value_c::types"); @@ -45940,26 +46253,6 @@ presence_e reset_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& reset_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -reset_type_c& reset_ies_o::value_c::reset_type() -{ - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& reset_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const reset_type_c& reset_ies_o::value_c::reset_type() const -{ - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); -} void reset_ies_o::value_c::destroy_() { switch (type_) { @@ -46027,6 +46320,26 @@ reset_ies_o::value_c& reset_ies_o::value_c::operator=(const reset_ies_o::value_c return *this; } +cause_c& reset_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +reset_type_c& reset_ies_o::value_c::reset_type() +{ + assert_choice_type(types::reset_type, type_, "Value"); + return c.get(); +} +const cause_c& reset_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const reset_type_c& reset_ies_o::value_c::reset_type() const +{ + assert_choice_type(types::reset_type, type_, "Value"); + return c.get(); +} void reset_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -46077,7 +46390,7 @@ SRSASN_CODE reset_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string reset_ies_o::value_c::types_opts::to_string() const +const char* reset_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Cause", "ResetType"}; return convert_enum_idx(options, 2, value, "reset_ies_o::value_c::types"); @@ -46139,7 +46452,7 @@ SRSASN_CODE retrieve_ue_info_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string retrieve_ue_info_ies_o::value_c::types_opts::to_string() const +const char* retrieve_ue_info_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"S-TMSI"}; return convert_enum_idx(options, 1, value, "retrieve_ue_info_ies_o::value_c::types"); @@ -46209,36 +46522,6 @@ presence_e s1_setup_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -cause_c& s1_setup_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -time_to_wait_e& s1_setup_fail_ies_o::value_c::time_to_wait() -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& s1_setup_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& s1_setup_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const time_to_wait_e& s1_setup_fail_ies_o::value_c::time_to_wait() const -{ - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& s1_setup_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void s1_setup_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -46314,6 +46597,36 @@ s1_setup_fail_ies_o::value_c& s1_setup_fail_ies_o::value_c::operator=(const s1_s return *this; } +cause_c& s1_setup_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +time_to_wait_e& s1_setup_fail_ies_o::value_c::time_to_wait() +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& s1_setup_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const cause_c& s1_setup_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const time_to_wait_e& s1_setup_fail_ies_o::value_c::time_to_wait() const +{ + assert_choice_type(types::time_to_wait, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& s1_setup_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void s1_setup_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -46373,7 +46686,7 @@ SRSASN_CODE s1_setup_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1_setup_fail_ies_o::value_c::types_opts::to_string() const +const char* s1_setup_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Cause", "TimeToWait", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "s1_setup_fail_ies_o::value_c::types"); @@ -46478,86 +46791,6 @@ presence_e s1_setup_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -global_enb_id_s& s1_setup_request_ies_o::value_c::global_enb_id() -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} -printable_string<1, 150, true, true>& s1_setup_request_ies_o::value_c::enbname() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -supported_tas_l& s1_setup_request_ies_o::value_c::supported_tas() -{ - assert_choice_type("SupportedTAs", type_.to_string(), "Value"); - return c.get(); -} -paging_drx_e& s1_setup_request_ies_o::value_c::default_paging_drx() -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -csg_id_list_l& s1_setup_request_ies_o::value_c::csg_id_list() -{ - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); - return c.get(); -} -ue_retention_info_e& s1_setup_request_ies_o::value_c::ue_retention_info() -{ - assert_choice_type("UE-RetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -nb_io_t_default_paging_drx_e& s1_setup_request_ies_o::value_c::nb_io_t_default_paging_drx() -{ - assert_choice_type("NB-IoT-DefaultPagingDRX", type_.to_string(), "Value"); - return c.get(); -} -connectedeng_nb_list_l& s1_setup_request_ies_o::value_c::connectedeng_nb_list() -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} -const global_enb_id_s& s1_setup_request_ies_o::value_c::global_enb_id() const -{ - assert_choice_type("Global-ENB-ID", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& s1_setup_request_ies_o::value_c::enbname() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const supported_tas_l& s1_setup_request_ies_o::value_c::supported_tas() const -{ - assert_choice_type("SupportedTAs", type_.to_string(), "Value"); - return c.get(); -} -const paging_drx_e& s1_setup_request_ies_o::value_c::default_paging_drx() const -{ - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const csg_id_list_l& s1_setup_request_ies_o::value_c::csg_id_list() const -{ - assert_choice_type("CSG-IdList", type_.to_string(), "Value"); - return c.get(); -} -const ue_retention_info_e& s1_setup_request_ies_o::value_c::ue_retention_info() const -{ - assert_choice_type("UE-RetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -const nb_io_t_default_paging_drx_e& s1_setup_request_ies_o::value_c::nb_io_t_default_paging_drx() const -{ - assert_choice_type("NB-IoT-DefaultPagingDRX", type_.to_string(), "Value"); - return c.get(); -} -const connectedeng_nb_list_l& s1_setup_request_ies_o::value_c::connectedeng_nb_list() const -{ - assert_choice_type("ConnectedengNBList", type_.to_string(), "Value"); - return c.get(); -} void s1_setup_request_ies_o::value_c::destroy_() { switch (type_) { @@ -46686,6 +46919,86 @@ s1_setup_request_ies_o::value_c::operator=(const s1_setup_request_ies_o::value_c return *this; } +global_enb_id_s& s1_setup_request_ies_o::value_c::global_enb_id() +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} +printable_string<1, 150, true, true>& s1_setup_request_ies_o::value_c::enbname() +{ + assert_choice_type(types::enbname, type_, "Value"); + return c.get >(); +} +supported_tas_l& s1_setup_request_ies_o::value_c::supported_tas() +{ + assert_choice_type(types::supported_tas, type_, "Value"); + return c.get(); +} +paging_drx_e& s1_setup_request_ies_o::value_c::default_paging_drx() +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +csg_id_list_l& s1_setup_request_ies_o::value_c::csg_id_list() +{ + assert_choice_type(types::csg_id_list, type_, "Value"); + return c.get(); +} +ue_retention_info_e& s1_setup_request_ies_o::value_c::ue_retention_info() +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +nb_io_t_default_paging_drx_e& s1_setup_request_ies_o::value_c::nb_io_t_default_paging_drx() +{ + assert_choice_type(types::nb_io_t_default_paging_drx, type_, "Value"); + return c.get(); +} +connectedeng_nb_list_l& s1_setup_request_ies_o::value_c::connectedeng_nb_list() +{ + assert_choice_type(types::connectedeng_nb_list, type_, "Value"); + return c.get(); +} +const global_enb_id_s& s1_setup_request_ies_o::value_c::global_enb_id() const +{ + assert_choice_type(types::global_enb_id, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& s1_setup_request_ies_o::value_c::enbname() const +{ + assert_choice_type(types::enbname, type_, "Value"); + return c.get >(); +} +const supported_tas_l& s1_setup_request_ies_o::value_c::supported_tas() const +{ + assert_choice_type(types::supported_tas, type_, "Value"); + return c.get(); +} +const paging_drx_e& s1_setup_request_ies_o::value_c::default_paging_drx() const +{ + assert_choice_type(types::default_paging_drx, type_, "Value"); + return c.get(); +} +const csg_id_list_l& s1_setup_request_ies_o::value_c::csg_id_list() const +{ + assert_choice_type(types::csg_id_list, type_, "Value"); + return c.get(); +} +const ue_retention_info_e& s1_setup_request_ies_o::value_c::ue_retention_info() const +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +const nb_io_t_default_paging_drx_e& s1_setup_request_ies_o::value_c::nb_io_t_default_paging_drx() const +{ + assert_choice_type(types::nb_io_t_default_paging_drx, type_, "Value"); + return c.get(); +} +const connectedeng_nb_list_l& s1_setup_request_ies_o::value_c::connectedeng_nb_list() const +{ + assert_choice_type(types::connectedeng_nb_list, type_, "Value"); + return c.get(); +} void s1_setup_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -46801,7 +47114,7 @@ SRSASN_CODE s1_setup_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1_setup_request_ies_o::value_c::types_opts::to_string() const +const char* s1_setup_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"Global-ENB-ID", "PrintableString", @@ -46906,76 +47219,6 @@ presence_e s1_setup_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -printable_string<1, 150, true, true>& s1_setup_resp_ies_o::value_c::mm_ename() -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -served_gummeis_l& s1_setup_resp_ies_o::value_c::served_gummeis() -{ - assert_choice_type("ServedGUMMEIs", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& s1_setup_resp_ies_o::value_c::relative_mme_capacity() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -mme_relay_support_ind_e& s1_setup_resp_ies_o::value_c::mme_relay_support_ind() -{ - assert_choice_type("MMERelaySupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& s1_setup_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -ue_retention_info_e& s1_setup_resp_ies_o::value_c::ue_retention_info() -{ - assert_choice_type("UE-RetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -served_dcns_l& s1_setup_resp_ies_o::value_c::served_dcns() -{ - assert_choice_type("ServedDCNs", type_.to_string(), "Value"); - return c.get(); -} -const printable_string<1, 150, true, true>& s1_setup_resp_ies_o::value_c::mm_ename() const -{ - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); -} -const served_gummeis_l& s1_setup_resp_ies_o::value_c::served_gummeis() const -{ - assert_choice_type("ServedGUMMEIs", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& s1_setup_resp_ies_o::value_c::relative_mme_capacity() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const mme_relay_support_ind_e& s1_setup_resp_ies_o::value_c::mme_relay_support_ind() const -{ - assert_choice_type("MMERelaySupportIndicator", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& s1_setup_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const ue_retention_info_e& s1_setup_resp_ies_o::value_c::ue_retention_info() const -{ - assert_choice_type("UE-RetentionInformation", type_.to_string(), "Value"); - return c.get(); -} -const served_dcns_l& s1_setup_resp_ies_o::value_c::served_dcns() const -{ - assert_choice_type("ServedDCNs", type_.to_string(), "Value"); - return c.get(); -} void s1_setup_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -47091,6 +47334,76 @@ s1_setup_resp_ies_o::value_c& s1_setup_resp_ies_o::value_c::operator=(const s1_s return *this; } +printable_string<1, 150, true, true>& s1_setup_resp_ies_o::value_c::mm_ename() +{ + assert_choice_type(types::mm_ename, type_, "Value"); + return c.get >(); +} +served_gummeis_l& s1_setup_resp_ies_o::value_c::served_gummeis() +{ + assert_choice_type(types::served_gummeis, type_, "Value"); + return c.get(); +} +uint16_t& s1_setup_resp_ies_o::value_c::relative_mme_capacity() +{ + assert_choice_type(types::relative_mme_capacity, type_, "Value"); + return c.get(); +} +mme_relay_support_ind_e& s1_setup_resp_ies_o::value_c::mme_relay_support_ind() +{ + assert_choice_type(types::mme_relay_support_ind, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& s1_setup_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +ue_retention_info_e& s1_setup_resp_ies_o::value_c::ue_retention_info() +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +served_dcns_l& s1_setup_resp_ies_o::value_c::served_dcns() +{ + assert_choice_type(types::served_dcns, type_, "Value"); + return c.get(); +} +const printable_string<1, 150, true, true>& s1_setup_resp_ies_o::value_c::mm_ename() const +{ + assert_choice_type(types::mm_ename, type_, "Value"); + return c.get >(); +} +const served_gummeis_l& s1_setup_resp_ies_o::value_c::served_gummeis() const +{ + assert_choice_type(types::served_gummeis, type_, "Value"); + return c.get(); +} +const uint16_t& s1_setup_resp_ies_o::value_c::relative_mme_capacity() const +{ + assert_choice_type(types::relative_mme_capacity, type_, "Value"); + return c.get(); +} +const mme_relay_support_ind_e& s1_setup_resp_ies_o::value_c::mme_relay_support_ind() const +{ + assert_choice_type(types::mme_relay_support_ind, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& s1_setup_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const ue_retention_info_e& s1_setup_resp_ies_o::value_c::ue_retention_info() const +{ + assert_choice_type(types::ue_retention_info, type_, "Value"); + return c.get(); +} +const served_dcns_l& s1_setup_resp_ies_o::value_c::served_dcns() const +{ + assert_choice_type(types::served_dcns, type_, "Value"); + return c.get(); +} void s1_setup_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -47193,7 +47506,7 @@ SRSASN_CODE s1_setup_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1_setup_resp_ies_o::value_c::types_opts::to_string() const +const char* s1_setup_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"PrintableString", "ServedGUMMEIs", @@ -47298,69 +47611,6 @@ presence_e secondary_rat_data_usage_report_ies_o::get_presence(const uint32_t& i } // Value ::= OPEN TYPE -uint64_t& secondary_rat_data_usage_report_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& secondary_rat_data_usage_report_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& -secondary_rat_data_usage_report_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() -{ - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& secondary_rat_data_usage_report_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<4, true>& secondary_rat_data_usage_report_ies_o::value_c::time_since_secondary_node_release() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& secondary_rat_data_usage_report_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -secondary_rat_data_usage_report_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() const -{ - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& secondary_rat_data_usage_report_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<4, true>& -secondary_rat_data_usage_report_ies_o::value_c::time_since_secondary_node_release() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void secondary_rat_data_usage_report_ies_o::value_c::destroy_() { switch (type_) { @@ -47465,6 +47715,69 @@ secondary_rat_data_usage_report_ies_o::value_c::operator=(const secondary_rat_da return *this; } +uint64_t& secondary_rat_data_usage_report_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& secondary_rat_data_usage_report_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& +secondary_rat_data_usage_report_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() +{ + assert_choice_type(types::ho_flag, type_, "Value"); + return c.get(); +} +user_location_info_s& secondary_rat_data_usage_report_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +fixed_octstring<4, true>& secondary_rat_data_usage_report_ies_o::value_c::time_since_secondary_node_release() +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} +const uint64_t& secondary_rat_data_usage_report_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& secondary_rat_data_usage_report_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +secondary_rat_data_usage_report_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const ho_flag_e& secondary_rat_data_usage_report_ies_o::value_c::ho_flag() const +{ + assert_choice_type(types::ho_flag, type_, "Value"); + return c.get(); +} +const user_location_info_s& secondary_rat_data_usage_report_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const fixed_octstring<4, true>& +secondary_rat_data_usage_report_ies_o::value_c::time_since_secondary_node_release() const +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} void secondary_rat_data_usage_report_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -47554,7 +47867,7 @@ SRSASN_CODE secondary_rat_data_usage_report_ies_o::value_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string secondary_rat_data_usage_report_ies_o::value_c::types_opts::to_string() const +const char* secondary_rat_data_usage_report_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -47636,46 +47949,6 @@ presence_e trace_fail_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& trace_fail_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& trace_fail_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::e_utran_trace_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -cause_c& trace_fail_ind_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_fail_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& trace_fail_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::e_utran_trace_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cause_c& trace_fail_ind_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void trace_fail_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -47759,6 +48032,46 @@ trace_fail_ind_ies_o::value_c& trace_fail_ind_ies_o::value_c::operator=(const tr return *this; } +uint64_t& trace_fail_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& trace_fail_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::e_utran_trace_id() +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} +cause_c& trace_fail_ind_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const uint64_t& trace_fail_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& trace_fail_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const fixed_octstring<8, true>& trace_fail_ind_ies_o::value_c::e_utran_trace_id() const +{ + assert_choice_type(types::e_utran_trace_id, type_, "Value"); + return c.get >(); +} +const cause_c& trace_fail_ind_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void trace_fail_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -47826,7 +48139,7 @@ SRSASN_CODE trace_fail_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string trace_fail_ind_ies_o::value_c::types_opts::to_string() const +const char* trace_fail_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "OCTET STRING", "Cause"}; return convert_enum_idx(options, 4, value, "trace_fail_ind_ies_o::value_c::types"); @@ -47896,36 +48209,6 @@ presence_e trace_start_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& trace_start_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& trace_start_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -trace_activation_s& trace_start_ies_o::value_c::trace_activation() -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& trace_start_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& trace_start_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const trace_activation_s& trace_start_ies_o::value_c::trace_activation() const -{ - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); -} void trace_start_ies_o::value_c::destroy_() { switch (type_) { @@ -47997,6 +48280,36 @@ trace_start_ies_o::value_c& trace_start_ies_o::value_c::operator=(const trace_st return *this; } +uint64_t& trace_start_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& trace_start_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +trace_activation_s& trace_start_ies_o::value_c::trace_activation() +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} +const uint64_t& trace_start_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& trace_start_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const trace_activation_s& trace_start_ies_o::value_c::trace_activation() const +{ + assert_choice_type(types::trace_activation, type_, "Value"); + return c.get(); +} void trace_start_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -48055,7 +48368,7 @@ SRSASN_CODE trace_start_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string trace_start_ies_o::value_c::types_opts::to_string() const +const char* trace_start_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "TraceActivation"}; return convert_enum_idx(options, 3, value, "trace_start_ies_o::value_c::types"); @@ -48146,66 +48459,6 @@ presence_e ue_cap_info_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_cap_info_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_cap_info_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<8, false, true>& ue_cap_info_ind_ies_o::value_c::ue_application_layer_meas_cap() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -lte_m_ind_e& ue_cap_info_ind_ies_o::value_c::lte_m_ind() -{ - assert_choice_type("LTE-M-Indication", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_cap_info_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_cap_info_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<8, false, true>& ue_cap_info_ind_ies_o::value_c::ue_application_layer_meas_cap() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const lte_m_ind_e& ue_cap_info_ind_ies_o::value_c::lte_m_ind() const -{ - assert_choice_type("LTE-M-Indication", type_.to_string(), "Value"); - return c.get(); -} void ue_cap_info_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -48309,6 +48562,66 @@ ue_cap_info_ind_ies_o::value_c& ue_cap_info_ind_ies_o::value_c::operator=(const return *this; } +uint64_t& ue_cap_info_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_cap_info_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get >(); +} +fixed_bitstring<8, false, true>& ue_cap_info_ind_ies_o::value_c::ue_application_layer_meas_cap() +{ + assert_choice_type(types::ue_application_layer_meas_cap, type_, "Value"); + return c.get >(); +} +lte_m_ind_e& ue_cap_info_ind_ies_o::value_c::lte_m_ind() +{ + assert_choice_type(types::lte_m_ind, type_, "Value"); + return c.get(); +} +const uint64_t& ue_cap_info_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_cap_info_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ue_cap_info_ind_ies_o::value_c::ue_radio_cap_for_paging() const +{ + assert_choice_type(types::ue_radio_cap_for_paging, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<8, false, true>& ue_cap_info_ind_ies_o::value_c::ue_application_layer_meas_cap() const +{ + assert_choice_type(types::ue_application_layer_meas_cap, type_, "Value"); + return c.get >(); +} +const lte_m_ind_e& ue_cap_info_ind_ies_o::value_c::lte_m_ind() const +{ + assert_choice_type(types::lte_m_ind, type_, "Value"); + return c.get(); +} void ue_cap_info_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -48393,7 +48706,7 @@ SRSASN_CODE ue_cap_info_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_cap_info_ind_ies_o::value_c::types_opts::to_string() const +const char* ue_cap_info_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -48475,46 +48788,6 @@ presence_e ue_context_mod_confirm_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& ue_context_mod_confirm_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_mod_confirm_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& ue_context_mod_confirm_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_mod_confirm_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ue_context_mod_confirm_ies_o::value_c::destroy_() { switch (type_) { @@ -48595,6 +48868,46 @@ ue_context_mod_confirm_ies_o::value_c::operator=(const ue_context_mod_confirm_ie return *this; } +uint64_t& ue_context_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +csg_membership_status_e& ue_context_mod_confirm_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_mod_confirm_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_confirm_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_mod_confirm_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& ue_context_mod_confirm_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_mod_confirm_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ue_context_mod_confirm_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -48662,7 +48975,7 @@ SRSASN_CODE ue_context_mod_confirm_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_mod_confirm_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_confirm_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "CSGMembershipStatus", "CriticalityDiagnostics"}; @@ -48740,46 +49053,6 @@ presence_e ue_context_mod_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_mod_fail_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_mod_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_mod_fail_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_mod_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ue_context_mod_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -48864,6 +49137,46 @@ ue_context_mod_fail_ies_o::value_c::operator=(const ue_context_mod_fail_ies_o::v return *this; } +uint64_t& ue_context_mod_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_mod_fail_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ue_context_mod_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_mod_fail_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_mod_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_mod_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ue_context_mod_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -48932,7 +49245,7 @@ SRSASN_CODE ue_context_mod_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_mod_fail_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics"}; @@ -49003,36 +49316,6 @@ presence_e ue_context_mod_ind_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_ind_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_mod_ind_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_info_s& ue_context_mod_ind_ies_o::value_c::csg_membership_info() -{ - assert_choice_type("CSGMembershipInfo", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_ind_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_mod_ind_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_info_s& ue_context_mod_ind_ies_o::value_c::csg_membership_info() const -{ - assert_choice_type("CSGMembershipInfo", type_.to_string(), "Value"); - return c.get(); -} void ue_context_mod_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -49105,6 +49388,36 @@ ue_context_mod_ind_ies_o::value_c::operator=(const ue_context_mod_ind_ies_o::val return *this; } +uint64_t& ue_context_mod_ind_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_mod_ind_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +csg_membership_info_s& ue_context_mod_ind_ies_o::value_c::csg_membership_info() +{ + assert_choice_type(types::csg_membership_info, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_ind_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_mod_ind_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const csg_membership_info_s& ue_context_mod_ind_ies_o::value_c::csg_membership_info() const +{ + assert_choice_type(types::csg_membership_info, type_, "Value"); + return c.get(); +} void ue_context_mod_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -49163,7 +49476,7 @@ SRSASN_CODE ue_context_mod_ind_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_mod_ind_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_ind_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "CSGMembershipInfo"}; return convert_enum_idx(options, 3, value, "ue_context_mod_ind_ies_o::value_c::types"); @@ -49340,187 +49653,6 @@ presence_e ue_context_mod_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_mod_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -uint16_t& ue_context_mod_request_ies_o::value_c::subscriber_profile_idfor_rfp() -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -ue_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ueaggregate_maximum_bitrate() -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::cs_fallback_ind() -{ - assert_choice_type("CSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -csg_membership_status_e& ue_context_mod_request_ies_o::value_c::csg_membership_status() -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -lai_s& ue_context_mod_request_ies_o::value_c::registered_lai() -{ - assert_choice_type("LAI", type_.to_string(), "Value"); - return c.get(); -} -add_cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::add_cs_fallback_ind() -{ - assert_choice_type("AdditionalCSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -pro_se_authorized_s& ue_context_mod_request_ies_o::value_c::pro_se_authorized() -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -srvcc_operation_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_possible() -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -srvcc_operation_not_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_not_possible() -{ - assert_choice_type("SRVCCOperationNotPossible", type_.to_string(), "Value"); - return c.get(); -} -v2xservices_authorized_s& ue_context_mod_request_ies_o::value_c::v2xservices_authorized() -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -ue_sidelink_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -nrue_security_cap_s& ue_context_mod_request_ies_o::value_c::nrue_security_cap() -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -aerial_uesubscription_info_e& ue_context_mod_request_ies_o::value_c::aerial_uesubscription_info() -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -fixed_bitstring<32, false, true>& ue_context_mod_request_ies_o::value_c::add_rrm_prio_idx() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ue_context_mod_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_mod_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& ue_context_mod_request_ies_o::value_c::subscriber_profile_idfor_rfp() const -{ - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); -} -const ue_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ueaggregate_maximum_bitrate() const -{ - assert_choice_type("UEAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::cs_fallback_ind() const -{ - assert_choice_type("CSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -const ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() const -{ - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const csg_membership_status_e& ue_context_mod_request_ies_o::value_c::csg_membership_status() const -{ - assert_choice_type("CSGMembershipStatus", type_.to_string(), "Value"); - return c.get(); -} -const lai_s& ue_context_mod_request_ies_o::value_c::registered_lai() const -{ - assert_choice_type("LAI", type_.to_string(), "Value"); - return c.get(); -} -const add_cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::add_cs_fallback_ind() const -{ - assert_choice_type("AdditionalCSFallbackIndicator", type_.to_string(), "Value"); - return c.get(); -} -const pro_se_authorized_s& ue_context_mod_request_ies_o::value_c::pro_se_authorized() const -{ - assert_choice_type("ProSeAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const srvcc_operation_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_possible() const -{ - assert_choice_type("SRVCCOperationPossible", type_.to_string(), "Value"); - return c.get(); -} -const srvcc_operation_not_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_not_possible() const -{ - assert_choice_type("SRVCCOperationNotPossible", type_.to_string(), "Value"); - return c.get(); -} -const v2xservices_authorized_s& ue_context_mod_request_ies_o::value_c::v2xservices_authorized() const -{ - assert_choice_type("V2XServicesAuthorized", type_.to_string(), "Value"); - return c.get(); -} -const ue_sidelink_aggregate_maximum_bitrate_s& -ue_context_mod_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const -{ - assert_choice_type("UESidelinkAggregateMaximumBitrate", type_.to_string(), "Value"); - return c.get(); -} -const nrue_security_cap_s& ue_context_mod_request_ies_o::value_c::nrue_security_cap() const -{ - assert_choice_type("NRUESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); -} -const aerial_uesubscription_info_e& ue_context_mod_request_ies_o::value_c::aerial_uesubscription_info() const -{ - assert_choice_type("AerialUEsubscriptionInformation", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<32, false, true>& ue_context_mod_request_ies_o::value_c::add_rrm_prio_idx() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} void ue_context_mod_request_ies_o::value_c::destroy_() { switch (type_) { @@ -49745,6 +49877,187 @@ ue_context_mod_request_ies_o::value_c::operator=(const ue_context_mod_request_ie return *this; } +uint64_t& ue_context_mod_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_mod_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +uint16_t& ue_context_mod_request_ies_o::value_c::subscriber_profile_idfor_rfp() +{ + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); + return c.get(); +} +ue_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ueaggregate_maximum_bitrate() +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::cs_fallback_ind() +{ + assert_choice_type(types::cs_fallback_ind, type_, "Value"); + return c.get(); +} +ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +csg_membership_status_e& ue_context_mod_request_ies_o::value_c::csg_membership_status() +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +lai_s& ue_context_mod_request_ies_o::value_c::registered_lai() +{ + assert_choice_type(types::registered_lai, type_, "Value"); + return c.get(); +} +add_cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::add_cs_fallback_ind() +{ + assert_choice_type(types::add_cs_fallback_ind, type_, "Value"); + return c.get(); +} +pro_se_authorized_s& ue_context_mod_request_ies_o::value_c::pro_se_authorized() +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +srvcc_operation_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_possible() +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +srvcc_operation_not_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_not_possible() +{ + assert_choice_type(types::srvcc_operation_not_possible, type_, "Value"); + return c.get(); +} +v2xservices_authorized_s& ue_context_mod_request_ies_o::value_c::v2xservices_authorized() +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +ue_sidelink_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +nrue_security_cap_s& ue_context_mod_request_ies_o::value_c::nrue_security_cap() +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +aerial_uesubscription_info_e& ue_context_mod_request_ies_o::value_c::aerial_uesubscription_info() +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +fixed_bitstring<32, false, true>& ue_context_mod_request_ies_o::value_c::add_rrm_prio_idx() +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} +const uint64_t& ue_context_mod_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_mod_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const fixed_bitstring<256, false, true>& ue_context_mod_request_ies_o::value_c::security_key() const +{ + assert_choice_type(types::security_key, type_, "Value"); + return c.get >(); +} +const uint16_t& ue_context_mod_request_ies_o::value_c::subscriber_profile_idfor_rfp() const +{ + assert_choice_type(types::subscriber_profile_idfor_rfp, type_, "Value"); + return c.get(); +} +const ue_aggregate_maximum_bitrate_s& ue_context_mod_request_ies_o::value_c::ueaggregate_maximum_bitrate() const +{ + assert_choice_type(types::ueaggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::cs_fallback_ind() const +{ + assert_choice_type(types::cs_fallback_ind, type_, "Value"); + return c.get(); +} +const ue_security_cap_s& ue_context_mod_request_ies_o::value_c::ue_security_cap() const +{ + assert_choice_type(types::ue_security_cap, type_, "Value"); + return c.get(); +} +const csg_membership_status_e& ue_context_mod_request_ies_o::value_c::csg_membership_status() const +{ + assert_choice_type(types::csg_membership_status, type_, "Value"); + return c.get(); +} +const lai_s& ue_context_mod_request_ies_o::value_c::registered_lai() const +{ + assert_choice_type(types::registered_lai, type_, "Value"); + return c.get(); +} +const add_cs_fallback_ind_e& ue_context_mod_request_ies_o::value_c::add_cs_fallback_ind() const +{ + assert_choice_type(types::add_cs_fallback_ind, type_, "Value"); + return c.get(); +} +const pro_se_authorized_s& ue_context_mod_request_ies_o::value_c::pro_se_authorized() const +{ + assert_choice_type(types::pro_se_authorized, type_, "Value"); + return c.get(); +} +const srvcc_operation_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_possible() const +{ + assert_choice_type(types::srvcc_operation_possible, type_, "Value"); + return c.get(); +} +const srvcc_operation_not_possible_e& ue_context_mod_request_ies_o::value_c::srvcc_operation_not_possible() const +{ + assert_choice_type(types::srvcc_operation_not_possible, type_, "Value"); + return c.get(); +} +const v2xservices_authorized_s& ue_context_mod_request_ies_o::value_c::v2xservices_authorized() const +{ + assert_choice_type(types::v2xservices_authorized, type_, "Value"); + return c.get(); +} +const ue_sidelink_aggregate_maximum_bitrate_s& +ue_context_mod_request_ies_o::value_c::ue_sidelink_aggregate_maximum_bitrate() const +{ + assert_choice_type(types::ue_sidelink_aggregate_maximum_bitrate, type_, "Value"); + return c.get(); +} +const nrue_security_cap_s& ue_context_mod_request_ies_o::value_c::nrue_security_cap() const +{ + assert_choice_type(types::nrue_security_cap, type_, "Value"); + return c.get(); +} +const aerial_uesubscription_info_e& ue_context_mod_request_ies_o::value_c::aerial_uesubscription_info() const +{ + assert_choice_type(types::aerial_uesubscription_info, type_, "Value"); + return c.get(); +} +const fixed_bitstring<32, false, true>& ue_context_mod_request_ies_o::value_c::add_rrm_prio_idx() const +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Value"); + return c.get >(); +} void ue_context_mod_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -49944,7 +50257,7 @@ SRSASN_CODE ue_context_mod_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_mod_request_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -50031,36 +50344,6 @@ presence_e ue_context_mod_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_mod_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_mod_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_mod_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_mod_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ue_context_mod_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -50133,6 +50416,36 @@ ue_context_mod_resp_ies_o::value_c::operator=(const ue_context_mod_resp_ies_o::v return *this; } +uint64_t& ue_context_mod_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_mod_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_mod_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_mod_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ue_context_mod_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -50191,7 +50504,7 @@ SRSASN_CODE ue_context_mod_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_mod_resp_ies_o::value_c::types_opts::to_string() const +const char* ue_context_mod_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "CriticalityDiagnostics"}; return convert_enum_idx(options, 3, value, "ue_context_mod_resp_ies_o::value_c::types"); @@ -50254,26 +50567,6 @@ presence_e ue_context_release_cmd_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -ue_s1ap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_s1ap_ids() -{ - assert_choice_type("UE-S1AP-IDs", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_release_cmd_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const ue_s1ap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_s1ap_ids() const -{ - assert_choice_type("UE-S1AP-IDs", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_release_cmd_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} void ue_context_release_cmd_ies_o::value_c::destroy_() { switch (type_) { @@ -50342,6 +50635,26 @@ ue_context_release_cmd_ies_o::value_c::operator=(const ue_context_release_cmd_ie return *this; } +ue_s1ap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_s1ap_ids() +{ + assert_choice_type(types::ue_s1ap_ids, type_, "Value"); + return c.get(); +} +cause_c& ue_context_release_cmd_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const ue_s1ap_ids_c& ue_context_release_cmd_ies_o::value_c::ue_s1ap_ids() const +{ + assert_choice_type(types::ue_s1ap_ids, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_release_cmd_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} void ue_context_release_cmd_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -50392,7 +50705,7 @@ SRSASN_CODE ue_context_release_cmd_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_release_cmd_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_cmd_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"UE-S1AP-IDs", "Cause"}; return convert_enum_idx(options, 2, value, "ue_context_release_cmd_ies_o::value_c::types"); @@ -50502,92 +50815,6 @@ presence_e ue_context_release_complete_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_release_complete_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_release_complete_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& ue_context_release_complete_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -info_on_recommended_cells_and_enbs_for_paging_s& -ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() -{ - assert_choice_type("InformationOnRecommendedCellsAndENBsForPaging", type_.to_string(), "Value"); - return c.get(); -} -cell_id_and_ce_level_for_ce_capable_ues_s& -ue_context_release_complete_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() -{ - assert_choice_type("CellIdentifierAndCELevelForCECapableUEs", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& -ue_context_release_complete_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<4, true>& ue_context_release_complete_ies_o::value_c::time_since_secondary_node_release() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ue_context_release_complete_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_release_complete_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& ue_context_release_complete_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const info_on_recommended_cells_and_enbs_for_paging_s& -ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() const -{ - assert_choice_type("InformationOnRecommendedCellsAndENBsForPaging", type_.to_string(), "Value"); - return c.get(); -} -const cell_id_and_ce_level_for_ce_capable_ues_s& -ue_context_release_complete_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() const -{ - assert_choice_type("CellIdentifierAndCELevelForCECapableUEs", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -ue_context_release_complete_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<4, true>& ue_context_release_complete_ies_o::value_c::time_since_secondary_node_release() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void ue_context_release_complete_ies_o::value_c::destroy_() { switch (type_) { @@ -50720,6 +50947,92 @@ ue_context_release_complete_ies_o::value_c::operator=(const ue_context_release_c return *this; } +uint64_t& ue_context_release_complete_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_release_complete_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +user_location_info_s& ue_context_release_complete_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +info_on_recommended_cells_and_enbs_for_paging_s& +ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() +{ + assert_choice_type(types::info_on_recommended_cells_and_enbs_for_paging, type_, "Value"); + return c.get(); +} +cell_id_and_ce_level_for_ce_capable_ues_s& +ue_context_release_complete_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() +{ + assert_choice_type(types::cell_id_and_ce_level_for_ce_capable_ues, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& +ue_context_release_complete_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +fixed_octstring<4, true>& ue_context_release_complete_ies_o::value_c::time_since_secondary_node_release() +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} +const uint64_t& ue_context_release_complete_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_release_complete_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_release_complete_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const user_location_info_s& ue_context_release_complete_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const info_on_recommended_cells_and_enbs_for_paging_s& +ue_context_release_complete_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() const +{ + assert_choice_type(types::info_on_recommended_cells_and_enbs_for_paging, type_, "Value"); + return c.get(); +} +const cell_id_and_ce_level_for_ce_capable_ues_s& +ue_context_release_complete_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() const +{ + assert_choice_type(types::cell_id_and_ce_level_for_ce_capable_ues, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +ue_context_release_complete_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const fixed_octstring<4, true>& ue_context_release_complete_ies_o::value_c::time_since_secondary_node_release() const +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} void ue_context_release_complete_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -50830,7 +51143,7 @@ SRSASN_CODE ue_context_release_complete_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_release_complete_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_complete_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -50921,58 +51234,6 @@ presence_e ue_context_release_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_release_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_release_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_release_request_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -gw_context_release_ind_e& ue_context_release_request_ies_o::value_c::gw_context_release_ind() -{ - assert_choice_type("GWContextReleaseIndication", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& -ue_context_release_request_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_release_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_release_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_release_request_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const gw_context_release_ind_e& ue_context_release_request_ies_o::value_c::gw_context_release_ind() const -{ - assert_choice_type("GWContextReleaseIndication", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -ue_context_release_request_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} void ue_context_release_request_ies_o::value_c::destroy_() { switch (type_) { @@ -51065,6 +51326,58 @@ ue_context_release_request_ies_o::value_c::operator=(const ue_context_release_re return *this; } +uint64_t& ue_context_release_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_release_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ue_context_release_request_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +gw_context_release_ind_e& ue_context_release_request_ies_o::value_c::gw_context_release_ind() +{ + assert_choice_type(types::gw_context_release_ind, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& +ue_context_release_request_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_release_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_release_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_release_request_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const gw_context_release_ind_e& ue_context_release_request_ies_o::value_c::gw_context_release_ind() const +{ + assert_choice_type(types::gw_context_release_ind, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +ue_context_release_request_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} void ue_context_release_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -51145,7 +51458,7 @@ SRSASN_CODE ue_context_release_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_release_request_ies_o::value_c::types_opts::to_string() const +const char* ue_context_release_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -51226,46 +51539,6 @@ presence_e ue_context_resume_fail_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_resume_fail_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_resume_fail_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cause_c& ue_context_resume_fail_ies_o::value_c::cause() -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_resume_fail_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_resume_fail_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_resume_fail_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cause_c& ue_context_resume_fail_ies_o::value_c::cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_resume_fail_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ue_context_resume_fail_ies_o::value_c::destroy_() { switch (type_) { @@ -51350,6 +51623,46 @@ ue_context_resume_fail_ies_o::value_c::operator=(const ue_context_resume_fail_ie return *this; } +uint64_t& ue_context_resume_fail_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_resume_fail_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cause_c& ue_context_resume_fail_ies_o::value_c::cause() +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_resume_fail_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_resume_fail_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_resume_fail_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cause_c& ue_context_resume_fail_ies_o::value_c::cause() const +{ + assert_choice_type(types::cause, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_resume_fail_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ue_context_resume_fail_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -51418,7 +51731,7 @@ SRSASN_CODE ue_context_resume_fail_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_resume_fail_ies_o::value_c::types_opts::to_string() const +const char* ue_context_resume_fail_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "Cause", "CriticalityDiagnostics"}; @@ -51496,48 +51809,6 @@ presence_e ue_context_resume_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_resume_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_resume_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -ue_context_resume_request_ies_o::value_c::erab_failed_to_resume_list_resume_req() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedToResumeItemResumeReqIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -rrc_establishment_cause_e& ue_context_resume_request_ies_o::value_c::rrc_resume_cause() -{ - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_resume_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_resume_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -ue_context_resume_request_ies_o::value_c::erab_failed_to_resume_list_resume_req() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedToResumeItemResumeReqIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const rrc_establishment_cause_e& ue_context_resume_request_ies_o::value_c::rrc_resume_cause() const -{ - assert_choice_type("RRC-Establishment-Cause", type_.to_string(), "Value"); - return c.get(); -} void ue_context_resume_request_ies_o::value_c::destroy_() { switch (type_) { @@ -51618,6 +51889,48 @@ ue_context_resume_request_ies_o::value_c::operator=(const ue_context_resume_requ return *this; } +uint64_t& ue_context_resume_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_resume_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +ue_context_resume_request_ies_o::value_c::erab_failed_to_resume_list_resume_req() +{ + assert_choice_type(types::erab_failed_to_resume_list_resume_req, type_, "Value"); + return c.get >(); +} +rrc_establishment_cause_e& ue_context_resume_request_ies_o::value_c::rrc_resume_cause() +{ + assert_choice_type(types::rrc_resume_cause, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_resume_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_resume_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +ue_context_resume_request_ies_o::value_c::erab_failed_to_resume_list_resume_req() const +{ + assert_choice_type(types::erab_failed_to_resume_list_resume_req, type_, "Value"); + return c.get >(); +} +const rrc_establishment_cause_e& ue_context_resume_request_ies_o::value_c::rrc_resume_cause() const +{ + assert_choice_type(types::rrc_resume_cause, type_, "Value"); + return c.get(); +} void ue_context_resume_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -51686,7 +51999,7 @@ SRSASN_CODE ue_context_resume_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_resume_request_ies_o::value_c::types_opts::to_string() const +const char* ue_context_resume_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -51780,68 +52093,6 @@ presence_e ue_context_resume_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_resume_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_resume_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -erab_ie_container_list_l& -ue_context_resume_resp_ies_o::value_c::erab_failed_to_resume_list_resume_res() -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedToResumeItemResumeResIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -crit_diagnostics_s& ue_context_resume_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -security_context_s& ue_context_resume_resp_ies_o::value_c::security_context() -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -pending_data_ind_e& ue_context_resume_resp_ies_o::value_c::pending_data_ind() -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_resume_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_resume_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const erab_ie_container_list_l& -ue_context_resume_resp_ies_o::value_c::erab_failed_to_resume_list_resume_res() const -{ - assert_choice_type("E-RAB-IE-ContainerList{{E-RABFailedToResumeItemResumeResIEs}}", type_.to_string(), "Value"); - return c.get >(); -} -const crit_diagnostics_s& ue_context_resume_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const security_context_s& ue_context_resume_resp_ies_o::value_c::security_context() const -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -const pending_data_ind_e& ue_context_resume_resp_ies_o::value_c::pending_data_ind() const -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} void ue_context_resume_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -51946,6 +52197,68 @@ ue_context_resume_resp_ies_o::value_c::operator=(const ue_context_resume_resp_ie return *this; } +uint64_t& ue_context_resume_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_resume_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +erab_ie_container_list_l& +ue_context_resume_resp_ies_o::value_c::erab_failed_to_resume_list_resume_res() +{ + assert_choice_type(types::erab_failed_to_resume_list_resume_res, type_, "Value"); + return c.get >(); +} +crit_diagnostics_s& ue_context_resume_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +security_context_s& ue_context_resume_resp_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +pending_data_ind_e& ue_context_resume_resp_ies_o::value_c::pending_data_ind() +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_resume_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_resume_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const erab_ie_container_list_l& +ue_context_resume_resp_ies_o::value_c::erab_failed_to_resume_list_resume_res() const +{ + assert_choice_type(types::erab_failed_to_resume_list_resume_res, type_, "Value"); + return c.get >(); +} +const crit_diagnostics_s& ue_context_resume_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const security_context_s& ue_context_resume_resp_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const pending_data_ind_e& ue_context_resume_resp_ies_o::value_c::pending_data_ind() const +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} void ue_context_resume_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -52034,7 +52347,7 @@ SRSASN_CODE ue_context_resume_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_resume_resp_ies_o::value_c::types_opts::to_string() const +const char* ue_context_resume_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -52137,82 +52450,6 @@ presence_e ue_context_suspend_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_suspend_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_suspend_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -info_on_recommended_cells_and_enbs_for_paging_s& -ue_context_suspend_request_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() -{ - assert_choice_type("InformationOnRecommendedCellsAndENBsForPaging", type_.to_string(), "Value"); - return c.get(); -} -cell_id_and_ce_level_for_ce_capable_ues_s& -ue_context_suspend_request_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() -{ - assert_choice_type("CellIdentifierAndCELevelForCECapableUEs", type_.to_string(), "Value"); - return c.get(); -} -secondary_rat_data_usage_report_list_l& -ue_context_suspend_request_ies_o::value_c::secondary_rat_data_usage_report_list() -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -user_location_info_s& ue_context_suspend_request_ies_o::value_c::user_location_info() -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<4, true>& ue_context_suspend_request_ies_o::value_c::time_since_secondary_node_release() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ue_context_suspend_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_suspend_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const info_on_recommended_cells_and_enbs_for_paging_s& -ue_context_suspend_request_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() const -{ - assert_choice_type("InformationOnRecommendedCellsAndENBsForPaging", type_.to_string(), "Value"); - return c.get(); -} -const cell_id_and_ce_level_for_ce_capable_ues_s& -ue_context_suspend_request_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() const -{ - assert_choice_type("CellIdentifierAndCELevelForCECapableUEs", type_.to_string(), "Value"); - return c.get(); -} -const secondary_rat_data_usage_report_list_l& -ue_context_suspend_request_ies_o::value_c::secondary_rat_data_usage_report_list() const -{ - assert_choice_type("SecondaryRATDataUsageReportList", type_.to_string(), "Value"); - return c.get(); -} -const user_location_info_s& ue_context_suspend_request_ies_o::value_c::user_location_info() const -{ - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<4, true>& ue_context_suspend_request_ies_o::value_c::time_since_secondary_node_release() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void ue_context_suspend_request_ies_o::value_c::destroy_() { switch (type_) { @@ -52333,6 +52570,82 @@ ue_context_suspend_request_ies_o::value_c::operator=(const ue_context_suspend_re return *this; } +uint64_t& ue_context_suspend_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_suspend_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +info_on_recommended_cells_and_enbs_for_paging_s& +ue_context_suspend_request_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() +{ + assert_choice_type(types::info_on_recommended_cells_and_enbs_for_paging, type_, "Value"); + return c.get(); +} +cell_id_and_ce_level_for_ce_capable_ues_s& +ue_context_suspend_request_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() +{ + assert_choice_type(types::cell_id_and_ce_level_for_ce_capable_ues, type_, "Value"); + return c.get(); +} +secondary_rat_data_usage_report_list_l& +ue_context_suspend_request_ies_o::value_c::secondary_rat_data_usage_report_list() +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +user_location_info_s& ue_context_suspend_request_ies_o::value_c::user_location_info() +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +fixed_octstring<4, true>& ue_context_suspend_request_ies_o::value_c::time_since_secondary_node_release() +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} +const uint64_t& ue_context_suspend_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_suspend_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const info_on_recommended_cells_and_enbs_for_paging_s& +ue_context_suspend_request_ies_o::value_c::info_on_recommended_cells_and_enbs_for_paging() const +{ + assert_choice_type(types::info_on_recommended_cells_and_enbs_for_paging, type_, "Value"); + return c.get(); +} +const cell_id_and_ce_level_for_ce_capable_ues_s& +ue_context_suspend_request_ies_o::value_c::cell_id_and_ce_level_for_ce_capable_ues() const +{ + assert_choice_type(types::cell_id_and_ce_level_for_ce_capable_ues, type_, "Value"); + return c.get(); +} +const secondary_rat_data_usage_report_list_l& +ue_context_suspend_request_ies_o::value_c::secondary_rat_data_usage_report_list() const +{ + assert_choice_type(types::secondary_rat_data_usage_report_list, type_, "Value"); + return c.get(); +} +const user_location_info_s& ue_context_suspend_request_ies_o::value_c::user_location_info() const +{ + assert_choice_type(types::user_location_info, type_, "Value"); + return c.get(); +} +const fixed_octstring<4, true>& ue_context_suspend_request_ies_o::value_c::time_since_secondary_node_release() const +{ + assert_choice_type(types::time_since_secondary_node_release, type_, "Value"); + return c.get >(); +} void ue_context_suspend_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -52433,7 +52746,7 @@ SRSASN_CODE ue_context_suspend_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_suspend_request_ies_o::value_c::types_opts::to_string() const +const char* ue_context_suspend_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -52516,46 +52829,6 @@ presence_e ue_context_suspend_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_context_suspend_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_context_suspend_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_context_suspend_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -security_context_s& ue_context_suspend_resp_ies_o::value_c::security_context() -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_context_suspend_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_context_suspend_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_context_suspend_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const security_context_s& ue_context_suspend_resp_ies_o::value_c::security_context() const -{ - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); -} void ue_context_suspend_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -52640,6 +52913,46 @@ ue_context_suspend_resp_ies_o::value_c::operator=(const ue_context_suspend_resp_ return *this; } +uint64_t& ue_context_suspend_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_context_suspend_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_context_suspend_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +security_context_s& ue_context_suspend_resp_ies_o::value_c::security_context() +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} +const uint64_t& ue_context_suspend_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_context_suspend_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_context_suspend_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const security_context_s& ue_context_suspend_resp_ies_o::value_c::security_context() const +{ + assert_choice_type(types::security_context, type_, "Value"); + return c.get(); +} void ue_context_suspend_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -52708,7 +53021,7 @@ SRSASN_CODE ue_context_suspend_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_context_suspend_resp_ies_o::value_c::types_opts::to_string() const +const char* ue_context_suspend_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "CriticalityDiagnostics", "SecurityContext"}; @@ -52793,58 +53106,6 @@ presence_e ue_info_transfer_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -s_tmsi_s& ue_info_transfer_ies_o::value_c::s_tmsi() -{ - assert_choice_type("S-TMSI", type_.to_string(), "Value"); - return c.get(); -} -erab_level_qos_params_s& ue_info_transfer_ies_o::value_c::ue_level_qos_params() -{ - assert_choice_type("E-RABLevelQoSParameters", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ue_info_transfer_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -subscription_based_ue_differentiation_info_s& -ue_info_transfer_ies_o::value_c::subscription_based_ue_differentiation_info() -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -pending_data_ind_e& ue_info_transfer_ies_o::value_c::pending_data_ind() -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} -const s_tmsi_s& ue_info_transfer_ies_o::value_c::s_tmsi() const -{ - assert_choice_type("S-TMSI", type_.to_string(), "Value"); - return c.get(); -} -const erab_level_qos_params_s& ue_info_transfer_ies_o::value_c::ue_level_qos_params() const -{ - assert_choice_type("E-RABLevelQoSParameters", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ue_info_transfer_ies_o::value_c::ue_radio_cap() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const subscription_based_ue_differentiation_info_s& -ue_info_transfer_ies_o::value_c::subscription_based_ue_differentiation_info() const -{ - assert_choice_type("Subscription-Based-UE-DifferentiationInfo", type_.to_string(), "Value"); - return c.get(); -} -const pending_data_ind_e& ue_info_transfer_ies_o::value_c::pending_data_ind() const -{ - assert_choice_type("PendingDataIndication", type_.to_string(), "Value"); - return c.get(); -} void ue_info_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -52945,6 +53206,58 @@ ue_info_transfer_ies_o::value_c::operator=(const ue_info_transfer_ies_o::value_c return *this; } +s_tmsi_s& ue_info_transfer_ies_o::value_c::s_tmsi() +{ + assert_choice_type(types::s_tmsi, type_, "Value"); + return c.get(); +} +erab_level_qos_params_s& ue_info_transfer_ies_o::value_c::ue_level_qos_params() +{ + assert_choice_type(types::ue_level_qos_params, type_, "Value"); + return c.get(); +} +unbounded_octstring& ue_info_transfer_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +subscription_based_ue_differentiation_info_s& +ue_info_transfer_ies_o::value_c::subscription_based_ue_differentiation_info() +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +pending_data_ind_e& ue_info_transfer_ies_o::value_c::pending_data_ind() +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} +const s_tmsi_s& ue_info_transfer_ies_o::value_c::s_tmsi() const +{ + assert_choice_type(types::s_tmsi, type_, "Value"); + return c.get(); +} +const erab_level_qos_params_s& ue_info_transfer_ies_o::value_c::ue_level_qos_params() const +{ + assert_choice_type(types::ue_level_qos_params, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ue_info_transfer_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const subscription_based_ue_differentiation_info_s& +ue_info_transfer_ies_o::value_c::subscription_based_ue_differentiation_info() const +{ + assert_choice_type(types::subscription_based_ue_differentiation_info, type_, "Value"); + return c.get(); +} +const pending_data_ind_e& ue_info_transfer_ies_o::value_c::pending_data_ind() const +{ + assert_choice_type(types::pending_data_ind, type_, "Value"); + return c.get(); +} void ue_info_transfer_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -53023,7 +53336,7 @@ SRSASN_CODE ue_info_transfer_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_info_transfer_ies_o::value_c::types_opts::to_string() const +const char* ue_info_transfer_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"S-TMSI", "E-RABLevelQoSParameters", @@ -53097,36 +53410,6 @@ presence_e ue_radio_cap_match_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_radio_cap_match_request_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_radio_cap_match_request_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ue_radio_cap_match_request_ies_o::value_c::ue_radio_cap() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ue_radio_cap_match_request_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_radio_cap_match_request_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ue_radio_cap_match_request_ies_o::value_c::ue_radio_cap() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void ue_radio_cap_match_request_ies_o::value_c::destroy_() { switch (type_) { @@ -53199,6 +53482,36 @@ ue_radio_cap_match_request_ies_o::value_c::operator=(const ue_radio_cap_match_re return *this; } +uint64_t& ue_radio_cap_match_request_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_radio_cap_match_request_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ue_radio_cap_match_request_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} +const uint64_t& ue_radio_cap_match_request_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_radio_cap_match_request_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ue_radio_cap_match_request_ies_o::value_c::ue_radio_cap() const +{ + assert_choice_type(types::ue_radio_cap, type_, "Value"); + return c.get >(); +} void ue_radio_cap_match_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -53256,7 +53569,7 @@ SRSASN_CODE ue_radio_cap_match_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_radio_cap_match_request_ies_o::value_c::types_opts::to_string() const +const char* ue_radio_cap_match_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", "OCTET STRING"}; return convert_enum_idx(options, 3, value, "ue_radio_cap_match_request_ies_o::value_c::types"); @@ -53333,46 +53646,6 @@ presence_e ue_radio_cap_match_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ue_radio_cap_match_resp_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ue_radio_cap_match_resp_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -voice_support_match_ind_e& ue_radio_cap_match_resp_ies_o::value_c::voice_support_match_ind() -{ - assert_choice_type("VoiceSupportMatchIndicator", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& ue_radio_cap_match_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ue_radio_cap_match_resp_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ue_radio_cap_match_resp_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const voice_support_match_ind_e& ue_radio_cap_match_resp_ies_o::value_c::voice_support_match_ind() const -{ - assert_choice_type("VoiceSupportMatchIndicator", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& ue_radio_cap_match_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void ue_radio_cap_match_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -53453,6 +53726,46 @@ ue_radio_cap_match_resp_ies_o::value_c::operator=(const ue_radio_cap_match_resp_ return *this; } +uint64_t& ue_radio_cap_match_resp_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ue_radio_cap_match_resp_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +voice_support_match_ind_e& ue_radio_cap_match_resp_ies_o::value_c::voice_support_match_ind() +{ + assert_choice_type(types::voice_support_match_ind, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& ue_radio_cap_match_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_match_resp_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ue_radio_cap_match_resp_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const voice_support_match_ind_e& ue_radio_cap_match_resp_ies_o::value_c::voice_support_match_ind() const +{ + assert_choice_type(types::voice_support_match_ind, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_radio_cap_match_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void ue_radio_cap_match_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -53520,7 +53833,7 @@ SRSASN_CODE ue_radio_cap_match_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ue_radio_cap_match_resp_ies_o::value_c::types_opts::to_string() const +const char* ue_radio_cap_match_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "VoiceSupportMatchIndicator", "CriticalityDiagnostics"}; @@ -53633,96 +53946,6 @@ presence_e ul_nas_transport_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ul_nas_transport_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ul_nas_transport_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -eutran_cgi_s& ul_nas_transport_ies_o::value_c::eutran_cgi() -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -tai_s& ul_nas_transport_ies_o::value_c::tai() -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::gw_transport_layer_address() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::sipto_l_gw_transport_layer_address() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -bounded_octstring<32, 256, true>& ul_nas_transport_ies_o::value_c::lhn_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -ps_cell_info_s& ul_nas_transport_ies_o::value_c::ps_cell_info() -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ul_nas_transport_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ul_nas_transport_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const eutran_cgi_s& ul_nas_transport_ies_o::value_c::eutran_cgi() const -{ - assert_choice_type("EUTRAN-CGI", type_.to_string(), "Value"); - return c.get(); -} -const tai_s& ul_nas_transport_ies_o::value_c::tai() const -{ - assert_choice_type("TAI", type_.to_string(), "Value"); - return c.get(); -} -const bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::gw_transport_layer_address() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::sipto_l_gw_transport_layer_address() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const bounded_octstring<32, 256, true>& ul_nas_transport_ies_o::value_c::lhn_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const ps_cell_info_s& ul_nas_transport_ies_o::value_c::ps_cell_info() const -{ - assert_choice_type("PSCellInformation", type_.to_string(), "Value"); - return c.get(); -} void ul_nas_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -53867,6 +54090,96 @@ ul_nas_transport_ies_o::value_c::operator=(const ul_nas_transport_ies_o::value_c return *this; } +uint64_t& ul_nas_transport_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ul_nas_transport_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +eutran_cgi_s& ul_nas_transport_ies_o::value_c::eutran_cgi() +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +tai_s& ul_nas_transport_ies_o::value_c::tai() +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::gw_transport_layer_address() +{ + assert_choice_type(types::gw_transport_layer_address, type_, "Value"); + return c.get >(); +} +bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::sipto_l_gw_transport_layer_address() +{ + assert_choice_type(types::sipto_l_gw_transport_layer_address, type_, "Value"); + return c.get >(); +} +bounded_octstring<32, 256, true>& ul_nas_transport_ies_o::value_c::lhn_id() +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +ps_cell_info_s& ul_nas_transport_ies_o::value_c::ps_cell_info() +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} +const uint64_t& ul_nas_transport_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ul_nas_transport_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_nas_transport_ies_o::value_c::nas_pdu() const +{ + assert_choice_type(types::nas_pdu, type_, "Value"); + return c.get >(); +} +const eutran_cgi_s& ul_nas_transport_ies_o::value_c::eutran_cgi() const +{ + assert_choice_type(types::eutran_cgi, type_, "Value"); + return c.get(); +} +const tai_s& ul_nas_transport_ies_o::value_c::tai() const +{ + assert_choice_type(types::tai, type_, "Value"); + return c.get(); +} +const bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::gw_transport_layer_address() const +{ + assert_choice_type(types::gw_transport_layer_address, type_, "Value"); + return c.get >(); +} +const bounded_bitstring<1, 160, true, true>& ul_nas_transport_ies_o::value_c::sipto_l_gw_transport_layer_address() const +{ + assert_choice_type(types::sipto_l_gw_transport_layer_address, type_, "Value"); + return c.get >(); +} +const bounded_octstring<32, 256, true>& ul_nas_transport_ies_o::value_c::lhn_id() const +{ + assert_choice_type(types::lhn_id, type_, "Value"); + return c.get >(); +} +const ps_cell_info_s& ul_nas_transport_ies_o::value_c::ps_cell_info() const +{ + assert_choice_type(types::ps_cell_info, type_, "Value"); + return c.get(); +} void ul_nas_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -53981,7 +54294,7 @@ SRSASN_CODE ul_nas_transport_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_nas_transport_ies_o::value_c::types_opts::to_string() const +const char* ul_nas_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -54053,26 +54366,6 @@ presence_e ul_non_ueassociated_lp_pa_transport_ies_o::get_presence(const uint32_ } // Value ::= OPEN TYPE -uint16_t& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void ul_non_ueassociated_lp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -54138,6 +54431,26 @@ ul_non_ueassociated_lp_pa_transport_ies_o::value_c& ul_non_ueassociated_lp_pa_tr return *this; } +uint16_t& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint16_t& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_non_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} void ul_non_ueassociated_lp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -54186,7 +54499,7 @@ SRSASN_CODE ul_non_ueassociated_lp_pa_transport_ies_o::value_c::unpack(cbit_ref& return SRSASN_SUCCESS; } -std::string ul_non_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* ul_non_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..255)", "OCTET STRING"}; return convert_enum_idx(options, 2, value, "ul_non_ueassociated_lp_pa_transport_ies_o::value_c::types"); @@ -54303,96 +54616,6 @@ presence_e ul_s1cdma2000tunnelling_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -uint64_t& ul_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ul_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -cdma2000_rat_type_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() -{ - assert_choice_type("Cdma2000RATType", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_sector_id() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -cdma2000_ho_required_ind_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_required_ind() -{ - assert_choice_type("Cdma2000HORequiredIndication", type_.to_string(), "Value"); - return c.get(); -} -cdma2000_one_xsrvcc_info_s& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xsrvcc_info() -{ - assert_choice_type("Cdma2000OneXSRVCCInfo", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xrand() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -uint16_t& ul_s1cdma2000tunnelling_ies_o::value_c::eutran_round_trip_delay_estimation_info() -{ - assert_choice_type("INTEGER (0..2047)", type_.to_string(), "Value"); - return c.get(); -} -const uint64_t& ul_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ul_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const cdma2000_rat_type_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() const -{ - assert_choice_type("Cdma2000RATType", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_sector_id() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const cdma2000_ho_required_ind_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_required_ind() const -{ - assert_choice_type("Cdma2000HORequiredIndication", type_.to_string(), "Value"); - return c.get(); -} -const cdma2000_one_xsrvcc_info_s& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xsrvcc_info() const -{ - assert_choice_type("Cdma2000OneXSRVCCInfo", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xrand() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint16_t& ul_s1cdma2000tunnelling_ies_o::value_c::eutran_round_trip_delay_estimation_info() const -{ - assert_choice_type("INTEGER (0..2047)", type_.to_string(), "Value"); - return c.get(); -} void ul_s1cdma2000tunnelling_ies_o::value_c::destroy_() { switch (type_) { @@ -54525,6 +54748,96 @@ ul_s1cdma2000tunnelling_ies_o::value_c::operator=(const ul_s1cdma2000tunnelling_ return *this; } +uint64_t& ul_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ul_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +cdma2000_rat_type_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() +{ + assert_choice_type(types::cdma2000_rat_type, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_sector_id() +{ + assert_choice_type(types::cdma2000_sector_id, type_, "Value"); + return c.get >(); +} +cdma2000_ho_required_ind_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_required_ind() +{ + assert_choice_type(types::cdma2000_ho_required_ind, type_, "Value"); + return c.get(); +} +cdma2000_one_xsrvcc_info_s& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xsrvcc_info() +{ + assert_choice_type(types::cdma2000_one_xsrvcc_info, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xrand() +{ + assert_choice_type(types::cdma2000_one_xrand, type_, "Value"); + return c.get >(); +} +unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() +{ + assert_choice_type(types::cdma2000_pdu, type_, "Value"); + return c.get >(); +} +uint16_t& ul_s1cdma2000tunnelling_ies_o::value_c::eutran_round_trip_delay_estimation_info() +{ + assert_choice_type(types::eutran_round_trip_delay_estimation_info, type_, "Value"); + return c.get(); +} +const uint64_t& ul_s1cdma2000tunnelling_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ul_s1cdma2000tunnelling_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const cdma2000_rat_type_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_rat_type() const +{ + assert_choice_type(types::cdma2000_rat_type, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_sector_id() const +{ + assert_choice_type(types::cdma2000_sector_id, type_, "Value"); + return c.get >(); +} +const cdma2000_ho_required_ind_e& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_ho_required_ind() const +{ + assert_choice_type(types::cdma2000_ho_required_ind, type_, "Value"); + return c.get(); +} +const cdma2000_one_xsrvcc_info_s& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xsrvcc_info() const +{ + assert_choice_type(types::cdma2000_one_xsrvcc_info, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_one_xrand() const +{ + assert_choice_type(types::cdma2000_one_xrand, type_, "Value"); + return c.get >(); +} +const unbounded_octstring& ul_s1cdma2000tunnelling_ies_o::value_c::cdma2000_pdu() const +{ + assert_choice_type(types::cdma2000_pdu, type_, "Value"); + return c.get >(); +} +const uint16_t& ul_s1cdma2000tunnelling_ies_o::value_c::eutran_round_trip_delay_estimation_info() const +{ + assert_choice_type(types::eutran_round_trip_delay_estimation_info, type_, "Value"); + return c.get(); +} void ul_s1cdma2000tunnelling_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -54637,7 +54950,7 @@ SRSASN_CODE ul_s1cdma2000tunnelling_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string ul_s1cdma2000tunnelling_ies_o::value_c::types_opts::to_string() const +const char* ul_s1cdma2000tunnelling_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..4294967295)", "INTEGER (0..16777215)", @@ -54722,46 +55035,6 @@ presence_e ul_ueassociated_lp_pa_transport_ies_o::get_presence(const uint32_t& i } // Value ::= OPEN TYPE -uint64_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -unbounded_octstring& ul_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const uint64_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() const -{ - assert_choice_type("INTEGER (0..16777215)", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const -{ - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); -} -const unbounded_octstring& ul_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void ul_ueassociated_lp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -54842,6 +55115,46 @@ ul_ueassociated_lp_pa_transport_ies_o::value_c::operator=(const ul_ueassociated_ return *this; } +uint64_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint32_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +uint16_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +unbounded_octstring& ul_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} +const uint64_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::mme_ue_s1ap_id() const +{ + assert_choice_type(types::mme_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint32_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::enb_ue_s1ap_id() const +{ + assert_choice_type(types::enb_ue_s1ap_id, type_, "Value"); + return c.get(); +} +const uint16_t& ul_ueassociated_lp_pa_transport_ies_o::value_c::routing_id() const +{ + assert_choice_type(types::routing_id, type_, "Value"); + return c.get(); +} +const unbounded_octstring& ul_ueassociated_lp_pa_transport_ies_o::value_c::lp_pa_pdu() const +{ + assert_choice_type(types::lp_pa_pdu, type_, "Value"); + return c.get >(); +} void ul_ueassociated_lp_pa_transport_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -54908,7 +55221,7 @@ SRSASN_CODE ul_ueassociated_lp_pa_transport_ies_o::value_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string ul_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const +const char* ul_ueassociated_lp_pa_transport_ies_o::value_c::types_opts::to_string() const { static const char* options[] = { "INTEGER (0..4294967295)", "INTEGER (0..16777215)", "INTEGER (0..255)", "OCTET STRING"}; @@ -55042,126 +55355,6 @@ presence_e write_replace_warning_request_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -uint16_t& write_replace_warning_request_ies_o::value_c::repeat_period() -{ - assert_choice_type("INTEGER (0..4095)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& write_replace_warning_request_ies_o::value_c::extended_repeat_period() -{ - assert_choice_type("INTEGER (4096..131071)", type_.to_string(), "Value"); - return c.get(); -} -uint32_t& write_replace_warning_request_ies_o::value_c::numof_broadcast_request() -{ - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); -} -fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() -{ - assert_choice_type("ConcurrentWarningMessageIndicator", type_.to_string(), "Value"); - return c.get(); -} -bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() const -{ - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); -} -const uint16_t& write_replace_warning_request_ies_o::value_c::repeat_period() const -{ - assert_choice_type("INTEGER (0..4095)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& write_replace_warning_request_ies_o::value_c::extended_repeat_period() const -{ - assert_choice_type("INTEGER (4096..131071)", type_.to_string(), "Value"); - return c.get(); -} -const uint32_t& write_replace_warning_request_ies_o::value_c::numof_broadcast_request() const -{ - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); -} -const fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} -const concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() const -{ - assert_choice_type("ConcurrentWarningMessageIndicator", type_.to_string(), "Value"); - return c.get(); -} -const bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); -} void write_replace_warning_request_ies_o::value_c::destroy_() { switch (type_) { @@ -55334,6 +55527,126 @@ write_replace_warning_request_ies_o::value_c::operator=(const write_replace_warn return *this; } +fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +uint16_t& write_replace_warning_request_ies_o::value_c::repeat_period() +{ + assert_choice_type(types::repeat_period, type_, "Value"); + return c.get(); +} +uint32_t& write_replace_warning_request_ies_o::value_c::extended_repeat_period() +{ + assert_choice_type(types::extended_repeat_period, type_, "Value"); + return c.get(); +} +uint32_t& write_replace_warning_request_ies_o::value_c::numof_broadcast_request() +{ + assert_choice_type(types::numof_broadcast_request, type_, "Value"); + return c.get(); +} +fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() +{ + assert_choice_type(types::warning_type, type_, "Value"); + return c.get >(); +} +fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() +{ + assert_choice_type(types::warning_security_info, type_, "Value"); + return c.get >(); +} +fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() +{ + assert_choice_type(types::data_coding_scheme, type_, "Value"); + return c.get >(); +} +bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() +{ + assert_choice_type(types::warning_msg_contents, type_, "Value"); + return c.get >(); +} +concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() +{ + assert_choice_type(types::concurrent_warning_msg_ind, type_, "Value"); + return c.get(); +} +bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() +{ + assert_choice_type(types::warning_area_coordinates, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_request_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const warning_area_list_c& write_replace_warning_request_ies_o::value_c::warning_area_list() const +{ + assert_choice_type(types::warning_area_list, type_, "Value"); + return c.get(); +} +const uint16_t& write_replace_warning_request_ies_o::value_c::repeat_period() const +{ + assert_choice_type(types::repeat_period, type_, "Value"); + return c.get(); +} +const uint32_t& write_replace_warning_request_ies_o::value_c::extended_repeat_period() const +{ + assert_choice_type(types::extended_repeat_period, type_, "Value"); + return c.get(); +} +const uint32_t& write_replace_warning_request_ies_o::value_c::numof_broadcast_request() const +{ + assert_choice_type(types::numof_broadcast_request, type_, "Value"); + return c.get(); +} +const fixed_octstring<2, true>& write_replace_warning_request_ies_o::value_c::warning_type() const +{ + assert_choice_type(types::warning_type, type_, "Value"); + return c.get >(); +} +const fixed_octstring<50, true>& write_replace_warning_request_ies_o::value_c::warning_security_info() const +{ + assert_choice_type(types::warning_security_info, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<8, false, true>& write_replace_warning_request_ies_o::value_c::data_coding_scheme() const +{ + assert_choice_type(types::data_coding_scheme, type_, "Value"); + return c.get >(); +} +const bounded_octstring<1, 9600, true>& write_replace_warning_request_ies_o::value_c::warning_msg_contents() const +{ + assert_choice_type(types::warning_msg_contents, type_, "Value"); + return c.get >(); +} +const concurrent_warning_msg_ind_e& write_replace_warning_request_ies_o::value_c::concurrent_warning_msg_ind() const +{ + assert_choice_type(types::concurrent_warning_msg_ind, type_, "Value"); + return c.get(); +} +const bounded_octstring<1, 1024, true>& write_replace_warning_request_ies_o::value_c::warning_area_coordinates() const +{ + assert_choice_type(types::warning_area_coordinates, type_, "Value"); + return c.get >(); +} void write_replace_warning_request_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -55473,7 +55786,7 @@ SRSASN_CODE write_replace_warning_request_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string write_replace_warning_request_ies_o::value_c::types_opts::to_string() const +const char* write_replace_warning_request_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"BIT STRING", "BIT STRING", @@ -55561,46 +55874,6 @@ presence_e write_replace_warning_resp_ies_o::get_presence(const uint32_t& id) } // Value ::= OPEN TYPE -fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() -{ - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); -} -crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); -} -const broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() const -{ - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); -} -const crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() const -{ - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); -} void write_replace_warning_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -55693,6 +55966,46 @@ write_replace_warning_resp_ies_o::value_c::operator=(const write_replace_warning return *this; } +fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() +{ + assert_choice_type(types::broadcast_completed_area_list, type_, "Value"); + return c.get(); +} +crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::msg_id() const +{ + assert_choice_type(types::msg_id, type_, "Value"); + return c.get >(); +} +const fixed_bitstring<16, false, true>& write_replace_warning_resp_ies_o::value_c::serial_num() const +{ + assert_choice_type(types::serial_num, type_, "Value"); + return c.get >(); +} +const broadcast_completed_area_list_c& write_replace_warning_resp_ies_o::value_c::broadcast_completed_area_list() const +{ + assert_choice_type(types::broadcast_completed_area_list, type_, "Value"); + return c.get(); +} +const crit_diagnostics_s& write_replace_warning_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type(types::crit_diagnostics, type_, "Value"); + return c.get(); +} void write_replace_warning_resp_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -55761,7 +56074,7 @@ SRSASN_CODE write_replace_warning_resp_ies_o::value_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string write_replace_warning_resp_ies_o::value_c::types_opts::to_string() const +const char* write_replace_warning_resp_ies_o::value_c::types_opts::to_string() const { static const char* options[] = {"BIT STRING", "BIT STRING", "BroadcastCompletedAreaList", "CriticalityDiagnostics"}; return convert_enum_idx(options, 4, value, "write_replace_warning_resp_ies_o::value_c::types"); @@ -62987,446 +63300,6 @@ crit_e s1ap_elem_procs_o::get_crit(const uint16_t& proc_code) } // InitiatingMessage ::= OPEN TYPE -ho_required_s& s1ap_elem_procs_o::init_msg_c::ho_required() -{ - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_request_s& s1ap_elem_procs_o::init_msg_c::ho_request() -{ - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -path_switch_request_s& s1ap_elem_procs_o::init_msg_c::path_switch_request() -{ - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -erab_setup_request_s& s1ap_elem_procs_o::init_msg_c::erab_setup_request() -{ - assert_choice_type("E-RABSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -erab_modify_request_s& s1ap_elem_procs_o::init_msg_c::erab_modify_request() -{ - assert_choice_type("E-RABModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -erab_release_cmd_s& s1ap_elem_procs_o::init_msg_c::erab_release_cmd() -{ - assert_choice_type("E-RABReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -init_context_setup_request_s& s1ap_elem_procs_o::init_msg_c::init_context_setup_request() -{ - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_cancel_s& s1ap_elem_procs_o::init_msg_c::ho_cancel() -{ - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -kill_request_s& s1ap_elem_procs_o::init_msg_c::kill_request() -{ - assert_choice_type("KillRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -reset_s& s1ap_elem_procs_o::init_msg_c::reset() -{ - assert_choice_type("Reset", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -s1_setup_request_s& s1ap_elem_procs_o::init_msg_c::s1_setup_request() -{ - assert_choice_type("S1SetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ue_context_mod_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_mod_request() -{ - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ue_context_release_cmd_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_cmd() -{ - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -enb_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_upd() -{ - assert_choice_type("ENBConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -mme_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_upd() -{ - assert_choice_type("MMEConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -write_replace_warning_request_s& s1ap_elem_procs_o::init_msg_c::write_replace_warning_request() -{ - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ho_notify_s& s1ap_elem_procs_o::init_msg_c::ho_notify() -{ - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -erab_release_ind_s& s1ap_elem_procs_o::init_msg_c::erab_release_ind() -{ - assert_choice_type("E-RABReleaseIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -paging_s& s1ap_elem_procs_o::init_msg_c::paging() -{ - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -dl_nas_transport_s& s1ap_elem_procs_o::init_msg_c::dl_nas_transport() -{ - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -init_ue_msg_s& s1ap_elem_procs_o::init_msg_c::init_ue_msg() -{ - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ul_nas_transport_s& s1ap_elem_procs_o::init_msg_c::ul_nas_transport() -{ - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -error_ind_s& s1ap_elem_procs_o::init_msg_c::error_ind() -{ - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -nas_non_delivery_ind_s& s1ap_elem_procs_o::init_msg_c::nas_non_delivery_ind() -{ - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ue_context_release_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_request() -{ - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -dl_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::dl_s1cdma2000tunnelling() -{ - assert_choice_type("DownlinkS1cdma2000tunnelling", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ul_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::ul_s1cdma2000tunnelling() -{ - assert_choice_type("UplinkS1cdma2000tunnelling", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -ue_cap_info_ind_s& s1ap_elem_procs_o::init_msg_c::ue_cap_info_ind() -{ - assert_choice_type("UECapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -enb_status_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_status_transfer() -{ - assert_choice_type("ENBStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -mme_status_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_status_transfer() -{ - assert_choice_type("MMEStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -deactiv_trace_s& s1ap_elem_procs_o::init_msg_c::deactiv_trace() -{ - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -trace_start_s& s1ap_elem_procs_o::init_msg_c::trace_start() -{ - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -trace_fail_ind_s& s1ap_elem_procs_o::init_msg_c::trace_fail_ind() -{ - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -cell_traffic_trace_s& s1ap_elem_procs_o::init_msg_c::cell_traffic_trace() -{ - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -location_report_ctrl_s& s1ap_elem_procs_o::init_msg_c::location_report_ctrl() -{ - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -location_report_fail_ind_s& s1ap_elem_procs_o::init_msg_c::location_report_fail_ind() -{ - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -location_report_s& s1ap_elem_procs_o::init_msg_c::location_report() -{ - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -overload_start_s& s1ap_elem_procs_o::init_msg_c::overload_start() -{ - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -overload_stop_s& s1ap_elem_procs_o::init_msg_c::overload_stop() -{ - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -enb_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_direct_info_transfer() -{ - assert_choice_type("ENBDirectInformationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -mme_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_direct_info_transfer() -{ - assert_choice_type("MMEDirectInformationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -enb_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_transfer() -{ - assert_choice_type("ENBConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -mme_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_transfer() -{ - assert_choice_type("MMEConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -private_msg_s& s1ap_elem_procs_o::init_msg_c::private_msg() -{ - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ho_required_s& s1ap_elem_procs_o::init_msg_c::ho_required() const -{ - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ho_request_s& s1ap_elem_procs_o::init_msg_c::ho_request() const -{ - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const path_switch_request_s& s1ap_elem_procs_o::init_msg_c::path_switch_request() const -{ - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const erab_setup_request_s& s1ap_elem_procs_o::init_msg_c::erab_setup_request() const -{ - assert_choice_type("E-RABSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const erab_modify_request_s& s1ap_elem_procs_o::init_msg_c::erab_modify_request() const -{ - assert_choice_type("E-RABModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const erab_release_cmd_s& s1ap_elem_procs_o::init_msg_c::erab_release_cmd() const -{ - assert_choice_type("E-RABReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const init_context_setup_request_s& s1ap_elem_procs_o::init_msg_c::init_context_setup_request() const -{ - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ho_cancel_s& s1ap_elem_procs_o::init_msg_c::ho_cancel() const -{ - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const kill_request_s& s1ap_elem_procs_o::init_msg_c::kill_request() const -{ - assert_choice_type("KillRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const reset_s& s1ap_elem_procs_o::init_msg_c::reset() const -{ - assert_choice_type("Reset", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const s1_setup_request_s& s1ap_elem_procs_o::init_msg_c::s1_setup_request() const -{ - assert_choice_type("S1SetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ue_context_mod_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_mod_request() const -{ - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ue_context_release_cmd_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_cmd() const -{ - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const enb_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_upd() const -{ - assert_choice_type("ENBConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const mme_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_upd() const -{ - assert_choice_type("MMEConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const write_replace_warning_request_s& s1ap_elem_procs_o::init_msg_c::write_replace_warning_request() const -{ - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ho_notify_s& s1ap_elem_procs_o::init_msg_c::ho_notify() const -{ - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const erab_release_ind_s& s1ap_elem_procs_o::init_msg_c::erab_release_ind() const -{ - assert_choice_type("E-RABReleaseIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const paging_s& s1ap_elem_procs_o::init_msg_c::paging() const -{ - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const dl_nas_transport_s& s1ap_elem_procs_o::init_msg_c::dl_nas_transport() const -{ - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const init_ue_msg_s& s1ap_elem_procs_o::init_msg_c::init_ue_msg() const -{ - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ul_nas_transport_s& s1ap_elem_procs_o::init_msg_c::ul_nas_transport() const -{ - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const error_ind_s& s1ap_elem_procs_o::init_msg_c::error_ind() const -{ - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const nas_non_delivery_ind_s& s1ap_elem_procs_o::init_msg_c::nas_non_delivery_ind() const -{ - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ue_context_release_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_request() const -{ - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const dl_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::dl_s1cdma2000tunnelling() const -{ - assert_choice_type("DownlinkS1cdma2000tunnelling", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ul_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::ul_s1cdma2000tunnelling() const -{ - assert_choice_type("UplinkS1cdma2000tunnelling", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const ue_cap_info_ind_s& s1ap_elem_procs_o::init_msg_c::ue_cap_info_ind() const -{ - assert_choice_type("UECapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const enb_status_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_status_transfer() const -{ - assert_choice_type("ENBStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const mme_status_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_status_transfer() const -{ - assert_choice_type("MMEStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const deactiv_trace_s& s1ap_elem_procs_o::init_msg_c::deactiv_trace() const -{ - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const trace_start_s& s1ap_elem_procs_o::init_msg_c::trace_start() const -{ - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const trace_fail_ind_s& s1ap_elem_procs_o::init_msg_c::trace_fail_ind() const -{ - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const cell_traffic_trace_s& s1ap_elem_procs_o::init_msg_c::cell_traffic_trace() const -{ - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const location_report_ctrl_s& s1ap_elem_procs_o::init_msg_c::location_report_ctrl() const -{ - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const location_report_fail_ind_s& s1ap_elem_procs_o::init_msg_c::location_report_fail_ind() const -{ - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const location_report_s& s1ap_elem_procs_o::init_msg_c::location_report() const -{ - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const overload_start_s& s1ap_elem_procs_o::init_msg_c::overload_start() const -{ - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const overload_stop_s& s1ap_elem_procs_o::init_msg_c::overload_stop() const -{ - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const enb_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_direct_info_transfer() const -{ - assert_choice_type("ENBDirectInformationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const mme_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_direct_info_transfer() const -{ - assert_choice_type("MMEDirectInformationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const enb_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_transfer() const -{ - assert_choice_type("ENBConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const mme_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_transfer() const -{ - assert_choice_type("MMEConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); -} -const private_msg_s& s1ap_elem_procs_o::init_msg_c::private_msg() const -{ - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); -} void s1ap_elem_procs_o::init_msg_c::destroy_() { switch (type_) { @@ -63851,152 +63724,592 @@ s1ap_elem_procs_o::init_msg_c::init_msg_c(const s1ap_elem_procs_o::init_msg_c& o log_invalid_choice_id(type_, "s1ap_elem_procs_o::init_msg_c"); } } -s1ap_elem_procs_o::init_msg_c& s1ap_elem_procs_o::init_msg_c::operator=(const s1ap_elem_procs_o::init_msg_c& other) +s1ap_elem_procs_o::init_msg_c& s1ap_elem_procs_o::init_msg_c::operator=(const s1ap_elem_procs_o::init_msg_c& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::ho_required: + c.set(other.c.get()); + break; + case types::ho_request: + c.set(other.c.get()); + break; + case types::path_switch_request: + c.set(other.c.get()); + break; + case types::erab_setup_request: + c.set(other.c.get()); + break; + case types::erab_modify_request: + c.set(other.c.get()); + break; + case types::erab_release_cmd: + c.set(other.c.get()); + break; + case types::init_context_setup_request: + c.set(other.c.get()); + break; + case types::ho_cancel: + c.set(other.c.get()); + break; + case types::kill_request: + c.set(other.c.get()); + break; + case types::reset: + c.set(other.c.get()); + break; + case types::s1_setup_request: + c.set(other.c.get()); + break; + case types::ue_context_mod_request: + c.set(other.c.get()); + break; + case types::ue_context_release_cmd: + c.set(other.c.get()); + break; + case types::enb_cfg_upd: + c.set(other.c.get()); + break; + case types::mme_cfg_upd: + c.set(other.c.get()); + break; + case types::write_replace_warning_request: + c.set(other.c.get()); + break; + case types::ho_notify: + c.set(other.c.get()); + break; + case types::erab_release_ind: + c.set(other.c.get()); + break; + case types::paging: + c.set(other.c.get()); + break; + case types::dl_nas_transport: + c.set(other.c.get()); + break; + case types::init_ue_msg: + c.set(other.c.get()); + break; + case types::ul_nas_transport: + c.set(other.c.get()); + break; + case types::error_ind: + c.set(other.c.get()); + break; + case types::nas_non_delivery_ind: + c.set(other.c.get()); + break; + case types::ue_context_release_request: + c.set(other.c.get()); + break; + case types::dl_s1cdma2000tunnelling: + c.set(other.c.get()); + break; + case types::ul_s1cdma2000tunnelling: + c.set(other.c.get()); + break; + case types::ue_cap_info_ind: + c.set(other.c.get()); + break; + case types::enb_status_transfer: + c.set(other.c.get()); + break; + case types::mme_status_transfer: + c.set(other.c.get()); + break; + case types::deactiv_trace: + c.set(other.c.get()); + break; + case types::trace_start: + c.set(other.c.get()); + break; + case types::trace_fail_ind: + c.set(other.c.get()); + break; + case types::cell_traffic_trace: + c.set(other.c.get()); + break; + case types::location_report_ctrl: + c.set(other.c.get()); + break; + case types::location_report_fail_ind: + c.set(other.c.get()); + break; + case types::location_report: + c.set(other.c.get()); + break; + case types::overload_start: + c.set(other.c.get()); + break; + case types::overload_stop: + c.set(other.c.get()); + break; + case types::enb_direct_info_transfer: + c.set(other.c.get()); + break; + case types::mme_direct_info_transfer: + c.set(other.c.get()); + break; + case types::enb_cfg_transfer: + c.set(other.c.get()); + break; + case types::mme_cfg_transfer: + c.set(other.c.get()); + break; + case types::private_msg: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "s1ap_elem_procs_o::init_msg_c"); + } + + return *this; +} +ho_required_s& s1ap_elem_procs_o::init_msg_c::ho_required() +{ + assert_choice_type(types::ho_required, type_, "InitiatingMessage"); + return c.get(); +} +ho_request_s& s1ap_elem_procs_o::init_msg_c::ho_request() +{ + assert_choice_type(types::ho_request, type_, "InitiatingMessage"); + return c.get(); +} +path_switch_request_s& s1ap_elem_procs_o::init_msg_c::path_switch_request() +{ + assert_choice_type(types::path_switch_request, type_, "InitiatingMessage"); + return c.get(); +} +erab_setup_request_s& s1ap_elem_procs_o::init_msg_c::erab_setup_request() +{ + assert_choice_type(types::erab_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +erab_modify_request_s& s1ap_elem_procs_o::init_msg_c::erab_modify_request() +{ + assert_choice_type(types::erab_modify_request, type_, "InitiatingMessage"); + return c.get(); +} +erab_release_cmd_s& s1ap_elem_procs_o::init_msg_c::erab_release_cmd() +{ + assert_choice_type(types::erab_release_cmd, type_, "InitiatingMessage"); + return c.get(); +} +init_context_setup_request_s& s1ap_elem_procs_o::init_msg_c::init_context_setup_request() +{ + assert_choice_type(types::init_context_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +ho_cancel_s& s1ap_elem_procs_o::init_msg_c::ho_cancel() +{ + assert_choice_type(types::ho_cancel, type_, "InitiatingMessage"); + return c.get(); +} +kill_request_s& s1ap_elem_procs_o::init_msg_c::kill_request() +{ + assert_choice_type(types::kill_request, type_, "InitiatingMessage"); + return c.get(); +} +reset_s& s1ap_elem_procs_o::init_msg_c::reset() +{ + assert_choice_type(types::reset, type_, "InitiatingMessage"); + return c.get(); +} +s1_setup_request_s& s1ap_elem_procs_o::init_msg_c::s1_setup_request() +{ + assert_choice_type(types::s1_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +ue_context_mod_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_mod_request() +{ + assert_choice_type(types::ue_context_mod_request, type_, "InitiatingMessage"); + return c.get(); +} +ue_context_release_cmd_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_cmd() +{ + assert_choice_type(types::ue_context_release_cmd, type_, "InitiatingMessage"); + return c.get(); +} +enb_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_upd() +{ + assert_choice_type(types::enb_cfg_upd, type_, "InitiatingMessage"); + return c.get(); +} +mme_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_upd() +{ + assert_choice_type(types::mme_cfg_upd, type_, "InitiatingMessage"); + return c.get(); +} +write_replace_warning_request_s& s1ap_elem_procs_o::init_msg_c::write_replace_warning_request() +{ + assert_choice_type(types::write_replace_warning_request, type_, "InitiatingMessage"); + return c.get(); +} +ho_notify_s& s1ap_elem_procs_o::init_msg_c::ho_notify() +{ + assert_choice_type(types::ho_notify, type_, "InitiatingMessage"); + return c.get(); +} +erab_release_ind_s& s1ap_elem_procs_o::init_msg_c::erab_release_ind() +{ + assert_choice_type(types::erab_release_ind, type_, "InitiatingMessage"); + return c.get(); +} +paging_s& s1ap_elem_procs_o::init_msg_c::paging() +{ + assert_choice_type(types::paging, type_, "InitiatingMessage"); + return c.get(); +} +dl_nas_transport_s& s1ap_elem_procs_o::init_msg_c::dl_nas_transport() +{ + assert_choice_type(types::dl_nas_transport, type_, "InitiatingMessage"); + return c.get(); +} +init_ue_msg_s& s1ap_elem_procs_o::init_msg_c::init_ue_msg() +{ + assert_choice_type(types::init_ue_msg, type_, "InitiatingMessage"); + return c.get(); +} +ul_nas_transport_s& s1ap_elem_procs_o::init_msg_c::ul_nas_transport() +{ + assert_choice_type(types::ul_nas_transport, type_, "InitiatingMessage"); + return c.get(); +} +error_ind_s& s1ap_elem_procs_o::init_msg_c::error_ind() +{ + assert_choice_type(types::error_ind, type_, "InitiatingMessage"); + return c.get(); +} +nas_non_delivery_ind_s& s1ap_elem_procs_o::init_msg_c::nas_non_delivery_ind() +{ + assert_choice_type(types::nas_non_delivery_ind, type_, "InitiatingMessage"); + return c.get(); +} +ue_context_release_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_request() +{ + assert_choice_type(types::ue_context_release_request, type_, "InitiatingMessage"); + return c.get(); +} +dl_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::dl_s1cdma2000tunnelling() +{ + assert_choice_type(types::dl_s1cdma2000tunnelling, type_, "InitiatingMessage"); + return c.get(); +} +ul_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::ul_s1cdma2000tunnelling() +{ + assert_choice_type(types::ul_s1cdma2000tunnelling, type_, "InitiatingMessage"); + return c.get(); +} +ue_cap_info_ind_s& s1ap_elem_procs_o::init_msg_c::ue_cap_info_ind() +{ + assert_choice_type(types::ue_cap_info_ind, type_, "InitiatingMessage"); + return c.get(); +} +enb_status_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_status_transfer() +{ + assert_choice_type(types::enb_status_transfer, type_, "InitiatingMessage"); + return c.get(); +} +mme_status_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_status_transfer() +{ + assert_choice_type(types::mme_status_transfer, type_, "InitiatingMessage"); + return c.get(); +} +deactiv_trace_s& s1ap_elem_procs_o::init_msg_c::deactiv_trace() +{ + assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage"); + return c.get(); +} +trace_start_s& s1ap_elem_procs_o::init_msg_c::trace_start() +{ + assert_choice_type(types::trace_start, type_, "InitiatingMessage"); + return c.get(); +} +trace_fail_ind_s& s1ap_elem_procs_o::init_msg_c::trace_fail_ind() +{ + assert_choice_type(types::trace_fail_ind, type_, "InitiatingMessage"); + return c.get(); +} +cell_traffic_trace_s& s1ap_elem_procs_o::init_msg_c::cell_traffic_trace() +{ + assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage"); + return c.get(); +} +location_report_ctrl_s& s1ap_elem_procs_o::init_msg_c::location_report_ctrl() +{ + assert_choice_type(types::location_report_ctrl, type_, "InitiatingMessage"); + return c.get(); +} +location_report_fail_ind_s& s1ap_elem_procs_o::init_msg_c::location_report_fail_ind() +{ + assert_choice_type(types::location_report_fail_ind, type_, "InitiatingMessage"); + return c.get(); +} +location_report_s& s1ap_elem_procs_o::init_msg_c::location_report() +{ + assert_choice_type(types::location_report, type_, "InitiatingMessage"); + return c.get(); +} +overload_start_s& s1ap_elem_procs_o::init_msg_c::overload_start() +{ + assert_choice_type(types::overload_start, type_, "InitiatingMessage"); + return c.get(); +} +overload_stop_s& s1ap_elem_procs_o::init_msg_c::overload_stop() +{ + assert_choice_type(types::overload_stop, type_, "InitiatingMessage"); + return c.get(); +} +enb_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_direct_info_transfer() +{ + assert_choice_type(types::enb_direct_info_transfer, type_, "InitiatingMessage"); + return c.get(); +} +mme_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_direct_info_transfer() +{ + assert_choice_type(types::mme_direct_info_transfer, type_, "InitiatingMessage"); + return c.get(); +} +enb_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_transfer() +{ + assert_choice_type(types::enb_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); +} +mme_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_transfer() +{ + assert_choice_type(types::mme_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); +} +private_msg_s& s1ap_elem_procs_o::init_msg_c::private_msg() +{ + assert_choice_type(types::private_msg, type_, "InitiatingMessage"); + return c.get(); +} +const ho_required_s& s1ap_elem_procs_o::init_msg_c::ho_required() const +{ + assert_choice_type(types::ho_required, type_, "InitiatingMessage"); + return c.get(); +} +const ho_request_s& s1ap_elem_procs_o::init_msg_c::ho_request() const +{ + assert_choice_type(types::ho_request, type_, "InitiatingMessage"); + return c.get(); +} +const path_switch_request_s& s1ap_elem_procs_o::init_msg_c::path_switch_request() const +{ + assert_choice_type(types::path_switch_request, type_, "InitiatingMessage"); + return c.get(); +} +const erab_setup_request_s& s1ap_elem_procs_o::init_msg_c::erab_setup_request() const +{ + assert_choice_type(types::erab_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +const erab_modify_request_s& s1ap_elem_procs_o::init_msg_c::erab_modify_request() const +{ + assert_choice_type(types::erab_modify_request, type_, "InitiatingMessage"); + return c.get(); +} +const erab_release_cmd_s& s1ap_elem_procs_o::init_msg_c::erab_release_cmd() const +{ + assert_choice_type(types::erab_release_cmd, type_, "InitiatingMessage"); + return c.get(); +} +const init_context_setup_request_s& s1ap_elem_procs_o::init_msg_c::init_context_setup_request() const +{ + assert_choice_type(types::init_context_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +const ho_cancel_s& s1ap_elem_procs_o::init_msg_c::ho_cancel() const +{ + assert_choice_type(types::ho_cancel, type_, "InitiatingMessage"); + return c.get(); +} +const kill_request_s& s1ap_elem_procs_o::init_msg_c::kill_request() const +{ + assert_choice_type(types::kill_request, type_, "InitiatingMessage"); + return c.get(); +} +const reset_s& s1ap_elem_procs_o::init_msg_c::reset() const +{ + assert_choice_type(types::reset, type_, "InitiatingMessage"); + return c.get(); +} +const s1_setup_request_s& s1ap_elem_procs_o::init_msg_c::s1_setup_request() const +{ + assert_choice_type(types::s1_setup_request, type_, "InitiatingMessage"); + return c.get(); +} +const ue_context_mod_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_mod_request() const +{ + assert_choice_type(types::ue_context_mod_request, type_, "InitiatingMessage"); + return c.get(); +} +const ue_context_release_cmd_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_cmd() const +{ + assert_choice_type(types::ue_context_release_cmd, type_, "InitiatingMessage"); + return c.get(); +} +const enb_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_upd() const +{ + assert_choice_type(types::enb_cfg_upd, type_, "InitiatingMessage"); + return c.get(); +} +const mme_cfg_upd_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_upd() const +{ + assert_choice_type(types::mme_cfg_upd, type_, "InitiatingMessage"); + return c.get(); +} +const write_replace_warning_request_s& s1ap_elem_procs_o::init_msg_c::write_replace_warning_request() const +{ + assert_choice_type(types::write_replace_warning_request, type_, "InitiatingMessage"); + return c.get(); +} +const ho_notify_s& s1ap_elem_procs_o::init_msg_c::ho_notify() const { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ho_required: - c.set(other.c.get()); - break; - case types::ho_request: - c.set(other.c.get()); - break; - case types::path_switch_request: - c.set(other.c.get()); - break; - case types::erab_setup_request: - c.set(other.c.get()); - break; - case types::erab_modify_request: - c.set(other.c.get()); - break; - case types::erab_release_cmd: - c.set(other.c.get()); - break; - case types::init_context_setup_request: - c.set(other.c.get()); - break; - case types::ho_cancel: - c.set(other.c.get()); - break; - case types::kill_request: - c.set(other.c.get()); - break; - case types::reset: - c.set(other.c.get()); - break; - case types::s1_setup_request: - c.set(other.c.get()); - break; - case types::ue_context_mod_request: - c.set(other.c.get()); - break; - case types::ue_context_release_cmd: - c.set(other.c.get()); - break; - case types::enb_cfg_upd: - c.set(other.c.get()); - break; - case types::mme_cfg_upd: - c.set(other.c.get()); - break; - case types::write_replace_warning_request: - c.set(other.c.get()); - break; - case types::ho_notify: - c.set(other.c.get()); - break; - case types::erab_release_ind: - c.set(other.c.get()); - break; - case types::paging: - c.set(other.c.get()); - break; - case types::dl_nas_transport: - c.set(other.c.get()); - break; - case types::init_ue_msg: - c.set(other.c.get()); - break; - case types::ul_nas_transport: - c.set(other.c.get()); - break; - case types::error_ind: - c.set(other.c.get()); - break; - case types::nas_non_delivery_ind: - c.set(other.c.get()); - break; - case types::ue_context_release_request: - c.set(other.c.get()); - break; - case types::dl_s1cdma2000tunnelling: - c.set(other.c.get()); - break; - case types::ul_s1cdma2000tunnelling: - c.set(other.c.get()); - break; - case types::ue_cap_info_ind: - c.set(other.c.get()); - break; - case types::enb_status_transfer: - c.set(other.c.get()); - break; - case types::mme_status_transfer: - c.set(other.c.get()); - break; - case types::deactiv_trace: - c.set(other.c.get()); - break; - case types::trace_start: - c.set(other.c.get()); - break; - case types::trace_fail_ind: - c.set(other.c.get()); - break; - case types::cell_traffic_trace: - c.set(other.c.get()); - break; - case types::location_report_ctrl: - c.set(other.c.get()); - break; - case types::location_report_fail_ind: - c.set(other.c.get()); - break; - case types::location_report: - c.set(other.c.get()); - break; - case types::overload_start: - c.set(other.c.get()); - break; - case types::overload_stop: - c.set(other.c.get()); - break; - case types::enb_direct_info_transfer: - c.set(other.c.get()); - break; - case types::mme_direct_info_transfer: - c.set(other.c.get()); - break; - case types::enb_cfg_transfer: - c.set(other.c.get()); - break; - case types::mme_cfg_transfer: - c.set(other.c.get()); - break; - case types::private_msg: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "s1ap_elem_procs_o::init_msg_c"); - } - - return *this; + assert_choice_type(types::ho_notify, type_, "InitiatingMessage"); + return c.get(); +} +const erab_release_ind_s& s1ap_elem_procs_o::init_msg_c::erab_release_ind() const +{ + assert_choice_type(types::erab_release_ind, type_, "InitiatingMessage"); + return c.get(); +} +const paging_s& s1ap_elem_procs_o::init_msg_c::paging() const +{ + assert_choice_type(types::paging, type_, "InitiatingMessage"); + return c.get(); +} +const dl_nas_transport_s& s1ap_elem_procs_o::init_msg_c::dl_nas_transport() const +{ + assert_choice_type(types::dl_nas_transport, type_, "InitiatingMessage"); + return c.get(); +} +const init_ue_msg_s& s1ap_elem_procs_o::init_msg_c::init_ue_msg() const +{ + assert_choice_type(types::init_ue_msg, type_, "InitiatingMessage"); + return c.get(); +} +const ul_nas_transport_s& s1ap_elem_procs_o::init_msg_c::ul_nas_transport() const +{ + assert_choice_type(types::ul_nas_transport, type_, "InitiatingMessage"); + return c.get(); +} +const error_ind_s& s1ap_elem_procs_o::init_msg_c::error_ind() const +{ + assert_choice_type(types::error_ind, type_, "InitiatingMessage"); + return c.get(); +} +const nas_non_delivery_ind_s& s1ap_elem_procs_o::init_msg_c::nas_non_delivery_ind() const +{ + assert_choice_type(types::nas_non_delivery_ind, type_, "InitiatingMessage"); + return c.get(); +} +const ue_context_release_request_s& s1ap_elem_procs_o::init_msg_c::ue_context_release_request() const +{ + assert_choice_type(types::ue_context_release_request, type_, "InitiatingMessage"); + return c.get(); +} +const dl_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::dl_s1cdma2000tunnelling() const +{ + assert_choice_type(types::dl_s1cdma2000tunnelling, type_, "InitiatingMessage"); + return c.get(); +} +const ul_s1cdma2000tunnelling_s& s1ap_elem_procs_o::init_msg_c::ul_s1cdma2000tunnelling() const +{ + assert_choice_type(types::ul_s1cdma2000tunnelling, type_, "InitiatingMessage"); + return c.get(); +} +const ue_cap_info_ind_s& s1ap_elem_procs_o::init_msg_c::ue_cap_info_ind() const +{ + assert_choice_type(types::ue_cap_info_ind, type_, "InitiatingMessage"); + return c.get(); +} +const enb_status_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_status_transfer() const +{ + assert_choice_type(types::enb_status_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const mme_status_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_status_transfer() const +{ + assert_choice_type(types::mme_status_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const deactiv_trace_s& s1ap_elem_procs_o::init_msg_c::deactiv_trace() const +{ + assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage"); + return c.get(); +} +const trace_start_s& s1ap_elem_procs_o::init_msg_c::trace_start() const +{ + assert_choice_type(types::trace_start, type_, "InitiatingMessage"); + return c.get(); +} +const trace_fail_ind_s& s1ap_elem_procs_o::init_msg_c::trace_fail_ind() const +{ + assert_choice_type(types::trace_fail_ind, type_, "InitiatingMessage"); + return c.get(); +} +const cell_traffic_trace_s& s1ap_elem_procs_o::init_msg_c::cell_traffic_trace() const +{ + assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_ctrl_s& s1ap_elem_procs_o::init_msg_c::location_report_ctrl() const +{ + assert_choice_type(types::location_report_ctrl, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_fail_ind_s& s1ap_elem_procs_o::init_msg_c::location_report_fail_ind() const +{ + assert_choice_type(types::location_report_fail_ind, type_, "InitiatingMessage"); + return c.get(); +} +const location_report_s& s1ap_elem_procs_o::init_msg_c::location_report() const +{ + assert_choice_type(types::location_report, type_, "InitiatingMessage"); + return c.get(); +} +const overload_start_s& s1ap_elem_procs_o::init_msg_c::overload_start() const +{ + assert_choice_type(types::overload_start, type_, "InitiatingMessage"); + return c.get(); +} +const overload_stop_s& s1ap_elem_procs_o::init_msg_c::overload_stop() const +{ + assert_choice_type(types::overload_stop, type_, "InitiatingMessage"); + return c.get(); +} +const enb_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_direct_info_transfer() const +{ + assert_choice_type(types::enb_direct_info_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const mme_direct_info_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_direct_info_transfer() const +{ + assert_choice_type(types::mme_direct_info_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const enb_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::enb_cfg_transfer() const +{ + assert_choice_type(types::enb_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const mme_cfg_transfer_s& s1ap_elem_procs_o::init_msg_c::mme_cfg_transfer() const +{ + assert_choice_type(types::mme_cfg_transfer, type_, "InitiatingMessage"); + return c.get(); +} +const private_msg_s& s1ap_elem_procs_o::init_msg_c::private_msg() const +{ + assert_choice_type(types::private_msg, type_, "InitiatingMessage"); + return c.get(); } void s1ap_elem_procs_o::init_msg_c::to_json(json_writer& j) const { @@ -64468,7 +64781,7 @@ SRSASN_CODE s1ap_elem_procs_o::init_msg_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_elem_procs_o::init_msg_c::types_opts::to_string() const +const char* s1ap_elem_procs_o::init_msg_c::types_opts::to_string() const { static const char* options[] = {"HandoverRequired", "HandoverRequest", @@ -64518,166 +64831,6 @@ std::string s1ap_elem_procs_o::init_msg_c::types_opts::to_string() const } // SuccessfulOutcome ::= OPEN TYPE -ho_cmd_s& s1ap_elem_procs_o::successful_outcome_c::ho_cmd() -{ - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ho_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_request_ack() -{ - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -path_switch_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::path_switch_request_ack() -{ - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -erab_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_setup_resp() -{ - assert_choice_type("E-RABSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -erab_modify_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_modify_resp() -{ - assert_choice_type("E-RABModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -erab_release_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_release_resp() -{ - assert_choice_type("E-RABReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -init_context_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::init_context_setup_resp() -{ - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ho_cancel_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_cancel_ack() -{ - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -kill_resp_s& s1ap_elem_procs_o::successful_outcome_c::kill_resp() -{ - assert_choice_type("KillResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -reset_ack_s& s1ap_elem_procs_o::successful_outcome_c::reset_ack() -{ - assert_choice_type("ResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -s1_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::s1_setup_resp() -{ - assert_choice_type("S1SetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ue_context_mod_resp_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() -{ - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -ue_context_release_complete_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_release_complete() -{ - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -enb_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::enb_cfg_upd_ack() -{ - assert_choice_type("ENBConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -mme_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::mme_cfg_upd_ack() -{ - assert_choice_type("MMEConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -write_replace_warning_resp_s& s1ap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() -{ - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const ho_cmd_s& s1ap_elem_procs_o::successful_outcome_c::ho_cmd() const -{ - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const ho_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_request_ack() const -{ - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const path_switch_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::path_switch_request_ack() const -{ - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const erab_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_setup_resp() const -{ - assert_choice_type("E-RABSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const erab_modify_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_modify_resp() const -{ - assert_choice_type("E-RABModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const erab_release_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_release_resp() const -{ - assert_choice_type("E-RABReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const init_context_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::init_context_setup_resp() const -{ - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const ho_cancel_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_cancel_ack() const -{ - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const kill_resp_s& s1ap_elem_procs_o::successful_outcome_c::kill_resp() const -{ - assert_choice_type("KillResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const reset_ack_s& s1ap_elem_procs_o::successful_outcome_c::reset_ack() const -{ - assert_choice_type("ResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const s1_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::s1_setup_resp() const -{ - assert_choice_type("S1SetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const ue_context_mod_resp_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() const -{ - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const ue_context_release_complete_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_release_complete() const -{ - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const enb_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::enb_cfg_upd_ack() const -{ - assert_choice_type("ENBConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const mme_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::mme_cfg_upd_ack() const -{ - assert_choice_type("MMEConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} -const write_replace_warning_resp_s& s1ap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() const -{ - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); -} void s1ap_elem_procs_o::successful_outcome_c::destroy_() { switch (type_) { @@ -64914,6 +65067,166 @@ s1ap_elem_procs_o::successful_outcome_c::operator=(const s1ap_elem_procs_o::succ return *this; } +ho_cmd_s& s1ap_elem_procs_o::successful_outcome_c::ho_cmd() +{ + assert_choice_type(types::ho_cmd, type_, "SuccessfulOutcome"); + return c.get(); +} +ho_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_request_ack() +{ + assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +path_switch_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::path_switch_request_ack() +{ + assert_choice_type(types::path_switch_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +erab_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_setup_resp() +{ + assert_choice_type(types::erab_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +erab_modify_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_modify_resp() +{ + assert_choice_type(types::erab_modify_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +erab_release_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_release_resp() +{ + assert_choice_type(types::erab_release_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +init_context_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::init_context_setup_resp() +{ + assert_choice_type(types::init_context_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +ho_cancel_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_cancel_ack() +{ + assert_choice_type(types::ho_cancel_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +kill_resp_s& s1ap_elem_procs_o::successful_outcome_c::kill_resp() +{ + assert_choice_type(types::kill_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +reset_ack_s& s1ap_elem_procs_o::successful_outcome_c::reset_ack() +{ + assert_choice_type(types::reset_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +s1_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::s1_setup_resp() +{ + assert_choice_type(types::s1_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +ue_context_mod_resp_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() +{ + assert_choice_type(types::ue_context_mod_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +ue_context_release_complete_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_release_complete() +{ + assert_choice_type(types::ue_context_release_complete, type_, "SuccessfulOutcome"); + return c.get(); +} +enb_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::enb_cfg_upd_ack() +{ + assert_choice_type(types::enb_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +mme_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::mme_cfg_upd_ack() +{ + assert_choice_type(types::mme_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +write_replace_warning_resp_s& s1ap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() +{ + assert_choice_type(types::write_replace_warning_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_cmd_s& s1ap_elem_procs_o::successful_outcome_c::ho_cmd() const +{ + assert_choice_type(types::ho_cmd, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_request_ack() const +{ + assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const path_switch_request_ack_s& s1ap_elem_procs_o::successful_outcome_c::path_switch_request_ack() const +{ + assert_choice_type(types::path_switch_request_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const erab_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_setup_resp() const +{ + assert_choice_type(types::erab_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const erab_modify_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_modify_resp() const +{ + assert_choice_type(types::erab_modify_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const erab_release_resp_s& s1ap_elem_procs_o::successful_outcome_c::erab_release_resp() const +{ + assert_choice_type(types::erab_release_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const init_context_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::init_context_setup_resp() const +{ + assert_choice_type(types::init_context_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ho_cancel_ack_s& s1ap_elem_procs_o::successful_outcome_c::ho_cancel_ack() const +{ + assert_choice_type(types::ho_cancel_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const kill_resp_s& s1ap_elem_procs_o::successful_outcome_c::kill_resp() const +{ + assert_choice_type(types::kill_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const reset_ack_s& s1ap_elem_procs_o::successful_outcome_c::reset_ack() const +{ + assert_choice_type(types::reset_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const s1_setup_resp_s& s1ap_elem_procs_o::successful_outcome_c::s1_setup_resp() const +{ + assert_choice_type(types::s1_setup_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_resp_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_mod_resp() const +{ + assert_choice_type(types::ue_context_mod_resp, type_, "SuccessfulOutcome"); + return c.get(); +} +const ue_context_release_complete_s& s1ap_elem_procs_o::successful_outcome_c::ue_context_release_complete() const +{ + assert_choice_type(types::ue_context_release_complete, type_, "SuccessfulOutcome"); + return c.get(); +} +const enb_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::enb_cfg_upd_ack() const +{ + assert_choice_type(types::enb_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const mme_cfg_upd_ack_s& s1ap_elem_procs_o::successful_outcome_c::mme_cfg_upd_ack() const +{ + assert_choice_type(types::mme_cfg_upd_ack, type_, "SuccessfulOutcome"); + return c.get(); +} +const write_replace_warning_resp_s& s1ap_elem_procs_o::successful_outcome_c::write_replace_warning_resp() const +{ + assert_choice_type(types::write_replace_warning_resp, type_, "SuccessfulOutcome"); + return c.get(); +} void s1ap_elem_procs_o::successful_outcome_c::to_json(json_writer& j) const { j.start_obj(); @@ -65104,7 +65417,7 @@ SRSASN_CODE s1ap_elem_procs_o::successful_outcome_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_elem_procs_o::successful_outcome_c::types_opts::to_string() const +const char* s1ap_elem_procs_o::successful_outcome_c::types_opts::to_string() const { static const char* options[] = {"HandoverCommand", "HandoverRequestAcknowledge", @@ -65134,86 +65447,6 @@ uint8_t s1ap_elem_procs_o::successful_outcome_c::types_opts::to_number() const } // UnsuccessfulOutcome ::= OPEN TYPE -ho_prep_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() -{ - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -ho_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_fail() -{ - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -path_switch_request_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() -{ - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -init_context_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() -{ - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -s1_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::s1_setup_fail() -{ - assert_choice_type("S1SetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -ue_context_mod_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() -{ - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -enb_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::enb_cfg_upd_fail() -{ - assert_choice_type("ENBConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -mme_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::mme_cfg_upd_fail() -{ - assert_choice_type("MMEConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const ho_prep_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() const -{ - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const ho_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_fail() const -{ - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const path_switch_request_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() const -{ - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const init_context_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() const -{ - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const s1_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::s1_setup_fail() const -{ - assert_choice_type("S1SetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const ue_context_mod_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() const -{ - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const enb_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::enb_cfg_upd_fail() const -{ - assert_choice_type("ENBConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} -const mme_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::mme_cfg_upd_fail() const -{ - assert_choice_type("MMEConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); -} void s1ap_elem_procs_o::unsuccessful_outcome_c::destroy_() { switch (type_) { @@ -65355,6 +65588,86 @@ s1ap_elem_procs_o::unsuccessful_outcome_c::operator=(const s1ap_elem_procs_o::un return *this; } +ho_prep_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() +{ + assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +ho_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_fail() +{ + assert_choice_type(types::ho_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +path_switch_request_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() +{ + assert_choice_type(types::path_switch_request_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +init_context_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() +{ + assert_choice_type(types::init_context_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +s1_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::s1_setup_fail() +{ + assert_choice_type(types::s1_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +ue_context_mod_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() +{ + assert_choice_type(types::ue_context_mod_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +enb_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::enb_cfg_upd_fail() +{ + assert_choice_type(types::enb_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +mme_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::mme_cfg_upd_fail() +{ + assert_choice_type(types::mme_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const ho_prep_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() const +{ + assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const ho_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ho_fail() const +{ + assert_choice_type(types::ho_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const path_switch_request_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::path_switch_request_fail() const +{ + assert_choice_type(types::path_switch_request_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const init_context_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_fail() const +{ + assert_choice_type(types::init_context_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const s1_setup_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::s1_setup_fail() const +{ + assert_choice_type(types::s1_setup_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_fail() const +{ + assert_choice_type(types::ue_context_mod_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const enb_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::enb_cfg_upd_fail() const +{ + assert_choice_type(types::enb_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} +const mme_cfg_upd_fail_s& s1ap_elem_procs_o::unsuccessful_outcome_c::mme_cfg_upd_fail() const +{ + assert_choice_type(types::mme_cfg_upd_fail, type_, "UnsuccessfulOutcome"); + return c.get(); +} void s1ap_elem_procs_o::unsuccessful_outcome_c::to_json(json_writer& j) const { j.start_obj(); @@ -65465,7 +65778,7 @@ SRSASN_CODE s1ap_elem_procs_o::unsuccessful_outcome_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_elem_procs_o::unsuccessful_outcome_c::types_opts::to_string() const +const char* s1ap_elem_procs_o::unsuccessful_outcome_c::types_opts::to_string() const { static const char* options[] = {"HandoverPreparationFailure", "HandoverFailure", @@ -65582,26 +65895,6 @@ presence_e last_visited_eutran_cell_info_ext_ies_o::get_presence(const uint32_t& } // Extension ::= OPEN TYPE -uint16_t& last_visited_eutran_cell_info_ext_ies_o::ext_c::time_ue_stayed_in_cell_enhanced_granularity() -{ - assert_choice_type("INTEGER (0..40950)", type_.to_string(), "Extension"); - return c.get(); -} -cause_c& last_visited_eutran_cell_info_ext_ies_o::ext_c::ho_cause() -{ - assert_choice_type("Cause", type_.to_string(), "Extension"); - return c.get(); -} -const uint16_t& last_visited_eutran_cell_info_ext_ies_o::ext_c::time_ue_stayed_in_cell_enhanced_granularity() const -{ - assert_choice_type("INTEGER (0..40950)", type_.to_string(), "Extension"); - return c.get(); -} -const cause_c& last_visited_eutran_cell_info_ext_ies_o::ext_c::ho_cause() const -{ - assert_choice_type("Cause", type_.to_string(), "Extension"); - return c.get(); -} void last_visited_eutran_cell_info_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -65666,6 +65959,26 @@ last_visited_eutran_cell_info_ext_ies_o::ext_c::operator=(const last_visited_eut return *this; } +uint16_t& last_visited_eutran_cell_info_ext_ies_o::ext_c::time_ue_stayed_in_cell_enhanced_granularity() +{ + assert_choice_type(types::time_ue_stayed_in_cell_enhanced_granularity, type_, "Extension"); + return c.get(); +} +cause_c& last_visited_eutran_cell_info_ext_ies_o::ext_c::ho_cause() +{ + assert_choice_type(types::ho_cause, type_, "Extension"); + return c.get(); +} +const uint16_t& last_visited_eutran_cell_info_ext_ies_o::ext_c::time_ue_stayed_in_cell_enhanced_granularity() const +{ + assert_choice_type(types::time_ue_stayed_in_cell_enhanced_granularity, type_, "Extension"); + return c.get(); +} +const cause_c& last_visited_eutran_cell_info_ext_ies_o::ext_c::ho_cause() const +{ + assert_choice_type(types::ho_cause, type_, "Extension"); + return c.get(); +} void last_visited_eutran_cell_info_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -65715,7 +66028,7 @@ SRSASN_CODE last_visited_eutran_cell_info_ext_ies_o::ext_c::unpack(cbit_ref& bre return SRSASN_SUCCESS; } -std::string last_visited_eutran_cell_info_ext_ies_o::ext_c::types_opts::to_string() const +const char* last_visited_eutran_cell_info_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = {"INTEGER (0..40950)", "Cause"}; return convert_enum_idx(options, 2, value, "last_visited_eutran_cell_info_ext_ies_o::ext_c::types"); @@ -65856,7 +66169,7 @@ SRSASN_CODE last_visited_geran_cell_info_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string last_visited_geran_cell_info_c::types_opts::to_string() const +const char* last_visited_geran_cell_info_c::types_opts::to_string() const { static const char* options[] = {"undefined"}; return convert_enum_idx(options, 1, value, "last_visited_geran_cell_info_c::types"); @@ -65954,6 +66267,26 @@ last_visited_cell_item_c& last_visited_cell_item_c::operator=(const last_visited return *this; } +last_visited_eutran_cell_info_s& last_visited_cell_item_c::set_e_utran_cell() +{ + set(types::e_utran_cell); + return c.get(); +} +unbounded_octstring& last_visited_cell_item_c::set_utran_cell() +{ + set(types::utran_cell); + return c.get >(); +} +last_visited_geran_cell_info_c& last_visited_cell_item_c::set_geran_cell() +{ + set(types::geran_cell); + return c.get(); +} +unbounded_octstring& last_visited_cell_item_c::set_ng_ran_cell() +{ + set(types::ng_ran_cell); + return c.get >(); +} void last_visited_cell_item_c::to_json(json_writer& j) const { j.start_obj(); @@ -66026,7 +66359,7 @@ SRSASN_CODE last_visited_cell_item_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string last_visited_cell_item_c::types_opts::to_string() const +const char* last_visited_cell_item_c::types_opts::to_string() const { static const char* options[] = {"e-UTRAN-Cell", "uTRAN-Cell", "gERAN-Cell", "nG-RAN-Cell"}; return convert_enum_idx(options, 4, value, "last_visited_cell_item_c::types"); @@ -66151,6 +66484,26 @@ multi_cell_load_report_resp_item_c::operator=(const multi_cell_load_report_resp_ return *this; } +eutran_resp_s& multi_cell_load_report_resp_item_c::set_eutran_resp() +{ + set(types::eutran_resp); + return c.get(); +} +unbounded_octstring& multi_cell_load_report_resp_item_c::set_utran_resp() +{ + set(types::utran_resp); + return c.get >(); +} +unbounded_octstring& multi_cell_load_report_resp_item_c::set_geran_resp() +{ + set(types::geran_resp); + return c.get >(); +} +ehrpd_multi_sector_load_report_resp_item_s& multi_cell_load_report_resp_item_c::set_ehrpd() +{ + set(types::ehrpd); + return c.get(); +} void multi_cell_load_report_resp_item_c::to_json(json_writer& j) const { j.start_obj(); @@ -66223,7 +66576,7 @@ SRSASN_CODE multi_cell_load_report_resp_item_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string multi_cell_load_report_resp_item_c::types_opts::to_string() const +const char* multi_cell_load_report_resp_item_c::types_opts::to_string() const { static const char* options[] = {"eUTRANResponse", "uTRANResponse", "gERANResponse", "eHRPD"}; return convert_enum_idx(options, 4, value, "multi_cell_load_report_resp_item_c::types"); @@ -66410,6 +66763,21 @@ s1ap_pdu_c& s1ap_pdu_c::operator=(const s1ap_pdu_c& other) return *this; } +init_msg_s& s1ap_pdu_c::set_init_msg() +{ + set(types::init_msg); + return c.get(); +} +successful_outcome_s& s1ap_pdu_c::set_successful_outcome() +{ + set(types::successful_outcome); + return c.get(); +} +unsuccessful_outcome_s& s1ap_pdu_c::set_unsuccessful_outcome() +{ + set(types::unsuccessful_outcome); + return c.get(); +} void s1ap_pdu_c::to_json(json_writer& j) const { j.start_obj(); @@ -66472,14 +66840,14 @@ SRSASN_CODE s1ap_pdu_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string s1ap_pdu_c::types_opts::to_string() const +const char* s1ap_pdu_c::types_opts::to_string() const { static const char* options[] = {"initiatingMessage", "successfulOutcome", "unsuccessfulOutcome"}; return convert_enum_idx(options, 3, value, "s1ap_pdu_c::types"); } // CellActivationCause ::= ENUMERATED -std::string cell_activation_cause_opts::to_string() const +const char* cell_activation_cause_opts::to_string() const { static const char* options[] = { "application-container-syntax-error", "inconsistent-reporting-cell-identifier", "unspecified"}; @@ -66487,7 +66855,7 @@ std::string cell_activation_cause_opts::to_string() const } // CellLoadReportingCause ::= ENUMERATED -std::string cell_load_report_cause_opts::to_string() const +const char* cell_load_report_cause_opts::to_string() const { static const char* options[] = { "application-container-syntax-error", "inconsistent-reporting-cell-identifier", "unspecified"}; @@ -66495,7 +66863,7 @@ std::string cell_load_report_cause_opts::to_string() const } // CellStateIndicationCause ::= ENUMERATED -std::string cell_state_ind_cause_opts::to_string() const +const char* cell_state_ind_cause_opts::to_string() const { static const char* options[] = { "application-container-syntax-error", "inconsistent-reporting-cell-identifier", "unspecified"}; @@ -66503,7 +66871,7 @@ std::string cell_state_ind_cause_opts::to_string() const } // FailureEventReportingCause ::= ENUMERATED -std::string fail_event_report_cause_opts::to_string() const +const char* fail_event_report_cause_opts::to_string() const { static const char* options[] = { "application-container-syntax-error", "inconsistent-reporting-cell-identifier", "unspecified"}; @@ -66511,7 +66879,7 @@ std::string fail_event_report_cause_opts::to_string() const } // HOReportingCause ::= ENUMERATED -std::string ho_report_cause_opts::to_string() const +const char* ho_report_cause_opts::to_string() const { static const char* options[] = { "application-container-syntax-error", "inconsistent-reporting-cell-identifier", "unspecified"}; @@ -66592,6 +66960,41 @@ so_ntransfer_cause_c& so_ntransfer_cause_c::operator=(const so_ntransfer_cause_c return *this; } +cell_load_report_cause_e& so_ntransfer_cause_c::set_cell_load_report() +{ + set(types::cell_load_report); + return c.get(); +} +cell_load_report_cause_e& so_ntransfer_cause_c::set_multi_cell_load_report() +{ + set(types::multi_cell_load_report); + return c.get(); +} +cell_load_report_cause_e& so_ntransfer_cause_c::set_event_triggered_cell_load_report() +{ + set(types::event_triggered_cell_load_report); + return c.get(); +} +ho_report_cause_e& so_ntransfer_cause_c::set_horeport() +{ + set(types::horeport); + return c.get(); +} +cell_activation_cause_e& so_ntransfer_cause_c::set_eutran_cell_activation() +{ + set(types::eutran_cell_activation); + return c.get(); +} +cell_state_ind_cause_e& so_ntransfer_cause_c::set_energy_savings_ind() +{ + set(types::energy_savings_ind); + return c.get(); +} +fail_event_report_cause_e& so_ntransfer_cause_c::set_fail_event_report() +{ + set(types::fail_event_report); + return c.get(); +} void so_ntransfer_cause_c::to_json(json_writer& j) const { j.start_obj(); @@ -66699,7 +67102,7 @@ SRSASN_CODE so_ntransfer_cause_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string so_ntransfer_cause_c::types_opts::to_string() const +const char* so_ntransfer_cause_c::types_opts::to_string() const { static const char* options[] = {"cellLoadReporting", "multiCellLoadReporting", @@ -66834,6 +67237,40 @@ so_ntransfer_request_container_c::operator=(const so_ntransfer_request_container return *this; } +void so_ntransfer_request_container_c::set_cell_load_report() +{ + set(types::cell_load_report); +} +multi_cell_load_report_request_s& so_ntransfer_request_container_c::set_multi_cell_load_report() +{ + set(types::multi_cell_load_report); + return c.get(); +} +event_triggered_cell_load_report_request_s& so_ntransfer_request_container_c::set_event_triggered_cell_load_report() +{ + set(types::event_triggered_cell_load_report); + return c.get(); +} +ho_report_s& so_ntransfer_request_container_c::set_horeport() +{ + set(types::horeport); + return c.get(); +} +cell_activation_request_s& so_ntransfer_request_container_c::set_eutran_cell_activation() +{ + set(types::eutran_cell_activation); + return c.get(); +} +cell_state_ind_s& so_ntransfer_request_container_c::set_energy_savings_ind() +{ + set(types::energy_savings_ind); + return c.get(); +} +fail_event_report_c& so_ntransfer_request_container_c::set_fail_event_report() +{ + set(types::fail_event_report); + return c.get(); +} void so_ntransfer_request_container_c::to_json(json_writer& j) const { j.start_obj(); @@ -66944,7 +67381,7 @@ SRSASN_CODE so_ntransfer_request_container_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string so_ntransfer_request_container_c::types_opts::to_string() const +const char* so_ntransfer_request_container_c::types_opts::to_string() const { static const char* options[] = {"cellLoadReporting", "multiCellLoadReporting", @@ -67066,6 +67503,38 @@ so_ntransfer_resp_container_c& so_ntransfer_resp_container_c::operator=(const so return *this; } +cell_load_report_resp_c& so_ntransfer_resp_container_c::set_cell_load_report() +{ + set(types::cell_load_report); + return c.get(); +} +multi_cell_load_report_resp_l& so_ntransfer_resp_container_c::set_multi_cell_load_report() +{ + set(types::multi_cell_load_report); + return c.get(); +} +event_triggered_cell_load_report_resp_s& so_ntransfer_resp_container_c::set_event_triggered_cell_load_report() +{ + set(types::event_triggered_cell_load_report); + return c.get(); +} +void so_ntransfer_resp_container_c::set_horeport() +{ + set(types::horeport); +} +cell_activation_resp_s& so_ntransfer_resp_container_c::set_eutran_cell_activation() +{ + set(types::eutran_cell_activation); + return c.get(); +} +void so_ntransfer_resp_container_c::set_energy_savings_ind() +{ + set(types::energy_savings_ind); +} +void so_ntransfer_resp_container_c::set_fail_event_report() +{ + set(types::fail_event_report); +} void so_ntransfer_resp_container_c::to_json(json_writer& j) const { j.start_obj(); @@ -67165,7 +67634,7 @@ SRSASN_CODE so_ntransfer_resp_container_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -std::string so_ntransfer_resp_container_c::types_opts::to_string() const +const char* so_ntransfer_resp_container_c::types_opts::to_string() const { static const char* options[] = {"cellLoadReporting", "multiCellLoadReporting", @@ -67178,7 +67647,7 @@ std::string so_ntransfer_resp_container_c::types_opts::to_string() const } // IMSvoiceEPSfallbackfrom5G ::= ENUMERATED -std::string im_svoice_ep_sfallbackfrom5_g_opts::to_string() const +const char* im_svoice_ep_sfallbackfrom5_g_opts::to_string() const { static const char* options[] = {"true"}; return convert_enum_idx(options, 1, value, "im_svoice_ep_sfallbackfrom5_g_e"); @@ -67263,60 +67732,6 @@ presence_e sourceenb_to_targetenb_transparent_container_ext_ies_o::get_presence( } // Extension ::= OPEN TYPE -fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::mob_info() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -unbounded_octstring& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::ue_history_info_from_the_ue() -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -im_svoice_ep_sfallbackfrom5_g_e& -sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::im_svoice_ep_sfallbackfrom5_g() -{ - assert_choice_type("IMSvoiceEPSfallbackfrom5G", type_.to_string(), "Extension"); - return c.get(); -} -fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::add_rrm_prio_idx() -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -contextat_source_s& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::contextat_source() -{ - assert_choice_type("ContextatSource", type_.to_string(), "Extension"); - return c.get(); -} -const fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::mob_info() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const unbounded_octstring& -sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::ue_history_info_from_the_ue() const -{ - assert_choice_type("OCTET STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const im_svoice_ep_sfallbackfrom5_g_e& -sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::im_svoice_ep_sfallbackfrom5_g() const -{ - assert_choice_type("IMSvoiceEPSfallbackfrom5G", type_.to_string(), "Extension"); - return c.get(); -} -const fixed_bitstring<32, false, true>& -sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::add_rrm_prio_idx() const -{ - assert_choice_type("BIT STRING", type_.to_string(), "Extension"); - return c.get >(); -} -const contextat_source_s& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::contextat_source() const -{ - assert_choice_type("ContextatSource", type_.to_string(), "Extension"); - return c.get(); -} void sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -67419,6 +67834,60 @@ sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::operator=( return *this; } +fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::mob_info() +{ + assert_choice_type(types::mob_info, type_, "Extension"); + return c.get >(); +} +unbounded_octstring& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::ue_history_info_from_the_ue() +{ + assert_choice_type(types::ue_history_info_from_the_ue, type_, "Extension"); + return c.get >(); +} +im_svoice_ep_sfallbackfrom5_g_e& +sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::im_svoice_ep_sfallbackfrom5_g() +{ + assert_choice_type(types::im_svoice_ep_sfallbackfrom5_g, type_, "Extension"); + return c.get(); +} +fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::add_rrm_prio_idx() +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Extension"); + return c.get >(); +} +contextat_source_s& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::contextat_source() +{ + assert_choice_type(types::contextat_source, type_, "Extension"); + return c.get(); +} +const fixed_bitstring<32, false, true>& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::mob_info() const +{ + assert_choice_type(types::mob_info, type_, "Extension"); + return c.get >(); +} +const unbounded_octstring& +sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::ue_history_info_from_the_ue() const +{ + assert_choice_type(types::ue_history_info_from_the_ue, type_, "Extension"); + return c.get >(); +} +const im_svoice_ep_sfallbackfrom5_g_e& +sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::im_svoice_ep_sfallbackfrom5_g() const +{ + assert_choice_type(types::im_svoice_ep_sfallbackfrom5_g, type_, "Extension"); + return c.get(); +} +const fixed_bitstring<32, false, true>& +sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::add_rrm_prio_idx() const +{ + assert_choice_type(types::add_rrm_prio_idx, type_, "Extension"); + return c.get >(); +} +const contextat_source_s& sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::contextat_source() const +{ + assert_choice_type(types::contextat_source, type_, "Extension"); + return c.get(); +} void sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -67495,7 +67964,7 @@ SRSASN_CODE sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::unpac return SRSASN_SUCCESS; } -std::string sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::types_opts::to_string() const +const char* sourceenb_to_targetenb_transparent_container_ext_ies_o::ext_c::types_opts::to_string() const { static const char* options[] = { "BIT STRING", "OCTET STRING", "IMSvoiceEPSfallbackfrom5G", "BIT STRING", "ContextatSource"}; diff --git a/lib/src/common/network_utils.cc b/lib/src/common/network_utils.cc index 51545ef54..1d09afc48 100644 --- a/lib/src/common/network_utils.cc +++ b/lib/src/common/network_utils.cc @@ -338,7 +338,8 @@ bool sctp_init_server(unique_socket* socket, net_utils::socket_type socktype, co socket_manager::socket_manager() : thread("RXsockets"), socket_manager_itf(srslog::fetch_basic_logger("COMN")) { // register control pipe fd - srsran_assert(pipe(pipefd) != -1, "Failed to open control pipe"); + int fd = pipe(pipefd); + srsran_assert(fd != -1, "Failed to open control pipe"); start(thread_prio); } @@ -353,7 +354,7 @@ void socket_manager::stop() // close thread { std::lock_guard lock(socket_mutex); - ctrl_cmd_t msg{}; + ctrl_cmd_t msg; msg.cmd = ctrl_cmd_t::cmd_id_t::EXIT; if (write(pipefd[1], &msg, sizeof(msg)) != sizeof(msg)) { rxSockError("while writing to control pipe"); diff --git a/lib/src/phy/ch_estimation/dmrs_sch.c b/lib/src/phy/ch_estimation/dmrs_sch.c index 4f30b07ba..5e9b9c791 100644 --- a/lib/src/phy/ch_estimation/dmrs_sch.c +++ b/lib/src/phy/ch_estimation/dmrs_sch.c @@ -48,6 +48,11 @@ */ #define DMRS_SCH_SMOOTH_FILTER_STDDEV 2 +/** + * @brief Default number of PRB at initialization + */ +#define DMRS_SCH_MAX_NOF_PRB 106 + int srsran_dmrs_sch_cfg_to_str(const srsran_dmrs_sch_cfg_t* cfg, char* msg, uint32_t max_len) { int type = (int)cfg->type + 1; @@ -526,6 +531,58 @@ static uint32_t srsran_dmrs_sch_seed(const srsran_carrier_nr_t* carrier, (2UL * n_id + n_scid)); } +static int dmrs_sch_alloc(srsran_dmrs_sch_t* q, uint32_t max_nof_prb) +{ + bool max_nof_prb_changed = q->max_nof_prb < max_nof_prb; + + // Update maximum number of PRB + q->max_nof_prb = max_nof_prb; + + // Resize/allocate temp for gNb and UE + if (max_nof_prb_changed) { + if (q->temp) { + free(q->temp); + } + + q->temp = srsran_vec_cf_malloc(max_nof_prb * SRSRAN_NRE); + if (!q->temp) { + ERROR("malloc"); + return SRSRAN_ERROR; + } + } + + // If it is not UE, quit now + if (!q->is_rx) { + return SRSRAN_SUCCESS; + } + + if (max_nof_prb_changed) { + // Resize interpolator only if the number of PRB has increased + srsran_interp_linear_free(&q->interpolator_type1); + srsran_interp_linear_free(&q->interpolator_type2); + + if (srsran_interp_linear_init(&q->interpolator_type1, max_nof_prb * SRSRAN_NRE / 2, 2) != SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + if (srsran_interp_linear_init(&q->interpolator_type2, max_nof_prb * SRSRAN_NRE / 3, 6) != SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + + if (q->pilot_estimates) { + free(q->pilot_estimates); + } + + // The maximum number of pilots is for Type 1 + q->pilot_estimates = srsran_vec_cf_malloc(SRSRAN_DMRS_SCH_MAX_SYMBOLS * max_nof_prb * SRSRAN_NRE / 2); + if (!q->pilot_estimates) { + ERROR("malloc"); + return SRSRAN_ERROR; + } + } + + return SRSRAN_SUCCESS; +} + int srsran_dmrs_sch_init(srsran_dmrs_sch_t* q, bool is_rx) { if (q == NULL) { @@ -548,6 +605,10 @@ int srsran_dmrs_sch_init(srsran_dmrs_sch_t* q, bool is_rx) } #endif // DMRS_SCH_SMOOTH_FILTER_LEN + if (dmrs_sch_alloc(q, DMRS_SCH_MAX_NOF_PRB) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + return SRSRAN_SUCCESS; } @@ -574,52 +635,11 @@ void srsran_dmrs_sch_free(srsran_dmrs_sch_t* q) int srsran_dmrs_sch_set_carrier(srsran_dmrs_sch_t* q, const srsran_carrier_nr_t* carrier) { - bool max_nof_prb_changed = q->max_nof_prb < carrier->nof_prb; - - // Set carrier and update maximum number of PRB - q->carrier = *carrier; - q->max_nof_prb = SRSRAN_MAX(q->max_nof_prb, carrier->nof_prb); - - // Resize/allocate temp for gNb and UE - if (max_nof_prb_changed) { - if (q->temp) { - free(q->temp); - } - - q->temp = srsran_vec_cf_malloc(q->max_nof_prb * SRSRAN_NRE); - if (!q->temp) { - ERROR("malloc"); - return SRSRAN_ERROR; - } - } - - // If it is not UE, quit now - if (!q->is_rx) { - return SRSRAN_SUCCESS; - } - - if (max_nof_prb_changed) { - // Resize interpolator only if the number of PRB has increased - srsran_interp_linear_free(&q->interpolator_type1); - srsran_interp_linear_free(&q->interpolator_type2); - - if (srsran_interp_linear_init(&q->interpolator_type1, carrier->nof_prb * SRSRAN_NRE / 2, 2) != SRSRAN_SUCCESS) { - return SRSRAN_ERROR; - } - if (srsran_interp_linear_init(&q->interpolator_type2, carrier->nof_prb * SRSRAN_NRE / 3, 6) != SRSRAN_SUCCESS) { - return SRSRAN_ERROR; - } - - if (q->pilot_estimates) { - free(q->pilot_estimates); - } + // Set carrier + q->carrier = *carrier; - // The maximum number of pilots is for Type 1 - q->pilot_estimates = srsran_vec_cf_malloc(SRSRAN_DMRS_SCH_MAX_SYMBOLS * q->max_nof_prb * SRSRAN_NRE / 2); - if (!q->pilot_estimates) { - ERROR("malloc"); - return SRSRAN_ERROR; - } + if (dmrs_sch_alloc(q, carrier->nof_prb) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; } return SRSRAN_SUCCESS; @@ -648,7 +668,7 @@ int srsran_dmrs_sch_put_sf(srsran_dmrs_sch_t* q, // Iterate symbols for (uint32_t i = 0; i < nof_symbols; i++) { - uint32_t l = symbols[i]; // Symbol index inside the slot + uint32_t l = symbols[i]; // Symbol index inside the slot uint32_t slot_idx = SRSRAN_SLOT_NR_MOD(q->carrier.scs, slot_cfg->idx); // Slot index in the frame uint32_t cinit = srsran_dmrs_sch_seed(&q->carrier, pdsch_cfg, grant, slot_idx, l); @@ -779,8 +799,7 @@ int srsran_dmrs_sch_estimate(srsran_dmrs_sch_t* q, for (uint32_t i = 0; i < nof_symbols; i++) { uint32_t l = symbols[i]; // Symbol index inside the slot - uint32_t cinit = - srsran_dmrs_sch_seed(&q->carrier, cfg, grant, SRSRAN_SLOT_NR_MOD(q->carrier.scs, slot->idx), l); + uint32_t cinit = srsran_dmrs_sch_seed(&q->carrier, cfg, grant, SRSRAN_SLOT_NR_MOD(q->carrier.scs, slot->idx), l); nof_pilots_x_symbol = srsran_dmrs_sch_get_symbol( q, cfg, grant, cinit, delta, &sf_symbols[symbol_sz * l], &q->pilot_estimates[nof_pilots_x_symbol * i]); @@ -851,8 +870,7 @@ int srsran_dmrs_sch_estimate(srsran_dmrs_sch_t* q, cf_t cfo_correction[SRSRAN_NSYMB_PER_SLOT_NR] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; if (isnormal(cfo_avg)) { // Calculate phase of the first OFDM symbol (l = 0) - float arg0 = - cargf(corr[0]) - 2.0f * M_PI * srsran_symbol_distance_s(0, symbols[0], q->carrier.scs) * cfo_avg; + float arg0 = cargf(corr[0]) - 2.0f * M_PI * srsran_symbol_distance_s(0, symbols[0], q->carrier.scs) * cfo_avg; // Calculate CFO corrections for (uint32_t l = 0; l < SRSRAN_NSYMB_PER_SLOT_NR; l++) { diff --git a/lib/src/phy/common/phy_common_nr.c b/lib/src/phy/common/phy_common_nr.c index f2f36df9e..8e4828cc5 100644 --- a/lib/src/phy/common/phy_common_nr.c +++ b/lib/src/phy/common/phy_common_nr.c @@ -20,6 +20,7 @@ */ #include "srsran/phy/common/phy_common_nr.h" +#include "srsran/phy/utils/vector.h" #include const char* srsran_rnti_type_str(srsran_rnti_type_t rnti_type) @@ -245,3 +246,33 @@ bool srsran_tdd_nr_is_ul(const srsran_tdd_config_nr_t* cfg, uint32_t numerology, // Check UL boundaries return (slot_idx_period > start_ul || (slot_idx_period == start_ul && pattern->nof_ul_symbols != 0)); } + +int srsran_carrier_to_cell(const srsran_carrier_nr_t* carrier, srsran_cell_t* cell) +{ + // Protect memory access + if (carrier == NULL || cell == NULL) { + return SRSRAN_ERROR_INVALID_INPUTS; + } + + // Ensure cell is initialised+ + SRSRAN_MEM_ZERO(cell, srsran_cell_t, 1); + + // Select number of PRB + if (carrier->nof_prb <= 25) { + cell->nof_prb = 25; + } else if (carrier->nof_prb <= 52) { + cell->nof_prb = 50; + } else if (carrier->nof_prb <= 79) { + cell->nof_prb = 75; + } else if (carrier->nof_prb <= 106) { + cell->nof_prb = 100; + } else { + return SRSRAN_ERROR_OUT_OF_BOUNDS; + } + + // Set other parameters + cell->id = carrier->pci; + cell->nof_ports = carrier->max_mimo_layers; + + return SRSRAN_SUCCESS; +} diff --git a/lib/src/phy/phch/dci_nr.c b/lib/src/phy/phch/dci_nr.c index 0f55b6a76..96c2cae44 100644 --- a/lib/src/phy/phch/dci_nr.c +++ b/lib/src/phy/phch/dci_nr.c @@ -73,11 +73,39 @@ static uint32_t dci_nr_time_res_size(uint32_t nof_time_res) { if (nof_time_res == 0) { // 4 bits are necessary for PUSCH default time resource assigment (TS 38.214 Table 6.1.2.1.1-2) - return 4; + nof_time_res = SRSRAN_MAX_NOF_TIME_RA; } return (uint32_t)CEIL_LOG2(nof_time_res); } +static uint32_t dci_nr_ptrs_size(const srsran_dci_cfg_nr_t* cfg) +{ + // 0 bit if PTRS-UplinkConfig is not configured and transform precoder is disabled, or if transform precoder is + // enabled, or if maxRank=1; + if ((!cfg->pusch_ptrs && !cfg->enable_transform_precoding) || cfg->enable_transform_precoding || + cfg->nof_ul_layers <= 1) { + return 0; + } + + // 2 bits otherwise, where Table 7.3.1.1.2-25 and 7.3.1.1.2-26 are used to indicate the association between + // PTRS port(s) and DMRS port(s) for transmission of one PT-RS port and two PT-RS ports respectively, and + // the DMRS ports are indicated by the Antenna ports field. + return 2; +} + +static uint32_t dci_nr_srs_id_size(const srsran_dci_cfg_nr_t* cfg) +{ + uint32_t N_srs = SRSRAN_MIN(1, cfg->nof_srs); + if (cfg->pusch_tx_config_non_codebook) { + uint32_t N = 0; + for (uint32_t k = 1; k < SRSRAN_MIN(cfg->nof_ul_layers, cfg->nof_srs); k++) { + N += cfg->nof_srs / k; + } + return (uint32_t)CEIL_LOG2(N); + } + return (uint32_t)CEIL_LOG2(N_srs); +} + // Determines DCI format 0_0 according to TS 38.212 clause 7.3.1.1.1 static uint32_t dci_nr_format_0_0_sizeof(uint32_t N_UL_BWP_RB, const srsran_dci_cfg_nr_t* cfg) { @@ -275,10 +303,6 @@ static int dci_nr_format_0_0_to_str(const srsran_dci_ul_nr_t* dci, char* str, ui { uint32_t len = 0; - // Print format - len = srsran_print_check( - str, str_len, len, "rnti=%04x L=%d cce=%d dci=0_0 ", dci->ctx.rnti, dci->ctx.location.L, dci->ctx.location.ncce); - // Frequency domain resource assignment len = srsran_print_check(str, str_len, len, "f_alloc=0x%x ", dci->freq_domain_assigment); @@ -298,7 +322,7 @@ static int dci_nr_format_0_0_to_str(const srsran_dci_ul_nr_t* dci, char* str, ui len = srsran_print_check(str, str_len, len, "rv=%d ", dci->rv); // HARQ process number – 4 bits - len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->harq_feedback); + len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->pid); // TPC command for scheduled PUSCH – 2 bits len = srsran_print_check(str, str_len, len, "tpc=%d ", dci->tpc); @@ -320,13 +344,13 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ count += 1; // Carrier indicator – 0 or 3 bits - count += SRSRAN_MIN(cfg->carrier_indicator_size, 3); + count += cfg->carrier_indicator_size; // UL/SUL indicator – 0 bit for UEs not configured with supplementaryUplink ... otherwise, 1 bit count += cfg->enable_sul ? 1 : 0; // Bandwidth part indicator – 0, 1 or 2 bits - count += SRSRAN_MIN(dci_nr_bwp_id_size(cfg->nof_ul_bwp), 2); + count += dci_nr_bwp_id_size(cfg->nof_ul_bwp); // Frequency domain resource assignment count += dci_nr_freq_resource_size(cfg->pusch_alloc_type, cfg->nof_rb_groups, cfg->bwp_ul_active_bw); @@ -354,7 +378,7 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ count += 4; // 1st DAI - 1 or 2 bits - if (cfg->pusch_tx_config_codebook == srsran_pdsch_harq_ack_codebook_semi_static) { + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_semi_static) { count += 1; } else { count += 2; @@ -363,31 +387,19 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ // 2st DAI - 0 or 2 bits if (cfg->dynamic_dual_harq_ack_codebook) { count += 2; - } else { - count += 0; } // TPC command for scheduled PUSCH – 2 bits count += 2; // SRS resource indicator - uint32_t N_srs = SRSRAN_MIN(1, cfg->nof_srs); - if (cfg->pusch_tx_config_codebook) { - uint32_t N = 0; - for (uint32_t k = 1; k < SRSRAN_MIN(cfg->nof_ul_layers, cfg->nof_srs); k++) { - N += cfg->nof_srs / k; - } - count += (uint32_t)CEIL_LOG2(N); - } else { - count += (uint32_t)CEIL_LOG2(N_srs); - } + count += dci_nr_srs_id_size(cfg); // Precoding information and number of layers - if (cfg->pusch_tx_config_codebook) { + if (!cfg->pusch_tx_config_non_codebook && cfg->nof_ul_layers > 1) { ERROR("Not implemented"); return 0; } - count += 0; // Antenna ports if (!cfg->enable_transform_precoding && !cfg->pusch_dmrs_double) { @@ -397,8 +409,8 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ return 0; } - // SRS request - 2 bits - count += 2; + // SRS request - 2 or 3 bits + count += cfg->enable_sul ? 3 : 2; // CSI request - 0, 1, 2, 3, 4, 5, or 6 bits count += SRSRAN_MIN(6, cfg->report_trigger_size); @@ -407,12 +419,7 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ count += cfg->pusch_nof_cbg; // PTRS-DMRS association - 0 or 2 bits - if ((!cfg->pusch_ptrs && !cfg->enable_transform_precoding) || cfg->enable_transform_precoding || - cfg->nof_ul_layers <= 1) { - count += 0; - } else { - count += 3; - } + count += dci_nr_ptrs_size(cfg); // beta_offset indicator – 0 or 2 bits if (cfg->pusch_dynamic_betas) { @@ -432,247 +439,467 @@ static uint32_t dci_nr_format_0_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ static int dci_nr_format_0_1_pack(const srsran_dci_nr_t* q, const srsran_dci_ul_nr_t* dci, srsran_dci_msg_nr_t* msg) { - // TODO! - - return SRSRAN_SUCCESS; -} - -static int dci_nr_format_0_1_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_ul_nr_t* dci) -{ - // TODO! + const srsran_dci_cfg_nr_t* cfg = &q->cfg; + srsran_rnti_type_t rnti_type = dci->ctx.rnti_type; - return SRSRAN_SUCCESS; -} + if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_sp_csi && + rnti_type != srsran_rnti_type_mcs_c) { + ERROR("Invalid RNTI (%s) for format 0_1", srsran_rnti_type_str(rnti_type)); + return SRSRAN_ERROR; + } + uint8_t* y = msg->payload; -static uint32_t dci_nr_format_1_0_sizeof(uint32_t N_DL_BWP_RB, srsran_rnti_type_t rnti_type) -{ - uint32_t count = 0; + // Identifier for DCI formats – 1 bit + *(y++) = 0; // The value of this bit field is always set to 0, indicating an UL DCI format - // Identifier for DCI formats – 1 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 1; - } + // Carrier indicator – 0 or 3 bits + srsran_bit_unpack(dci->cc_id, &y, cfg->carrier_indicator_size); - if (rnti_type == srsran_rnti_type_p) { - // Short Messages Indicator – 2 bits - count += 2; + // UL/SUL indicator – 0 bit for UEs not configured with supplementaryUplink ... otherwise, 1 bit + srsran_bit_unpack(dci->sul, &y, cfg->enable_sul ? 1 : 0); - // Short Messages – 8 bits - count += 8; - } + // Bandwidth part indicator – 0, 1 or 2 bits + srsran_bit_unpack(dci->bwp_id, &y, dci_nr_bwp_id_size(cfg->nof_ul_bwp)); // Frequency domain resource assignment - int N = dci_nr_freq_resource_size_type1(N_DL_BWP_RB); - if (N < SRSRAN_SUCCESS) { - return SRSRAN_ERROR; - } - count += N; + srsran_bit_unpack(dci->freq_domain_assigment, + &y, + dci_nr_freq_resource_size(cfg->pusch_alloc_type, cfg->nof_rb_groups, cfg->bwp_ul_active_bw)); - // Time domain resource assignment – 4 bits - count += 4; + // Time domain resource assigment - 0, 1, 2, 3, or 4 bits + srsran_bit_unpack(dci->time_domain_assigment, &y, dci_nr_time_res_size(cfg->nof_ul_time_res)); - // VRB-to-PRB mapping – 1 bit - count += 1; + // Frequency hopping flag - 0 or 1 bit: + if (cfg->pusch_alloc_type != srsran_resource_alloc_type0 && cfg->enable_hopping) { + srsran_bit_unpack(dci->freq_hopping_flag, &y, 1); + } // Modulation and coding scheme – 5 bits - count += 5; - - // TB scaling – 2 bits - if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { - count += 2; - } + srsran_bit_unpack(dci->mcs, &y, 5); // New data indicator – 1 bit - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 1; - } + srsran_bit_unpack(dci->ndi, &y, 1); // Redundancy version – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { - count += 2; - } + srsran_bit_unpack(dci->rv, &y, 2); // HARQ process number – 4 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 4; + srsran_bit_unpack(dci->pid, &y, 4); + + // 1st DAI - 1 or 2 bits + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_semi_static) { + srsran_bit_unpack(dci->dai1, &y, 1); + } else { + srsran_bit_unpack(dci->dai1, &y, 2); } - // System information indicator – 1 bit - if (rnti_type == srsran_rnti_type_si) { - count += 1; + // 2st DAI - 0 or 2 bits + if (cfg->dynamic_dual_harq_ack_codebook) { + srsran_bit_unpack(dci->dai2, &y, 2); } - // Downlink assignment index – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 2; + // TPC command for scheduled PUSCH – 2 bits + srsran_bit_unpack(dci->tpc, &y, 2); + + // SRS resource indicator + srsran_bit_unpack(dci->srs_id, &y, dci_nr_srs_id_size(cfg)); + + // Precoding information and number of layers + if (cfg->pusch_tx_config_non_codebook) { + ERROR("Not implemented"); + return 0; } - // TPC command for scheduled PUCCH – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 2; + // Antenna ports + if (!cfg->enable_transform_precoding && !cfg->pusch_dmrs_double) { + srsran_bit_unpack(dci->ports, &y, 3); + } else { + ERROR("Not implemented"); + return 0; } - // PUCCH resource indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 3; + // SRS request - 2 or 3 bits + srsran_bit_unpack(dci->srs_request, &y, cfg->enable_sul ? 3 : 2); + + // CSI request - 0, 1, 2, 3, 4, 5, or 6 bits + srsran_bit_unpack(dci->csi_request, &y, SRSRAN_MIN(6, cfg->report_trigger_size)); + + // CBG transmission information - 0, 2, 4, 6, or 8 bits + srsran_bit_unpack(dci->cbg_info, &y, cfg->pusch_nof_cbg); + + // PTRS-DMRS association - 0 or 2 bits + srsran_bit_unpack(dci->ptrs_id, &y, dci_nr_ptrs_size(cfg)); + + // beta_offset indicator – 0 or 2 bits + if (cfg->pusch_dynamic_betas) { + srsran_bit_unpack(dci->beta_id, &y, 2); } - // PDSCH-to-HARQ_feedback timing indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - count += 3; + // DMRS sequence initialization - 0 or 1 bit + if (!cfg->enable_transform_precoding) { + srsran_bit_unpack(dci->dmrs_id, &y, 1); } - // Reserved bits ... - if (rnti_type == srsran_rnti_type_p) { - // ... – 6 bits - count += 2; - } else if (rnti_type == srsran_rnti_type_si) { - // ... – 15 bits - count += 15; - } else if (rnti_type == srsran_rnti_type_ra) { - // ... – 16 bits - count += 16; + // UL-SCH indicator – 1 bit + srsran_bit_unpack(dci->ulsch, &y, 1); + + msg->nof_bits = srsran_dci_nr_size(q, msg->ctx.ss_type, srsran_dci_format_nr_0_1); + if (msg->nof_bits != y - msg->payload) { + ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, (int)(y - msg->payload)); + return SRSRAN_ERROR; } - return count; + return SRSRAN_SUCCESS; } -static int dci_nr_format_1_0_pack(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, srsran_dci_msg_nr_t* msg) +static int dci_nr_format_0_1_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_ul_nr_t* dci) { - uint8_t* y = msg->payload; - srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; - srsran_search_space_type_t ss_type = dci->ctx.ss_type; - uint32_t N_DL_BWP_RB = SRSRAN_SEARCH_SPACE_IS_COMMON(ss_type) - ? (q->cfg.coreset0_bw == 0) ? q->cfg.bwp_dl_initial_bw : q->cfg.coreset0_bw - : q->cfg.bwp_dl_active_bw; + const srsran_dci_cfg_nr_t* cfg = &q->cfg; + srsran_rnti_type_t rnti_type = dci->ctx.rnti_type; + + if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_sp_csi && + rnti_type != srsran_rnti_type_mcs_c) { + ERROR("Invalid RNTI (%s) for format 0_1", srsran_rnti_type_str(rnti_type)); + return SRSRAN_ERROR; + } + uint8_t* y = msg->payload; // Identifier for DCI formats – 1 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - *y = 1; - y++; + if (*(y++) != 0) { + ERROR("Wrond DCI format"); + return SRSRAN_ERROR; } - if (rnti_type == srsran_rnti_type_p) { - // Short Messages Indicator – 2 bits - srsran_bit_unpack(dci->smi, &y, 2); + // Carrier indicator – 0 or 3 bits + dci->cc_id = srsran_bit_pack(&y, SRSRAN_MIN(cfg->carrier_indicator_size, 3)); - // Short Messages – 8 bits - srsran_bit_unpack(dci->sm, &y, 8); - } + // UL/SUL indicator – 0 bit for UEs not configured with supplementaryUplink ... otherwise, 1 bit + dci->sul = srsran_bit_pack(&y, cfg->enable_sul ? 1 : 0); + + // Bandwidth part indicator – 0, 1 or 2 bits + dci->bwp_id = srsran_bit_pack(&y, dci_nr_bwp_id_size(cfg->nof_ul_bwp)); // Frequency domain resource assignment - int N = dci_nr_freq_resource_size_type1(N_DL_BWP_RB); - if (N < SRSRAN_SUCCESS) { - return SRSRAN_ERROR; - } - srsran_bit_unpack(dci->freq_domain_assigment, &y, N); + dci->freq_domain_assigment = + srsran_bit_pack(&y, dci_nr_freq_resource_size(cfg->pusch_alloc_type, cfg->nof_rb_groups, cfg->bwp_ul_active_bw)); - // Time domain resource assignment – 4 bits - srsran_bit_unpack(dci->time_domain_assigment, &y, 4); + // Time domain resource assigment - 0, 1, 2, 3, or 4 bits + dci->time_domain_assigment = srsran_bit_pack(&y, dci_nr_time_res_size(cfg->nof_ul_time_res)); - // VRB-to-PRB mapping – 1 bit - srsran_bit_unpack(dci->vrb_to_prb_mapping, &y, 1); + // Frequency hopping flag - 0 or 1 bit: + if (cfg->pusch_alloc_type != srsran_resource_alloc_type0 && cfg->enable_hopping) { + dci->freq_hopping_flag = srsran_bit_pack(&y, 1); + } // Modulation and coding scheme – 5 bits - srsran_bit_unpack(dci->mcs, &y, 5); - - // TB scaling – 2 bits - if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { - srsran_bit_unpack(dci->tb_scaling, &y, 2); - } + dci->mcs = srsran_bit_pack(&y, 5); // New data indicator – 1 bit - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->ndi, &y, 1); - } + dci->ndi = srsran_bit_pack(&y, 1); // Redundancy version – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->rv, &y, 2); - } + dci->rv = srsran_bit_pack(&y, 2); // HARQ process number – 4 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->pid, &y, 4); - } + dci->pid = srsran_bit_pack(&y, 4); - // System information indicator – 1 bit - if (rnti_type == srsran_rnti_type_si) { - srsran_bit_unpack(dci->sii, &y, 1); + // 1st DAI - 1 or 2 bits + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_semi_static) { + dci->dai1 = srsran_bit_pack(&y, 1); + } else { + dci->dai1 = srsran_bit_pack(&y, 2); } - // Downlink assignment index – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->dai, &y, 2); + // 2st DAI - 0 or 2 bits + if (cfg->dynamic_dual_harq_ack_codebook) { + dci->dai2 = srsran_bit_pack(&y, 2); } - // TPC command for scheduled PUCCH – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->tpc, &y, 2); - } + // TPC command for scheduled PUSCH – 2 bits + dci->tpc = srsran_bit_pack(&y, 2); - // PUCCH resource indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->pucch_resource, &y, 3); + // SRS resource indicator + dci->srs_id = srsran_bit_pack(&y, dci_nr_srs_id_size(cfg)); + + // Precoding information and number of layers + if (cfg->pusch_tx_config_non_codebook) { + ERROR("Not implemented"); + return 0; } - // PDSCH-to-HARQ_feedback timing indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - srsran_bit_unpack(dci->harq_feedback, &y, 3); + // Antenna ports + if (!cfg->enable_transform_precoding && !cfg->pusch_dmrs_double) { + dci->ports = srsran_bit_pack(&y, 3); + } else { + ERROR("Not implemented"); + return 0; } - // Reserved bits ... - if (rnti_type == srsran_rnti_type_p) { - // ... – 6 bits - srsran_bit_unpack(dci->reserved, &y, 6); - } else if (rnti_type == srsran_rnti_type_si) { - // ... – 15 bits - srsran_bit_unpack(dci->reserved, &y, 15); - } else if (rnti_type == srsran_rnti_type_ra) { - // ... – 16 bits - srsran_bit_unpack(dci->reserved, &y, 16); + // SRS request - 2 or 3 bits + dci->srs_request = srsran_bit_pack(&y, cfg->enable_sul ? 3 : 2); + + // CSI request - 0, 1, 2, 3, 4, 5, or 6 bits + dci->csi_request = srsran_bit_pack(&y, SRSRAN_MIN(6, cfg->report_trigger_size)); + + // CBG transmission information - 0, 2, 4, 6, or 8 bits + dci->cbg_info = srsran_bit_pack(&y, cfg->pusch_nof_cbg); + + // PTRS-DMRS association - 0 or 2 bits + dci->ptrs_id = srsran_bit_pack(&y, dci_nr_ptrs_size(cfg)); + + // beta_offset indicator – 0 or 2 bits + if (cfg->pusch_dynamic_betas) { + dci->beta_id = srsran_bit_pack(&y, 2); } - msg->nof_bits = srsran_dci_nr_size(q, msg->ctx.ss_type, srsran_dci_format_nr_1_0); - uint32_t nof_bits = (uint32_t)(y - msg->payload); - if (msg->nof_bits != nof_bits) { - ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, nof_bits); + // DMRS sequence initialization - 0 or 1 bit + if (!cfg->enable_transform_precoding) { + dci->dmrs_id = srsran_bit_pack(&y, 1); + } + + // UL-SCH indicator – 1 bit + dci->ulsch = srsran_bit_pack(&y, 1); + + if (msg->nof_bits != y - msg->payload) { + ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, (int)(y - msg->payload)); return SRSRAN_ERROR; } return SRSRAN_SUCCESS; } -static int dci_nr_format_1_0_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_dl_nr_t* dci) +static int +dci_nr_format_0_1_to_str(const srsran_dci_nr_t* q, const srsran_dci_ul_nr_t* dci, char* str, uint32_t str_len) { - uint8_t* y = msg->payload; - srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; - srsran_search_space_type_t ss_type = msg->ctx.ss_type; - uint32_t N_DL_BWP_RB = SRSRAN_SEARCH_SPACE_IS_COMMON(ss_type) - ? (q->cfg.coreset0_bw == 0) ? q->cfg.bwp_dl_initial_bw : q->cfg.coreset0_bw - : q->cfg.bwp_dl_active_bw; + uint32_t len = 0; + const srsran_dci_cfg_nr_t* cfg = &q->cfg; - uint32_t nof_bits = srsran_dci_nr_size(q, ss_type, srsran_dci_format_nr_1_0); - if (msg->nof_bits != nof_bits) { - ERROR("Invalid number of bits %d, expected %d", msg->nof_bits, nof_bits); + // Print format + len = srsran_print_check(str, + str_len, + len, + "rnti=%04x L=%d cce=%d dci=%s ", + dci->ctx.rnti, + dci->ctx.location.L, + dci->ctx.location.ncce, + srsran_dci_format_nr_string(dci->ctx.format)); + + // Carrier indicator – 0 or 3 bits + if (cfg->carrier_indicator_size) { + len = srsran_print_check(str, str_len, len, "cc=%d ", dci->cc_id); + } + + // UL/SUL indicator – 0 bit for UEs not configured with supplementaryUplink ... otherwise, 1 bit + if (cfg->enable_sul) { + len = srsran_print_check(str, str_len, len, "sul=%d ", dci->sul); + } + + // Bandwidth part indicator – 0, 1 or 2 bits + if (dci_nr_bwp_id_size(cfg->nof_ul_bwp) > 0) { + len = srsran_print_check(str, str_len, len, "bwp=%d ", dci->bwp_id); + } + + // Frequency domain resource assignment + len = srsran_print_check(str, str_len, len, "f_alloc=0x%x ", dci->freq_domain_assigment); + + // Time domain resource assigment - 0, 1, 2, 3, or 4 bits + len = srsran_print_check(str, str_len, len, "t_alloc=0x%x ", dci->time_domain_assigment); + + // Frequency hopping flag - 0 or 1 bit: + if (cfg->pusch_alloc_type != srsran_resource_alloc_type0 && cfg->enable_hopping) { + len = srsran_print_check(str, str_len, len, "hop=0x%x ", dci->freq_hopping_flag); + } + + // Modulation and coding scheme – 5 bits + len = srsran_print_check(str, str_len, len, "mcs=%d ", dci->mcs); + + // New data indicator – 1 bit + len = srsran_print_check(str, str_len, len, "ndi=%d ", dci->ndi); + + // Redundancy version – 2 bits + len = srsran_print_check(str, str_len, len, "rv=%d ", dci->rv); + + // HARQ process number – 4 bits + len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->pid); + + // 1st DAI - 1 or 2 bits + len = srsran_print_check(str, str_len, len, "dai1=%d ", dci->dai1); + + // 2st DAI - 0 or 2 bits + if (cfg->dynamic_dual_harq_ack_codebook) { + len = srsran_print_check(str, str_len, len, "dai2=%d ", dci->dai2); + } + + // TPC command for scheduled PUSCH – 2 bits + len = srsran_print_check(str, str_len, len, "tpc=%d ", dci->tpc); + + // SRS resource indicator + if (dci_nr_srs_id_size(cfg) > 0) { + len = srsran_print_check(str, str_len, len, "srs_id=%d ", dci->srs_id); + } + + // Precoding information and number of layers + if (cfg->pusch_tx_config_non_codebook) { + ERROR("Not implemented"); + return 0; + } + + // Antenna ports + if (!cfg->enable_transform_precoding && !cfg->pusch_dmrs_double) { + len = srsran_print_check(str, str_len, len, "ports=%d ", dci->ports); + } else { + ERROR("Not implemented"); + return 0; + } + + // SRS request - 2 bits + len = srsran_print_check(str, str_len, len, "srs_req=%d ", dci->srs_request); + + // CSI request - 0, 1, 2, 3, 4, 5, or 6 bits + if (cfg->report_trigger_size > 0) { + len = srsran_print_check(str, str_len, len, "csi_req=%d ", dci->csi_request); + } + + // CBG transmission information - 0, 2, 4, 6, or 8 bits + if (cfg->pusch_nof_cbg > 0) { + len = srsran_print_check(str, str_len, len, "cbg_info=%d ", dci->cbg_info); + } + + // PTRS-DMRS association - 0 or 2 bits + if (dci_nr_ptrs_size(cfg) > 0) { + len = srsran_print_check(str, str_len, len, "ptrs_id=%d ", dci->ptrs_id); + } + + // beta_offset indicator – 0 or 2 bits + if (cfg->pusch_dynamic_betas) { + len = srsran_print_check(str, str_len, len, "beta_id=%d ", dci->beta_id); + } + + // DMRS sequence initialization - 0 or 1 bit + if (!cfg->enable_transform_precoding) { + len = srsran_print_check(str, str_len, len, "dmrs_id=%d ", dci->dmrs_id); + } + + // UL-SCH indicator – 1 bit + len = srsran_print_check(str, str_len, len, "ulsch=%d ", dci->ulsch); + + return len; +} + +static uint32_t dci_nr_format_1_0_sizeof(uint32_t N_DL_BWP_RB, srsran_rnti_type_t rnti_type) +{ + uint32_t count = 0; + + // Identifier for DCI formats – 1 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 1; + } + + if (rnti_type == srsran_rnti_type_p) { + // Short Messages Indicator – 2 bits + count += 2; + + // Short Messages – 8 bits + count += 8; + } + + // Frequency domain resource assignment + int N = dci_nr_freq_resource_size_type1(N_DL_BWP_RB); + if (N < SRSRAN_SUCCESS) { return SRSRAN_ERROR; } + count += N; + + // Time domain resource assignment – 4 bits + count += 4; + + // VRB-to-PRB mapping – 1 bit + count += 1; + + // Modulation and coding scheme – 5 bits + count += 5; + + // TB scaling – 2 bits + if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { + count += 2; + } + + // New data indicator – 1 bit + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 1; + } + + // Redundancy version – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { + count += 2; + } + + // HARQ process number – 4 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 4; + } + + // System information indicator – 1 bit + if (rnti_type == srsran_rnti_type_si) { + count += 1; + } + + // Downlink assignment index – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 2; + } + + // TPC command for scheduled PUCCH – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 2; + } + + // PUCCH resource indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 3; + } + + // PDSCH-to-HARQ_feedback timing indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + count += 3; + } + + // Reserved bits ... + if (rnti_type == srsran_rnti_type_p) { + // ... – 6 bits + count += 2; + } else if (rnti_type == srsran_rnti_type_si) { + // ... – 15 bits + count += 15; + } else if (rnti_type == srsran_rnti_type_ra) { + // ... – 16 bits + count += 16; + } + + return count; +} + +static int dci_nr_format_1_0_pack(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, srsran_dci_msg_nr_t* msg) +{ + uint8_t* y = msg->payload; + srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; + srsran_search_space_type_t ss_type = dci->ctx.ss_type; + uint32_t N_DL_BWP_RB = SRSRAN_SEARCH_SPACE_IS_COMMON(ss_type) + ? (q->cfg.coreset0_bw == 0) ? q->cfg.bwp_dl_initial_bw : q->cfg.coreset0_bw + : q->cfg.bwp_dl_active_bw; // Identifier for DCI formats – 1 bits if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - // The value of this bit field is always set to 1, indicating a DL DCI format - if (*(y++) != 1) { - ERROR("Wrond DCI format"); - return SRSRAN_ERROR; - } + *y = 1; + y++; } if (rnti_type == srsran_rnti_type_p) { // Short Messages Indicator – 2 bits - dci->smi = srsran_bit_pack(&y, 2); + srsran_bit_unpack(dci->smi, &y, 2); // Short Messages – 8 bits - dci->sm = srsran_bit_pack(&y, 8); + srsran_bit_unpack(dci->sm, &y, 8); } // Frequency domain resource assignment @@ -680,187 +907,687 @@ static int dci_nr_format_1_0_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_ if (N < SRSRAN_SUCCESS) { return SRSRAN_ERROR; } - dci->freq_domain_assigment = srsran_bit_pack(&y, N); + srsran_bit_unpack(dci->freq_domain_assigment, &y, N); // Time domain resource assignment – 4 bits - dci->time_domain_assigment = srsran_bit_pack(&y, 4); + srsran_bit_unpack(dci->time_domain_assigment, &y, 4); // VRB-to-PRB mapping – 1 bit - dci->vrb_to_prb_mapping = srsran_bit_pack(&y, 1); + srsran_bit_unpack(dci->vrb_to_prb_mapping, &y, 1); // Modulation and coding scheme – 5 bits - dci->mcs = srsran_bit_pack(&y, 5); + srsran_bit_unpack(dci->mcs, &y, 5); // TB scaling – 2 bits if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { - dci->tb_scaling = srsran_bit_pack(&y, 2); + srsran_bit_unpack(dci->tb_scaling, &y, 2); } // New data indicator – 1 bit if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->ndi = srsran_bit_pack(&y, 1); + srsran_bit_unpack(dci->ndi, &y, 1); } // Redundancy version – 2 bits if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { - dci->rv = srsran_bit_pack(&y, 2); + srsran_bit_unpack(dci->rv, &y, 2); } // HARQ process number – 4 bits if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->pid = srsran_bit_pack(&y, 4); + srsran_bit_unpack(dci->pid, &y, 4); } // System information indicator – 1 bit if (rnti_type == srsran_rnti_type_si) { - dci->sii = srsran_bit_pack(&y, 1); + srsran_bit_unpack(dci->sii, &y, 1); } // Downlink assignment index – 2 bits if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->dai = srsran_bit_pack(&y, 2); + srsran_bit_unpack(dci->dai, &y, 2); + } + + // TPC command for scheduled PUCCH – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + srsran_bit_unpack(dci->tpc, &y, 2); + } + + // PUCCH resource indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + srsran_bit_unpack(dci->pucch_resource, &y, 3); + } + + // PDSCH-to-HARQ_feedback timing indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + srsran_bit_unpack(dci->harq_feedback, &y, 3); + } + + // Reserved bits ... + if (rnti_type == srsran_rnti_type_p) { + // ... – 6 bits + srsran_bit_unpack(dci->reserved, &y, 6); + } else if (rnti_type == srsran_rnti_type_si) { + // ... – 15 bits + srsran_bit_unpack(dci->reserved, &y, 15); + } else if (rnti_type == srsran_rnti_type_ra) { + // ... – 16 bits + srsran_bit_unpack(dci->reserved, &y, 16); + } + + msg->nof_bits = srsran_dci_nr_size(q, msg->ctx.ss_type, srsran_dci_format_nr_1_0); + uint32_t nof_bits = (uint32_t)(y - msg->payload); + if (msg->nof_bits != nof_bits) { + ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, nof_bits); + return SRSRAN_ERROR; + } + + return SRSRAN_SUCCESS; +} + +static int dci_nr_format_1_0_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_dl_nr_t* dci) +{ + uint8_t* y = msg->payload; + srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; + srsran_search_space_type_t ss_type = msg->ctx.ss_type; + uint32_t N_DL_BWP_RB = SRSRAN_SEARCH_SPACE_IS_COMMON(ss_type) + ? (q->cfg.coreset0_bw == 0) ? q->cfg.bwp_dl_initial_bw : q->cfg.coreset0_bw + : q->cfg.bwp_dl_active_bw; + + uint32_t nof_bits = srsran_dci_nr_size(q, ss_type, srsran_dci_format_nr_1_0); + if (msg->nof_bits != nof_bits) { + ERROR("Invalid number of bits %d, expected %d", msg->nof_bits, nof_bits); + return SRSRAN_ERROR; + } + + // Identifier for DCI formats – 1 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + // The value of this bit field is always set to 1, indicating a DL DCI format + if (*(y++) != 1) { + ERROR("Wrond DCI format"); + return SRSRAN_ERROR; + } + } + + if (rnti_type == srsran_rnti_type_p) { + // Short Messages Indicator – 2 bits + dci->smi = srsran_bit_pack(&y, 2); + + // Short Messages – 8 bits + dci->sm = srsran_bit_pack(&y, 8); + } + + // Frequency domain resource assignment + int N = dci_nr_freq_resource_size_type1(N_DL_BWP_RB); + if (N < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + dci->freq_domain_assigment = srsran_bit_pack(&y, N); + + // Time domain resource assignment – 4 bits + dci->time_domain_assigment = srsran_bit_pack(&y, 4); + + // VRB-to-PRB mapping – 1 bit + dci->vrb_to_prb_mapping = srsran_bit_pack(&y, 1); + + // Modulation and coding scheme – 5 bits + dci->mcs = srsran_bit_pack(&y, 5); + + // TB scaling – 2 bits + if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { + dci->tb_scaling = srsran_bit_pack(&y, 2); + } + + // New data indicator – 1 bit + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->ndi = srsran_bit_pack(&y, 1); + } + + // Redundancy version – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { + dci->rv = srsran_bit_pack(&y, 2); + } + + // HARQ process number – 4 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->pid = srsran_bit_pack(&y, 4); + } + + // System information indicator – 1 bit + if (rnti_type == srsran_rnti_type_si) { + dci->sii = srsran_bit_pack(&y, 1); + } + + // Downlink assignment index – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->dai = srsran_bit_pack(&y, 2); + } + + // TPC command for scheduled PUCCH – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->tpc = srsran_bit_pack(&y, 2); + } + + // PUCCH resource indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->pucch_resource = srsran_bit_pack(&y, 3); + } + + // PDSCH-to-HARQ_feedback timing indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + dci->harq_feedback = srsran_bit_pack(&y, 3); + } + + // Reserved bits ... + if (rnti_type == srsran_rnti_type_p) { + // ... – 6 bits + dci->reserved = srsran_bit_pack(&y, 6); + } else if (rnti_type == srsran_rnti_type_si) { + // ... – 15 bits + dci->reserved = srsran_bit_pack(&y, 15); + } else if (rnti_type == srsran_rnti_type_ra) { + // ... – 16 bits + dci->reserved = srsran_bit_pack(&y, 16); + } + + if (msg->nof_bits != y - msg->payload) { + ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, (int)(y - msg->payload)); + return SRSRAN_ERROR; + } + + return SRSRAN_SUCCESS; +} + +static int dci_nr_format_1_0_to_str(const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len) +{ + uint32_t len = 0; + srsran_rnti_type_t rnti_type = dci->ctx.rnti_type; + + // Print format + len = srsran_print_check( + str, str_len, len, "rnti=%04x L=%d cce=%d dci=1_0 ", dci->ctx.rnti, dci->ctx.location.L, dci->ctx.location.ncce); + + if (rnti_type == srsran_rnti_type_p) { + len = srsran_print_check(str, str_len, len, "smi=%d sm=%d ", dci->smi, dci->sm); + } + + // Frequency domain resource assignment + len = srsran_print_check(str, str_len, len, "f_alloc=0x%x ", dci->freq_domain_assigment); + + // Time domain resource assignment – 4 bits + len = srsran_print_check(str, str_len, len, "t_alloc=0x%x ", dci->time_domain_assigment); + + // VRB-to-PRB mapping – 1 bit + len = srsran_print_check(str, str_len, len, "vrb_to_prb_map=%d ", dci->vrb_to_prb_mapping); + + // Modulation and coding scheme – 5 bits + len = srsran_print_check(str, str_len, len, "mcs=%d ", dci->mcs); + + // TB scaling – 2 bits + if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { + len = srsran_print_check(str, str_len, len, "tb_scaling=%d ", dci->tb_scaling); + } + + // New data indicator – 1 bit + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "ndi=%d ", dci->ndi); + } + + // Redundancy version – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "rv=%d ", dci->rv); + } + + // HARQ process number – 4 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->harq_feedback); + } + + // System information indicator – 1 bit + if (rnti_type == srsran_rnti_type_si) { + len = srsran_print_check(str, str_len, len, "sii=%d ", dci->sii); + } + + // Downlink assignment index – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "dai=%d ", dci->dai); + } + + // TPC command for scheduled PUCCH – 2 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "pucch_tpc=%d ", dci->tpc); + } + + // PUCCH resource indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "pucch_res=%d ", dci->pucch_resource); + } + + // PDSCH-to-HARQ_feedback timing indicator – 3 bits + if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { + len = srsran_print_check(str, str_len, len, "harq_feedback=%d ", dci->harq_feedback); + } + + // Reserved bits ... + if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_ra) { + len = srsran_print_check(str, str_len, len, "reserved=0x%x ", dci->reserved); + } + + return len; +} + +static uint32_t dci_nr_format_1_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_rnti_type_t rnti_type) +{ + int count = 0; + + if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_mcs_c) { + ERROR("Invalid RNTI (%s) for format 1_1", srsran_rnti_type_str(rnti_type)); + return SRSRAN_ERROR; + } + + // Identifier for DCI formats – 1 bits + count += 1; + + // Carrier indicator – 0 or 3 bits + count += (int)cfg->carrier_indicator_size; + + // Bandwidth part indicator – 0, 1 or 2 bits + count += (int)dci_nr_bwp_id_size(cfg->nof_dl_bwp); + + // Frequency domain resource assignment + count += dci_nr_freq_resource_size(cfg->pdsch_alloc_type, cfg->nof_rb_groups, cfg->bwp_dl_active_bw); + + // Time domain resource assignment – 0, 1, 2, 3, or 4 bits + count += dci_nr_time_res_size(cfg->nof_dl_time_res); + + // VRB-to-PRB mapping – 0 or 1 + if (cfg->pdsch_alloc_type != srsran_resource_alloc_type0 && cfg->pdsch_inter_prb_to_prb) { + count += 1; + } + + // PRB bundling size indicator – 0 or 1 bits + // ... not implemented + + // Rate matching indicator – 0, 1, or 2 bits + if (cfg->pdsch_rm_pattern1) { + count += 1; + } + if (cfg->pdsch_rm_pattern2) { + count += 1; + } + + // ZP CSI-RS trigger - 0, 1, or 2 bits + count += (int)CEIL_LOG2(cfg->nof_aperiodic_zp + 1); + + // For transport block 1: + // Modulation and coding scheme – 5 bits + count += 5; + + // New data indicator – 1 bit + count += 1; + + // Redundancy version – 2 bits + count += 2; + + // For transport block 2: + if (cfg->pdsch_2cw) { + // Modulation and coding scheme – 5 bits + count += 5; + + // New data indicator – 1 bit + count += 1; + + // Redundancy version – 2 bits + count += 2; + } + + // HARQ process number – 4 bits + count += 4; + + // Downlink assignment index (dynamic HARQ-ACK codebook only) + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_dynamic) { + if (cfg->multiple_scell) { + count += 4; + } else { + count += 2; + } + } + + // TPC command for scheduled PUCCH – 2 bits + count += 2; + + // PUCCH resource indicator – 3 bits + count += 3; + + // PDSCH-to-HARQ_feedback timing indicator – 0, 1, 2, or 3 bits + count += (int)CEIL_LOG2(cfg->nof_dl_to_ul_ack); + + // Antenna port(s) – 4, 5, or 6 bits + count += 4; + if (cfg->pdsch_dmrs_type2) { + count++; + } + if (cfg->pdsch_dmrs_double) { + count++; + } + + // Transmission configuration indication – 0 or 3 bits + if (cfg->pdsch_tci) { + count += 3; + } + + // SRS request – 2 or 3 bits + count += cfg->enable_sul ? 3 : 2; + + // CBG transmission information (CBGTI) – 0, 2, 4, 6, or 8 bits + count += cfg->pdsch_nof_cbg; + + // CBG flushing out information (CBGFI) – 0 or 1 bit + if (cfg->pdsch_cbg_flush) { + count += 1; + } + + // DMRS sequence initialization – 1 bit + count += 1; + + return count; +} + +static int dci_nr_format_1_1_pack(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, srsran_dci_msg_nr_t* msg) +{ + uint8_t* y = msg->payload; + srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; + const srsran_dci_cfg_nr_t* cfg = &q->cfg; + + if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_mcs_c) { + ERROR("Invalid RNTI (%s) for format 1_1", srsran_rnti_type_str(rnti_type)); + return SRSRAN_ERROR; + } + + // Identifier for DCI formats – 1 bits + *(y++) = 1; + + // Carrier indicator – 0 or 3 bits + srsran_bit_unpack(dci->cc_id, &y, cfg->carrier_indicator_size); + + // Bandwidth part indicator – 0, 1 or 2 bits + srsran_bit_unpack(dci->bwp_id, &y, dci_nr_bwp_id_size(cfg->nof_dl_bwp)); + + // Frequency domain resource assignment + srsran_bit_unpack(dci->freq_domain_assigment, + &y, + dci_nr_freq_resource_size(cfg->pdsch_alloc_type, cfg->nof_rb_groups, cfg->bwp_dl_active_bw)); + + // Time domain resource assignment – 0, 1, 2, 3, or 4 bits + srsran_bit_unpack(dci->time_domain_assigment, &y, dci_nr_time_res_size(cfg->nof_dl_time_res)); + + // VRB-to-PRB mapping – 0 or 1 + if (cfg->pdsch_alloc_type != srsran_resource_alloc_type0 && cfg->pdsch_inter_prb_to_prb) { + srsran_bit_unpack(dci->vrb_to_prb_mapping, &y, 1); + } + + // PRB bundling size indicator – 0 or 1 bits + // ... not implemented + + // Rate matching indicator – 0, 1, or 2 bits + if (cfg->pdsch_rm_pattern1) { + srsran_bit_unpack(dci->rm_pattern1, &y, 1); + } + + if (cfg->pdsch_rm_pattern2) { + srsran_bit_unpack(dci->rm_pattern2, &y, 1); + } + + // ZP CSI-RS trigger - 0, 1, or 2 bits + srsran_bit_unpack(dci->zp_csi_rs_id, &y, CEIL_LOG2(cfg->nof_aperiodic_zp + 1)); + + // For transport block 1: + // Modulation and coding scheme – 5 bits + srsran_bit_unpack(dci->mcs, &y, 5); + + // New data indicator – 1 bit + srsran_bit_unpack(dci->ndi, &y, 1); + + // Redundancy version – 2 bits + srsran_bit_unpack(dci->rv, &y, 2); + + // For transport block 2: + if (cfg->pdsch_2cw) { + // Modulation and coding scheme – 5 bits + srsran_bit_unpack(dci->mcs2, &y, 5); + + // New data indicator – 1 bit + srsran_bit_unpack(dci->ndi2, &y, 1); + + // Redundancy version – 2 bits + srsran_bit_unpack(dci->rv2, &y, 2); + } + + // HARQ process number – 4 bits + srsran_bit_unpack(dci->pid, &y, 4); + + // Downlink assignment index (dynamic HARQ-ACK codebook only) + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_dynamic) { + if (cfg->multiple_scell) { + srsran_bit_unpack(dci->dai, &y, 4); + } else { + srsran_bit_unpack(dci->dai, &y, 2); + } } // TPC command for scheduled PUCCH – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->tpc = srsran_bit_pack(&y, 2); - } + srsran_bit_unpack(dci->tpc, &y, 2); // PUCCH resource indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->pucch_resource = srsran_bit_pack(&y, 3); + srsran_bit_unpack(dci->pucch_resource, &y, 3); + + // PDSCH-to-HARQ_feedback timing indicator – 0, 1, 2, or 3 bits + srsran_bit_unpack(dci->harq_feedback, &y, (int)CEIL_LOG2(cfg->nof_dl_to_ul_ack)); + + // Antenna port(s) – 4, 5, or 6 bits + srsran_bit_unpack(dci->ports, &y, 4); + if (cfg->pdsch_dmrs_type2) { + y++; + } + if (cfg->pdsch_dmrs_double) { + y++; } - // PDSCH-to-HARQ_feedback timing indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - dci->harq_feedback = srsran_bit_pack(&y, 3); + // Transmission configuration indication – 0 or 3 bits + if (cfg->pdsch_tci) { + srsran_bit_unpack(dci->tci, &y, 3); } - // Reserved bits ... - if (rnti_type == srsran_rnti_type_p) { - // ... – 6 bits - dci->reserved = srsran_bit_pack(&y, 6); - } else if (rnti_type == srsran_rnti_type_si) { - // ... – 15 bits - dci->reserved = srsran_bit_pack(&y, 15); - } else if (rnti_type == srsran_rnti_type_ra) { - // ... – 16 bits - dci->reserved = srsran_bit_pack(&y, 16); + // SRS request – 2 or 3 bits + srsran_bit_unpack(dci->srs_request, &y, cfg->enable_sul ? 3 : 2); + + // CBG transmission information (CBGTI) – 0, 2, 4, 6, or 8 bits + srsran_bit_unpack(dci->cbg_info, &y, cfg->pdsch_nof_cbg); + + // CBG flushing out information (CBGFI) – 0 or 1 bit + if (cfg->pdsch_cbg_flush) { + srsran_bit_unpack(dci->cbg_flush, &y, 1); } + // DMRS sequence initialization – 1 bit + srsran_bit_unpack(dci->dmrs_id, &y, 1); + + msg->nof_bits = srsran_dci_nr_size(q, msg->ctx.ss_type, srsran_dci_format_nr_1_1); if (msg->nof_bits != y - msg->payload) { ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", msg->nof_bits, (int)(y - msg->payload)); return SRSRAN_ERROR; } - return SRSRAN_SUCCESS; } -static int dci_nr_format_1_0_to_str(const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len) +static int dci_nr_format_1_1_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_dl_nr_t* dci) { - uint32_t len = 0; - srsran_rnti_type_t rnti_type = dci->ctx.rnti_type; + uint8_t* y = msg->payload; + srsran_rnti_type_t rnti_type = msg->ctx.rnti_type; + const srsran_dci_cfg_nr_t* cfg = &q->cfg; - // Print format - len = srsran_print_check( - str, str_len, len, "rnti=%04x L=%d cce=%d dci=1_0 ", dci->ctx.rnti, dci->ctx.location.L, dci->ctx.location.ncce); + if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_mcs_c) { + ERROR("Invalid RNTI (%s) for format 1_1", srsran_rnti_type_str(rnti_type)); + return SRSRAN_ERROR; + } - if (rnti_type == srsran_rnti_type_p) { - len = srsran_print_check(str, str_len, len, "smi=%d sm=%d ", dci->smi, dci->sm); + uint32_t nof_bits = srsran_dci_nr_size(q, msg->ctx.ss_type, srsran_dci_format_nr_1_1); + if (msg->nof_bits != nof_bits) { + ERROR("Invalid number of bits %d, expected %d", msg->nof_bits, nof_bits); + return SRSRAN_ERROR; + } + + // Identifier for DCI formats – 1 bits + // The value of this bit field is always set to 1, indicating a DL DCI format + if (*(y++) != 1) { + ERROR("Wrond DCI format"); + return SRSRAN_ERROR; } + // Carrier indicator – 0 or 3 bits + dci->cc_id = srsran_bit_pack(&y, cfg->carrier_indicator_size); + + // Bandwidth part indicator – 0, 1 or 2 bits + dci->bwp_id = srsran_bit_pack(&y, dci_nr_bwp_id_size(cfg->nof_dl_bwp)); + // Frequency domain resource assignment - len = srsran_print_check(str, str_len, len, "f_alloc=0x%x ", dci->freq_domain_assigment); + dci->freq_domain_assigment = + srsran_bit_pack(&y, dci_nr_freq_resource_size(cfg->pdsch_alloc_type, cfg->nof_rb_groups, cfg->bwp_dl_active_bw)); - // Time domain resource assignment – 4 bits - len = srsran_print_check(str, str_len, len, "t_alloc=0x%x ", dci->time_domain_assigment); + // Time domain resource assignment – 0, 1, 2, 3, or 4 bits + dci->time_domain_assigment = srsran_bit_pack(&y, dci_nr_time_res_size(cfg->nof_dl_time_res)); - // VRB-to-PRB mapping – 1 bit - len = srsran_print_check(str, str_len, len, "vrb_to_prb_map=%d ", dci->vrb_to_prb_mapping); + // VRB-to-PRB mapping – 0 or 1 + if (cfg->pdsch_alloc_type != srsran_resource_alloc_type0 && cfg->pdsch_inter_prb_to_prb) { + dci->vrb_to_prb_mapping = srsran_bit_pack(&y, 1); + } - // Modulation and coding scheme – 5 bits - len = srsran_print_check(str, str_len, len, "mcs=%d ", dci->mcs); + // PRB bundling size indicator – 0 or 1 bits + // ... not implemented - // TB scaling – 2 bits - if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_ra) { - len = srsran_print_check(str, str_len, len, "tb_scaling=%d ", dci->tb_scaling); + // Rate matching indicator – 0, 1, or 2 bits + if (cfg->pdsch_rm_pattern1) { + dci->rm_pattern1 = srsran_bit_pack(&y, 1); } - // New data indicator – 1 bit - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "ndi=%d ", dci->ndi); + if (cfg->pdsch_rm_pattern2) { + dci->rm_pattern2 = srsran_bit_pack(&y, 1); } + // ZP CSI-RS trigger - 0, 1, or 2 bits + dci->zp_csi_rs_id = srsran_bit_pack(&y, CEIL_LOG2(cfg->nof_aperiodic_zp + 1)); + + // For transport block 1: + // Modulation and coding scheme – 5 bits + dci->mcs = srsran_bit_pack(&y, 5); + + // New data indicator – 1 bit + dci->ndi = srsran_bit_pack(&y, 1); + // Redundancy version – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "rv=%d ", dci->rv); - } + dci->rv = srsran_bit_pack(&y, 2); - // HARQ process number – 4 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->harq_feedback); - } + // For transport block 2: + if (cfg->pdsch_2cw) { + // Modulation and coding scheme – 5 bits + dci->mcs2 = srsran_bit_pack(&y, 5); - // System information indicator – 1 bit - if (rnti_type == srsran_rnti_type_si) { - len = srsran_print_check(str, str_len, len, "sii=%d ", dci->sii); + // New data indicator – 1 bit + dci->ndi2 = srsran_bit_pack(&y, 1); + + // Redundancy version – 2 bits + dci->rv2 = srsran_bit_pack(&y, 2); } - // Downlink assignment index – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "dai=%d ", dci->dai); + // HARQ process number – 4 bits + dci->pid = srsran_bit_pack(&y, 4); + + // Downlink assignment index (dynamic HARQ-ACK codebook only) + if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_dynamic) { + if (cfg->multiple_scell) { + dci->dai = srsran_bit_pack(&y, 4); + } else { + dci->dai = srsran_bit_pack(&y, 2); + } } // TPC command for scheduled PUCCH – 2 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "pucch_tpc=%d ", dci->tpc); - } + dci->tpc = srsran_bit_pack(&y, 2); // PUCCH resource indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "pucch_res=%d ", dci->pucch_resource); - } + dci->pucch_resource = srsran_bit_pack(&y, 3); - // PDSCH-to-HARQ_feedback timing indicator – 3 bits - if (rnti_type == srsran_rnti_type_c || rnti_type == srsran_rnti_type_tc) { - len = srsran_print_check(str, str_len, len, "harq_feedback=%d ", dci->harq_feedback); + // PDSCH-to-HARQ_feedback timing indicator – 0, 1, 2, or 3 bits + dci->harq_feedback = srsran_bit_pack(&y, (int)CEIL_LOG2(cfg->nof_dl_to_ul_ack)); + + // Antenna port(s) – 4, 5, or 6 bits + dci->ports = srsran_bit_pack(&y, 4); + if (cfg->pdsch_dmrs_type2) { + y++; + } + if (cfg->pdsch_dmrs_double) { + y++; } - // Reserved bits ... - if (rnti_type == srsran_rnti_type_p || rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_ra) { - len = srsran_print_check(str, str_len, len, "reserved=0x%x ", dci->reserved); + // Transmission configuration indication – 0 or 3 bits + if (cfg->pdsch_tci) { + dci->tci = srsran_bit_pack(&y, 3); } - return len; -} + // SRS request – 2 or 3 bits + dci->srs_request = srsran_bit_pack(&y, cfg->enable_sul ? 3 : 2); -static uint32_t dci_nr_format_1_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_rnti_type_t rnti_type) -{ - int count = 0; + // CBG transmission information (CBGTI) – 0, 2, 4, 6, or 8 bits + dci->cbg_info = srsran_bit_pack(&y, cfg->pdsch_nof_cbg); - if (rnti_type != srsran_rnti_type_c && rnti_type != srsran_rnti_type_cs && rnti_type != srsran_rnti_type_mcs_c) { - ERROR("Invalid RNTI (%s) for format 1_1", srsran_rnti_type_str(rnti_type)); + // CBG flushing out information (CBGFI) – 0 or 1 bit + if (cfg->pdsch_cbg_flush) { + dci->cbg_flush = srsran_bit_pack(&y, 1); + } + + // DMRS sequence initialization – 1 bit + dci->dmrs_id = srsran_bit_pack(&y, 1); + + uint32_t nof_unpacked_bits = (uint32_t)(y - msg->payload); + if (nof_unpacked_bits != nof_bits) { + ERROR("Unpacked bits read (%d) do NOT match payload size (%d)", nof_unpacked_bits, nof_bits); return SRSRAN_ERROR; } - // Identifier for DCI formats – 1 bits - count += 1; + return SRSRAN_SUCCESS; +} + +static int +dci_nr_format_1_1_to_str(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len) +{ + uint32_t len = 0; + const srsran_dci_cfg_nr_t* cfg = &q->cfg; + + // Print format + len = srsran_print_check( + str, str_len, len, "rnti=%04x L=%d cce=%d dci=0_0 ", dci->ctx.rnti, dci->ctx.location.L, dci->ctx.location.ncce); // Carrier indicator – 0 or 3 bits - count += (int)SRSRAN_MIN(cfg->carrier_indicator_size, 3); + if (cfg->carrier_indicator_size > 0) { + len = srsran_print_check(str, str_len, len, "cc=%d ", dci->cc_id); + } // Bandwidth part indicator – 0, 1 or 2 bits - count += (int)SRSRAN_MIN(dci_nr_bwp_id_size(cfg->nof_ul_bwp), 2); + if (dci_nr_bwp_id_size(cfg->nof_dl_bwp) > 0) { + len = srsran_print_check(str, str_len, len, "bwp=%d ", dci->bwp_id); + } // Frequency domain resource assignment - count += dci_nr_freq_resource_size(cfg->pdsch_alloc_type, cfg->nof_rb_groups, cfg->bwp_dl_active_bw); + len = srsran_print_check(str, str_len, len, "f_alloc=%d ", dci->freq_domain_assigment); // Time domain resource assignment – 0, 1, 2, 3, or 4 bits - count += dci_nr_time_res_size(cfg->nof_dl_time_res); + if (cfg->nof_dl_time_res > 0) { + len = srsran_print_check(str, str_len, len, "t_alloc=%d ", dci->time_domain_assigment); + } // VRB-to-PRB mapping – 0 or 1 if (cfg->pdsch_alloc_type != srsran_resource_alloc_type0 && cfg->pdsch_inter_prb_to_prb) { - count += 1; + len = srsran_print_check(str, str_len, len, "vrb_to_prb_map=%d ", dci->vrb_to_prb_mapping); } // PRB bundling size indicator – 0 or 1 bits @@ -868,101 +1595,81 @@ static uint32_t dci_nr_format_1_1_sizeof(const srsran_dci_cfg_nr_t* cfg, srsran_ // Rate matching indicator – 0, 1, or 2 bits if (cfg->pdsch_rm_pattern1) { - count += 1; + len = srsran_print_check(str, str_len, len, "rm_pattern1=%d ", dci->rm_pattern1); } + if (cfg->pdsch_rm_pattern2) { - count += 1; + len = srsran_print_check(str, str_len, len, "rm_pattern2=%d ", dci->rm_pattern2); } // ZP CSI-RS trigger - 0, 1, or 2 bits - count += (int)CEIL_LOG2(cfg->nof_aperiodic_zp + 1); + if (CEIL_LOG2(cfg->nof_aperiodic_zp + 1) > 0) { + len = srsran_print_check(str, str_len, len, "zp_csi_rs_id=%d ", dci->zp_csi_rs_id); + } // For transport block 1: // Modulation and coding scheme – 5 bits - count += 5; + len = srsran_print_check(str, str_len, len, "mcs=%d ", dci->mcs); // New data indicator – 1 bit - count += 1; + len = srsran_print_check(str, str_len, len, "ndi=%d ", dci->ndi); // Redundancy version – 2 bits - count += 2; + len = srsran_print_check(str, str_len, len, "rv=%d ", dci->rv); // For transport block 2: if (cfg->pdsch_2cw) { // Modulation and coding scheme – 5 bits - count += 5; + len = srsran_print_check(str, str_len, len, "mcs2=%d ", dci->mcs2); // New data indicator – 1 bit - count += 1; + len = srsran_print_check(str, str_len, len, "ndi2=%d ", dci->ndi2); // Redundancy version – 2 bits - count += 2; + len = srsran_print_check(str, str_len, len, "rv2=%d ", dci->rv2); } // HARQ process number – 4 bits - count += 4; + len = srsran_print_check(str, str_len, len, "harq_id=%d ", dci->pid); // Downlink assignment index (dynamic HARQ-ACK codebook only) if (cfg->harq_ack_codebok == srsran_pdsch_harq_ack_codebook_dynamic) { - if (cfg->multiple_scell) { - count += 4; - } else { - count += 2; - } + len = srsran_print_check(str, str_len, len, "dai=%d ", dci->dai); } // TPC command for scheduled PUCCH – 2 bits - count += 2; + len = srsran_print_check(str, str_len, len, "tpc=%d ", dci->tpc); // PDSCH-to-HARQ_feedback timing indicator – 0, 1, 2, or 3 bits - count += (int)CEIL_LOG2(cfg->nof_dl_to_ul_ack); + if (cfg->nof_dl_to_ul_ack > 0) { + len = srsran_print_check(str, str_len, len, "harq_feedback=%d ", dci->harq_feedback); + } // Antenna port(s) – 4, 5, or 6 bits - count += 4; - if (cfg->pdsch_dmrs_type2) { - count++; - } - if (cfg->pdsch_dmrs_double) { - count++; - } + len = srsran_print_check(str, str_len, len, "ports=%d ", dci->ports); // Transmission configuration indication – 0 or 3 bits if (cfg->pdsch_tci) { - count += 3; + len = srsran_print_check(str, str_len, len, "tci=%d ", dci->tci); } // SRS request – 2 or 3 bits - count += 2; - if (cfg->enable_sul) { - count++; - } + len = srsran_print_check(str, str_len, len, "srs_request=%d ", dci->srs_request); // CBG transmission information (CBGTI) – 0, 2, 4, 6, or 8 bits - count += cfg->pdsch_nof_cbg; + if (cfg->pdsch_nof_cbg > 0) { + len = srsran_print_check(str, str_len, len, "cbg_info=%d ", dci->cbg_info); + } // CBG flushing out information (CBGFI) – 0 or 1 bit - if (cfg->pdsch_cbg_flush) { - count += 1; + if (cfg->pdsch_cbg_flush > 0) { + len = srsran_print_check(str, str_len, len, "cbg_flush=%d ", dci->cbg_flush); } // DMRS sequence initialization – 1 bit - count += 1; - - return count; -} - -static int dci_nr_format_1_1_pack(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, srsran_dci_msg_nr_t* msg) -{ - // TODO! + len = srsran_print_check(str, str_len, len, "dmrs_id=%d ", dci->dmrs_id); - return SRSRAN_SUCCESS; -} - -static int dci_nr_format_1_1_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, srsran_dci_dl_nr_t* dci) -{ - // TODO! - - return SRSRAN_SUCCESS; + return len; } int srsran_dci_nr_set_cfg(srsran_dci_nr_t* q, const srsran_dci_cfg_nr_t* cfg) @@ -1276,28 +1983,62 @@ int srsran_dci_nr_ul_unpack(const srsran_dci_nr_t* q, srsran_dci_msg_nr_t* msg, return SRSRAN_ERROR; } -int srsran_dci_ul_nr_to_str(const srsran_dci_ul_nr_t* dci, char* str, uint32_t str_len) +int srsran_dci_ctx_to_str(const srsran_dci_ctx_t* ctx, char* str, uint32_t str_len) { + // Print format + return srsran_print_check(str, + str_len, + 0, + "rnti=%04x L=%d cce=%d dci=%s ", + ctx->rnti, + ctx->location.L, + ctx->location.ncce, + srsran_dci_format_nr_string(ctx->format)); +} + +int srsran_dci_ul_nr_to_str(const srsran_dci_nr_t* q, const srsran_dci_ul_nr_t* dci, char* str, uint32_t str_len) +{ + uint32_t len = 0; + + len += srsran_dci_ctx_to_str(&dci->ctx, &str[len], str_len - len); + // Pack DCI switch (dci->ctx.format) { case srsran_dci_format_nr_0_0: - return dci_nr_format_0_0_to_str(dci, str, str_len); + len += dci_nr_format_0_0_to_str(dci, &str[len], str_len - len); + break; + case srsran_dci_format_nr_0_1: + len += dci_nr_format_0_1_to_str(q, dci, &str[len], str_len - len); + break; case srsran_dci_format_nr_rar: - return dci_nr_rar_to_str(dci, str, str_len); - default:; // Do nothing + len += dci_nr_rar_to_str(dci, &str[len], str_len - len); + break; + default: + len = srsran_print_check(str, str_len, len, " "); + break; } - return srsran_print_check(str, str_len, 0, "unknown"); + return len; } -int srsran_dci_dl_nr_to_str(const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len) +int srsran_dci_dl_nr_to_str(const srsran_dci_nr_t* q, const srsran_dci_dl_nr_t* dci, char* str, uint32_t str_len) { + uint32_t len = 0; + + len += srsran_dci_ctx_to_str(&dci->ctx, &str[len], str_len - len); + // Pack DCI switch (dci->ctx.format) { case srsran_dci_format_nr_1_0: - return dci_nr_format_1_0_to_str(dci, str, str_len); - default:; // Do nothing + len += dci_nr_format_1_0_to_str(dci, &str[len], str_len - len); + break; + case srsran_dci_format_nr_1_1: + len += dci_nr_format_1_1_to_str(q, dci, &str[len], str_len - len); + break; + default: + len = srsran_print_check(str, str_len, len, " "); + break; } - return srsran_print_check(str, str_len, 0, "unknown"); + return len; } diff --git a/lib/src/phy/phch/pdsch_nr.c b/lib/src/phy/phch/pdsch_nr.c index 982f2ad2a..80317d5fb 100644 --- a/lib/src/phy/phch/pdsch_nr.c +++ b/lib/src/phy/phch/pdsch_nr.c @@ -26,6 +26,33 @@ #include "srsran/phy/mimo/precoding.h" #include "srsran/phy/modem/demod_soft.h" +static int pdsch_nr_alloc(srsran_pdsch_nr_t* q, uint32_t max_mimo_layers, uint32_t max_prb) +{ + // Reallocate symbols if necessary + if (q->max_layers < max_mimo_layers || q->max_prb < max_prb) { + q->max_layers = max_mimo_layers; + q->max_prb = max_prb; + + // Free current allocations + for (uint32_t i = 0; i < SRSRAN_MAX_LAYERS_NR; i++) { + if (q->x[i] != NULL) { + free(q->x[i]); + } + } + + // Allocate for new sizes + for (uint32_t i = 0; i < q->max_layers; i++) { + q->x[i] = srsran_vec_cf_malloc(SRSRAN_SLOT_LEN_RE_NR(q->max_prb)); + if (q->x[i] == NULL) { + ERROR("Malloc"); + return SRSRAN_ERROR; + } + } + } + + return SRSRAN_SUCCESS; +} + int pdsch_nr_init_common(srsran_pdsch_nr_t* q, const srsran_pdsch_nr_args_t* args) { SRSRAN_MEM_ZERO(q, srsran_pdsch_nr_t, 1); @@ -40,6 +67,10 @@ int pdsch_nr_init_common(srsran_pdsch_nr_t* q, const srsran_pdsch_nr_args_t* arg } } + if (pdsch_nr_alloc(q, args->max_layers, args->max_prb) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + return SRSRAN_SUCCESS; } @@ -94,26 +125,8 @@ int srsran_pdsch_nr_set_carrier(srsran_pdsch_nr_t* q, const srsran_carrier_nr_t* // Set carrier q->carrier = *carrier; - // Reallocate symbols if necessary - if (q->max_layers < carrier->max_mimo_layers || q->max_prb < carrier->nof_prb) { - q->max_layers = carrier->max_mimo_layers; - q->max_prb = carrier->nof_prb; - - // Free current allocations - for (uint32_t i = 0; i < SRSRAN_MAX_LAYERS_NR; i++) { - if (q->x[i] != NULL) { - free(q->x[i]); - } - } - - // Allocate for new sizes - for (uint32_t i = 0; i < q->max_layers; i++) { - q->x[i] = srsran_vec_cf_malloc(SRSRAN_SLOT_LEN_RE_NR(q->max_prb)); - if (q->x[i] == NULL) { - ERROR("Malloc"); - return SRSRAN_ERROR; - } - } + if (pdsch_nr_alloc(q, carrier->max_mimo_layers, carrier->nof_prb) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; } // Allocate code words according to table 7.3.1.3-1 diff --git a/lib/src/phy/phch/pusch_nr.c b/lib/src/phy/phch/pusch_nr.c index 12d8523b4..3832e809c 100644 --- a/lib/src/phy/phch/pusch_nr.c +++ b/lib/src/phy/phch/pusch_nr.c @@ -27,6 +27,33 @@ #include "srsran/phy/phch/ra_nr.h" #include "srsran/phy/phch/uci_cfg.h" +static int pusch_nr_alloc(srsran_pusch_nr_t* q, uint32_t max_mimo_layers, uint32_t max_prb) +{ + // Reallocate symbols if necessary + if (q->max_layers < max_mimo_layers || q->max_prb < max_prb) { + q->max_layers = max_mimo_layers; + q->max_prb = max_prb; + + // Free current allocations + for (uint32_t i = 0; i < SRSRAN_MAX_LAYERS_NR; i++) { + if (q->x[i] != NULL) { + free(q->x[i]); + } + } + + // Allocate for new sizes + for (uint32_t i = 0; i < q->max_layers; i++) { + q->x[i] = srsran_vec_cf_malloc(SRSRAN_SLOT_LEN_RE_NR(q->max_prb)); + if (q->x[i] == NULL) { + ERROR("Malloc"); + return SRSRAN_ERROR; + } + } + } + + return SRSRAN_SUCCESS; +} + int pusch_nr_init_common(srsran_pusch_nr_t* q, const srsran_pusch_nr_args_t* args) { for (srsran_mod_t mod = SRSRAN_MOD_BPSK; mod < SRSRAN_MOD_NITEMS; mod++) { @@ -39,6 +66,10 @@ int pusch_nr_init_common(srsran_pusch_nr_t* q, const srsran_pusch_nr_args_t* arg } } + if (pusch_nr_alloc(q, args->max_layers, args->max_prb) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; + } + if (srsran_uci_nr_init(&q->uci, &args->uci) < SRSRAN_SUCCESS) { ERROR("Initialising UCI"); return SRSRAN_ERROR; @@ -116,26 +147,8 @@ int srsran_pusch_nr_set_carrier(srsran_pusch_nr_t* q, const srsran_carrier_nr_t* // Set carrier q->carrier = *carrier; - // Reallocate symbols if necessary - if (q->max_layers < carrier->max_mimo_layers || q->max_prb < carrier->nof_prb) { - q->max_layers = carrier->max_mimo_layers; - q->max_prb = carrier->nof_prb; - - // Free current allocations - for (uint32_t i = 0; i < SRSRAN_MAX_LAYERS_NR; i++) { - if (q->x[i] != NULL) { - free(q->x[i]); - } - } - - // Allocate for new sizes - for (uint32_t i = 0; i < q->max_layers; i++) { - q->x[i] = srsran_vec_cf_malloc(SRSRAN_SLOT_LEN_RE_NR(q->max_prb)); - if (q->x[i] == NULL) { - ERROR("Malloc"); - return SRSRAN_ERROR; - } - } + if (pusch_nr_alloc(q, carrier->max_mimo_layers, carrier->nof_prb) < SRSRAN_SUCCESS) { + return SRSRAN_ERROR; } // Allocate code words according to table 7.3.1.3-1 diff --git a/lib/src/phy/phch/ra_ul_nr.c b/lib/src/phy/phch/ra_ul_nr.c index 076c95d3b..b6f39be3c 100644 --- a/lib/src/phy/phch/ra_ul_nr.c +++ b/lib/src/phy/phch/ra_ul_nr.c @@ -34,22 +34,23 @@ typedef struct { uint32_t L; } ue_ra_time_resource_t; -static const ue_ra_time_resource_t ue_ul_default_A_lut[16] = {{srsran_sch_mapping_type_A, 0, 0, 14}, - {srsran_sch_mapping_type_A, 0, 0, 12}, - {srsran_sch_mapping_type_A, 0, 0, 10}, - {srsran_sch_mapping_type_B, 0, 2, 10}, - {srsran_sch_mapping_type_B, 0, 4, 10}, - {srsran_sch_mapping_type_B, 0, 4, 8}, - {srsran_sch_mapping_type_B, 0, 4, 6}, - {srsran_sch_mapping_type_A, 1, 0, 14}, - {srsran_sch_mapping_type_A, 1, 0, 12}, - {srsran_sch_mapping_type_A, 1, 0, 10}, - {srsran_sch_mapping_type_A, 2, 0, 14}, - {srsran_sch_mapping_type_A, 2, 0, 12}, - {srsran_sch_mapping_type_A, 2, 0, 10}, - {srsran_sch_mapping_type_B, 0, 8, 6}, - {srsran_sch_mapping_type_A, 3, 0, 14}, - {srsran_sch_mapping_type_A, 3, 0, 10}}; +static const ue_ra_time_resource_t ue_ul_default_A_lut[SRSRAN_MAX_NOF_TIME_RA] = { + {srsran_sch_mapping_type_A, 0, 0, 14}, + {srsran_sch_mapping_type_A, 0, 0, 12}, + {srsran_sch_mapping_type_A, 0, 0, 10}, + {srsran_sch_mapping_type_B, 0, 2, 10}, + {srsran_sch_mapping_type_B, 0, 4, 10}, + {srsran_sch_mapping_type_B, 0, 4, 8}, + {srsran_sch_mapping_type_B, 0, 4, 6}, + {srsran_sch_mapping_type_A, 1, 0, 14}, + {srsran_sch_mapping_type_A, 1, 0, 12}, + {srsran_sch_mapping_type_A, 1, 0, 10}, + {srsran_sch_mapping_type_A, 2, 0, 14}, + {srsran_sch_mapping_type_A, 2, 0, 12}, + {srsran_sch_mapping_type_A, 2, 0, 10}, + {srsran_sch_mapping_type_B, 0, 8, 6}, + {srsran_sch_mapping_type_A, 3, 0, 14}, + {srsran_sch_mapping_type_A, 3, 0, 10}}; int srsran_ra_ul_nr_pusch_time_resource_default_A(uint32_t scs_cfg, uint32_t m, srsran_sch_grant_nr_t* grant) { @@ -64,7 +65,7 @@ int srsran_ra_ul_nr_pusch_time_resource_default_A(uint32_t scs_cfg, uint32_t m, return SRSRAN_ERROR; } - if (m >= 16) { + if (m >= SRSRAN_MAX_NOF_TIME_RA) { ERROR("m (%d) is out-of-range", m); return SRSRAN_ERROR_INVALID_INPUTS; } diff --git a/lib/src/phy/phch/test/dci_nr_test.c b/lib/src/phy/phch/test/dci_nr_test.c index 435069e5f..caf4822e5 100644 --- a/lib/src/phy/phch/test/dci_nr_test.c +++ b/lib/src/phy/phch/test/dci_nr_test.c @@ -21,8 +21,14 @@ #include "srsran/common/test_common.h" #include "srsran/phy/phch/dci_nr.h" +#include "srsran/phy/utils/debug.h" +#include "srsran/phy/utils/random.h" +#include -static int test_52prb() +static uint32_t nof_repetitions = 1024; +static srsran_random_t random_gen = NULL; + +static int test_52prb_base() { // Default configuration with all options disabled srsran_dci_cfg_nr_t cfg = {}; @@ -39,6 +45,49 @@ static int test_52prb() cfg.monitor_0_0_and_1_0 = true; cfg.monitor_0_1_and_1_1 = true; + // Common parameters + cfg.enable_hopping = false; + cfg.enable_sul = false; + + // Common DCI 0_1 and 1_1 parameters + cfg.carrier_indicator_size = 0; + cfg.harq_ack_codebok = srsran_pdsch_harq_ack_codebook_dynamic; + cfg.nof_rb_groups = 0; // Only for allocation type 0 + + // DCI 0_1 parameters + cfg.nof_ul_bwp = 0; + cfg.nof_ul_time_res = 2; + cfg.nof_srs = 1; + cfg.nof_ul_layers = 1; + cfg.pusch_nof_cbg = 0; + cfg.report_trigger_size = 0; + cfg.enable_transform_precoding = false; + cfg.dynamic_dual_harq_ack_codebook = false; + cfg.pusch_tx_config_non_codebook = false; + cfg.pusch_dmrs_type2 = false; + cfg.pusch_dmrs_double = false; + cfg.pusch_ptrs = false; + cfg.pusch_dynamic_betas = false; + cfg.pusch_alloc_type = srsran_resource_alloc_type1; + + // DCI 1_1 parameters + cfg.nof_dl_bwp = 0; + cfg.nof_dl_time_res = 1; + cfg.nof_aperiodic_zp = 0; + cfg.pdsch_nof_cbg = 0; + cfg.nof_dl_to_ul_ack = 5; + cfg.pdsch_inter_prb_to_prb = false; + cfg.pdsch_rm_pattern1 = false; + cfg.pdsch_rm_pattern2 = false; + cfg.pdsch_2cw = false; + cfg.multiple_scell = false; + cfg.pdsch_dmrs_type2 = false; + cfg.pdsch_dmrs_double = false; + cfg.pdsch_tci = false; + cfg.pdsch_cbg_flush = false; + cfg.pdsch_dynamic_bundling = false; + cfg.pdsch_alloc_type = srsran_resource_alloc_type1; + // Configure DCI srsran_dci_nr_t dci = {}; TESTASSERT(srsran_dci_nr_set_cfg(&dci, &cfg) == SRSRAN_SUCCESS); @@ -48,15 +97,259 @@ static int test_52prb() TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_common_3, srsran_dci_format_nr_1_0) == 39); TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_0_0) == 39); TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_1_0) == 39); - TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_0_1) == 28); - TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_1_1) == 26); + TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_0_1) == 36); + TESTASSERT(srsran_dci_nr_size(&dci, srsran_search_space_type_ue, srsran_dci_format_nr_1_1) == 41); + + srsran_dci_ctx_t ctx = {}; + ctx.rnti = 0x1234; + ctx.ss_type = srsran_search_space_type_common_3; + ctx.rnti_type = srsran_rnti_type_c; + + // Test UL DCI 0_0 Packing/Unpacking and info + ctx.format = srsran_dci_format_nr_0_0; + for (uint32_t i = 0; i < nof_repetitions; i++) { + srsran_dci_ul_nr_t dci_tx = {}; + dci_tx.ctx = ctx; + dci_tx.freq_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)(1U << 11U) - 1); + dci_tx.time_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)cfg.nof_ul_time_res - 1); + dci_tx.freq_hopping_flag = 0; // unavailable + dci_tx.mcs = srsran_random_uniform_int_dist(random_gen, 0, 31); + dci_tx.rv = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.ndi = srsran_random_uniform_int_dist(random_gen, 0, 1); + dci_tx.pid = srsran_random_uniform_int_dist(random_gen, 0, 15); + dci_tx.tpc = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.frequency_offset = 0; // unavailable + dci_tx.csi_request = 0; // unavailable + dci_tx.sul = 0; // unavailable + dci_tx.cc_id = 0; // unavailable + dci_tx.bwp_id = 0; // unavailable + dci_tx.dai1 = 0; // unavailable + dci_tx.dai2 = 0; // unavailable + dci_tx.srs_id = 0; // unavailable + dci_tx.ports = 0; // unavailable + dci_tx.srs_request = 0; // unavailable + dci_tx.cbg_info = 0; // unavailable + dci_tx.ptrs_id = 0; // unavailable + dci_tx.beta_id = 0; // unavailable + dci_tx.dmrs_id = 0; // unavailable + dci_tx.ulsch = 0; // unavailable + + // Pack + srsran_dci_msg_nr_t dci_msg = {}; + TESTASSERT(srsran_dci_nr_ul_pack(&dci, &dci_tx, &dci_msg) == SRSRAN_SUCCESS); + + // Unpack + srsran_dci_ul_nr_t dci_rx = {}; + TESTASSERT(srsran_dci_nr_ul_unpack(&dci, &dci_msg, &dci_rx) == SRSRAN_SUCCESS); + + // To string + char str[512]; + TESTASSERT(srsran_dci_ul_nr_to_str(&dci, &dci_tx, str, (uint32_t)sizeof(str)) != 0); + INFO("Tx: %s", str); + TESTASSERT(srsran_dci_ul_nr_to_str(&dci, &dci_rx, str, (uint32_t)sizeof(str)) != 0); + INFO("Rx: %s", str); + + // Assert + TESTASSERT(memcmp(&dci_tx, &dci_rx, sizeof(srsran_dci_ul_nr_t)) == 0); + } + + // Test UL DCI 0_1 Packing/Unpacking and info + ctx.ss_type = srsran_search_space_type_ue; + ctx.format = srsran_dci_format_nr_0_1; + for (uint32_t i = 0; i < nof_repetitions; i++) { + srsran_dci_ul_nr_t dci_tx = {}; + dci_tx.ctx = ctx; + dci_tx.freq_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)(1U << 11U) - 1); + dci_tx.time_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)cfg.nof_ul_time_res - 1); + dci_tx.freq_hopping_flag = 0; // unavailable + dci_tx.mcs = srsran_random_uniform_int_dist(random_gen, 0, 31); + dci_tx.rv = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.ndi = srsran_random_uniform_int_dist(random_gen, 0, 1); + dci_tx.pid = srsran_random_uniform_int_dist(random_gen, 0, 15); + dci_tx.tpc = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.frequency_offset = 0; // unavailable + dci_tx.csi_request = 0; // unavailable + dci_tx.sul = 0; // unavailable + dci_tx.cc_id = 0; // unavailable + dci_tx.bwp_id = 0; // unavailable + dci_tx.dai1 = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.dai2 = 0; // unavailable + dci_tx.srs_id = 0; // unavailable + dci_tx.ports = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.srs_request = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.cbg_info = 0; // unavailable + dci_tx.ptrs_id = 0; // unavailable + dci_tx.beta_id = 0; // unavailable + dci_tx.dmrs_id = srsran_random_uniform_int_dist(random_gen, 0, 1); + dci_tx.ulsch = srsran_random_uniform_int_dist(random_gen, 0, 1); + + // Pack + srsran_dci_msg_nr_t dci_msg = {}; + TESTASSERT(srsran_dci_nr_ul_pack(&dci, &dci_tx, &dci_msg) == SRSRAN_SUCCESS); + + // Unpack + srsran_dci_ul_nr_t dci_rx = {}; + TESTASSERT(srsran_dci_nr_ul_unpack(&dci, &dci_msg, &dci_rx) == SRSRAN_SUCCESS); + + // To string + char str[512]; + TESTASSERT(srsran_dci_ul_nr_to_str(&dci, &dci_tx, str, (uint32_t)sizeof(str)) != 0); + INFO("Tx: %s", str); + TESTASSERT(srsran_dci_ul_nr_to_str(&dci, &dci_rx, str, (uint32_t)sizeof(str)) != 0); + INFO("Rx: %s", str); + + // Assert + TESTASSERT(memcmp(&dci_tx, &dci_rx, sizeof(srsran_dci_ul_nr_t)) == 0); + } + + // Test UL DCI 1_0 Packing/Unpacking and info + ctx.format = srsran_dci_format_nr_1_0; + for (uint32_t i = 0; i < nof_repetitions; i++) { + srsran_dci_dl_nr_t dci_tx = {}; + dci_tx.ctx = ctx; + dci_tx.freq_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)(1U << 11U) - 1); + dci_tx.time_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)cfg.nof_ul_time_res - 1); + dci_tx.vrb_to_prb_mapping = 0; // unavailable + dci_tx.mcs = srsran_random_uniform_int_dist(random_gen, 0, 31); + dci_tx.rv = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.ndi = srsran_random_uniform_int_dist(random_gen, 0, 1); + dci_tx.pid = srsran_random_uniform_int_dist(random_gen, 0, 15); + dci_tx.tpc = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.pucch_resource = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.harq_feedback = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.smi = 0; // unavailable + dci_tx.sm = 0; // unavailable + dci_tx.tb_scaling = 0; // unavailable + dci_tx.sii = 0; // unavailable + dci_tx.mcs2 = 0; // unavailable + dci_tx.ndi2 = 0; // unavailable + dci_tx.rv2 = 0; // unavailable + dci_tx.cc_id = 0; // unavailable + dci_tx.bwp_id = 0; // unavailable + dci_tx.rm_pattern1 = 0; // unavailable + dci_tx.rm_pattern2 = 0; // unavailable + dci_tx.zp_csi_rs_id = 0; // unavailable + dci_tx.ports = 0; // unavailable + dci_tx.tci = 0; // unavailable + dci_tx.srs_request = 0; // unavailable + dci_tx.cbg_info = 0; // unavailable + dci_tx.cbg_flush = 0; // unavailable + dci_tx.dmrs_id = 0; // unavailable + + // Pack + srsran_dci_msg_nr_t dci_msg = {}; + TESTASSERT(srsran_dci_nr_dl_pack(&dci, &dci_tx, &dci_msg) == SRSRAN_SUCCESS); + + // Unpack + srsran_dci_dl_nr_t dci_rx = {}; + TESTASSERT(srsran_dci_nr_dl_unpack(&dci, &dci_msg, &dci_rx) == SRSRAN_SUCCESS); + + // To string + char str[512]; + TESTASSERT(srsran_dci_dl_nr_to_str(&dci, &dci_tx, str, (uint32_t)sizeof(str)) != 0); + INFO("Tx: %s", str); + TESTASSERT(srsran_dci_dl_nr_to_str(&dci, &dci_rx, str, (uint32_t)sizeof(str)) != 0); + INFO("Rx: %s", str); + + // Assert + TESTASSERT(memcmp(&dci_tx, &dci_rx, sizeof(srsran_dci_dl_nr_t)) == 0); + } + + // Test UL DCI 1_0 Packing/Unpacking and info + ctx.format = srsran_dci_format_nr_1_1; + for (uint32_t i = 0; i < nof_repetitions; i++) { + srsran_dci_dl_nr_t dci_tx = {}; + dci_tx.ctx = ctx; + dci_tx.freq_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)(1U << 11U) - 1); + dci_tx.time_domain_assigment = srsran_random_uniform_int_dist(random_gen, 0, (int)cfg.nof_dl_time_res - 1); + dci_tx.vrb_to_prb_mapping = 0; // unavailable + dci_tx.mcs = srsran_random_uniform_int_dist(random_gen, 0, 31); + dci_tx.rv = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.ndi = srsran_random_uniform_int_dist(random_gen, 0, 1); + dci_tx.pid = srsran_random_uniform_int_dist(random_gen, 0, 15); + dci_tx.tpc = srsran_random_uniform_int_dist(random_gen, 0, 3); + dci_tx.pucch_resource = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.harq_feedback = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.smi = 0; // unavailable + dci_tx.sm = 0; // unavailable + dci_tx.tb_scaling = 0; // unavailable + dci_tx.sii = 0; // unavailable + dci_tx.mcs2 = 0; // unavailable + dci_tx.ndi2 = 0; // unavailable + dci_tx.rv2 = 0; // unavailable + dci_tx.cc_id = 0; // unavailable + dci_tx.bwp_id = 0; // unavailable + dci_tx.rm_pattern1 = 0; // unavailable + dci_tx.rm_pattern2 = 0; // unavailable + dci_tx.zp_csi_rs_id = 0; // unavailable + dci_tx.ports = srsran_random_uniform_int_dist(random_gen, 0, 7); + dci_tx.tci = 0; // unavailable + dci_tx.srs_request = 0; // unavailable + dci_tx.cbg_info = 0; // unavailable + dci_tx.cbg_flush = 0; // unavailable + dci_tx.dmrs_id = 0; // unavailable + + // Pack + srsran_dci_msg_nr_t dci_msg = {}; + TESTASSERT(srsran_dci_nr_dl_pack(&dci, &dci_tx, &dci_msg) == SRSRAN_SUCCESS); + + // Unpack + srsran_dci_dl_nr_t dci_rx = {}; + TESTASSERT(srsran_dci_nr_dl_unpack(&dci, &dci_msg, &dci_rx) == SRSRAN_SUCCESS); + + // To string + char str[512]; + TESTASSERT(srsran_dci_dl_nr_to_str(&dci, &dci_tx, str, (uint32_t)sizeof(str)) != 0); + INFO("Tx: %s", str); + TESTASSERT(srsran_dci_dl_nr_to_str(&dci, &dci_rx, str, (uint32_t)sizeof(str)) != 0); + INFO("Rx: %s", str); + + // Assert + TESTASSERT(memcmp(&dci_tx, &dci_rx, sizeof(srsran_dci_dl_nr_t)) == 0); + } return SRSRAN_SUCCESS; } +static void usage(char* prog) +{ + printf("Usage: %s [cpndv]\n", prog); + printf("\t-v Increase verbose [default none]\n"); + printf("\t-R Set number of Packing/Unpacking [default %d]\n", nof_repetitions); +} + +static void parse_args(int argc, char** argv) +{ + int opt; + while ((opt = getopt(argc, argv, "vR")) != -1) { + switch (opt) { + case 'v': + srsran_verbose++; + break; + case 'R': + nof_repetitions = (uint32_t)strtol(argv[optind], NULL, 10); + break; + default: + usage(argv[0]); + exit(-1); + } + } +} + int main(int argc, char** argv) { - TESTASSERT(test_52prb() == SRSRAN_SUCCESS); + parse_args(argc, argv); - return SRSRAN_SUCCESS; + int ret = SRSRAN_ERROR; + random_gen = srsran_random_init(1234); + + if (test_52prb_base() < SRSRAN_SUCCESS) { + goto clean_exit; + } + + ret = SRSRAN_SUCCESS; + +clean_exit: + srsran_random_free(random_gen); + return ret; } diff --git a/lib/src/phy/ue/ue_dl_nr.c b/lib/src/phy/ue/ue_dl_nr.c index 65cdfbd9c..ebc83c1bf 100644 --- a/lib/src/phy/ue/ue_dl_nr.c +++ b/lib/src/phy/ue/ue_dl_nr.c @@ -96,7 +96,7 @@ int srsran_ue_dl_nr_init(srsran_ue_dl_nr_t* q, cf_t* input[SRSRAN_MAX_PORTS], co srsran_ofdm_cfg_t fft_cfg = {}; fft_cfg.nof_prb = args->nof_max_prb; - fft_cfg.symbol_sz = srsran_symbol_sz(args->nof_max_prb); + fft_cfg.symbol_sz = srsran_min_symbol_sz_rb(args->nof_max_prb); fft_cfg.keep_dc = true; fft_cfg.rx_window_offset = UE_DL_NR_FFT_WINDOW_OFFSET; diff --git a/lib/src/srslog/event_trace.cpp b/lib/src/srslog/event_trace.cpp index 6ba025f79..abc793480 100644 --- a/lib/src/srslog/event_trace.cpp +++ b/lib/src/srslog/event_trace.cpp @@ -48,7 +48,7 @@ void srslog::event_trace_init() static constexpr char default_file_name[] = "event_trace.log"; // Create the default event trace channel. - //:TODO: handle name reservation. + //: TODO: handle name reservation. sink* s = create_file_sink(default_file_name); assert(s && "Default event file sink is reserved"); tracer = create_log_channel("event_trace_channel", *s); diff --git a/lib/src/srslog/object_repository.h b/lib/src/srslog/object_repository.h index 8248ec061..26a07059d 100644 --- a/lib/src/srslog/object_repository.h +++ b/lib/src/srslog/object_repository.h @@ -35,7 +35,7 @@ namespace srslog { template class object_repository { - mutable detail::mutex m; + mutable detail::mutex m; std::unordered_map repo; public: @@ -44,7 +44,7 @@ public: V* insert(const K& key, V&& value) { detail::scoped_lock lock(m); - const auto& insertion = repo.emplace(key, std::move(value)); + const auto& insertion = repo.emplace(key, std::move(value)); if (!insertion.second) return nullptr; return &insertion.first->second; @@ -57,7 +57,7 @@ public: V& emplace(Args&&... args) { detail::scoped_lock lock(m); - auto insertion = repo.emplace(std::forward(args)...); + auto insertion = repo.emplace(std::forward(args)...); return insertion.first->second; } @@ -66,13 +66,13 @@ public: V* find(const K& key) { detail::scoped_lock lock(m); - auto it = repo.find(key); + auto it = repo.find(key); return (it != repo.end()) ? &it->second : nullptr; } const V* find(const K& key) const { detail::scoped_lock lock(m); - const auto it = repo.find(key); + const auto it = repo.find(key); return (it != repo.cend()) ? &it->second : nullptr; } diff --git a/lib/src/srslog/sinks/file_sink.h b/lib/src/srslog/sinks/file_sink.h index 64f8b6b34..6a30be191 100644 --- a/lib/src/srslog/sinks/file_sink.h +++ b/lib/src/srslog/sinks/file_sink.h @@ -33,9 +33,7 @@ namespace srslog { class file_sink : public sink { public: - file_sink(std::string name, - size_t max_size, - std::unique_ptr f) : + file_sink(std::string name, size_t max_size, std::unique_ptr f) : sink(std::move(f)), max_size((max_size == 0) ? 0 : std::max(max_size, 4 * 1024)), base_filename(std::move(name)) @@ -81,8 +79,7 @@ private: /// Creates a new file and increments the file index counter. detail::error_string create_file() { - return handler.create( - file_utils::build_filename_with_index(base_filename, file_index++)); + return handler.create(file_utils::build_filename_with_index(base_filename, file_index++)); } /// Handles the file rotation feature when it is activated. @@ -99,11 +96,11 @@ private: } private: - const size_t max_size; + const size_t max_size; const std::string base_filename; - file_utils::file handler; - size_t current_size = 0; - uint32_t file_index = 0; + file_utils::file handler; + size_t current_size = 0; + uint32_t file_index = 0; }; } // namespace srslog diff --git a/lib/src/srslog/sinks/file_utils.h b/lib/src/srslog/sinks/file_utils.h index f99cd9c72..17da58595 100644 --- a/lib/src/srslog/sinks/file_utils.h +++ b/lib/src/srslog/sinks/file_utils.h @@ -40,8 +40,7 @@ inline std::string format_error(const std::string& error, int error_code) } /// Splits the specified path into a filename and its extension (if present). -inline std::pair -split_filename_extension(const std::string& filename) +inline std::pair split_filename_extension(const std::string& filename) { // Search for the last dot. auto dot_pos = filename.find_last_of('.'); @@ -50,8 +49,7 @@ split_filename_extension(const std::string& filename) // a) No dot found: my_file // b) Dot found at the beginning: .my_file // c) Dot found at the end: my_file. - if (dot_pos == std::string::npos || dot_pos == 0 || - dot_pos == filename.size() - 1) { + if (dot_pos == std::string::npos || dot_pos == 0 || dot_pos == filename.size() - 1) { return {filename, ""}; } @@ -70,8 +68,7 @@ split_filename_extension(const std::string& filename) } /// Builds a file name formatting the input base name and file index. -inline std::string build_filename_with_index(const std::string& basename, - size_t index) +inline std::string build_filename_with_index(const std::string& basename, size_t index) { if (index == 0) { return basename; @@ -86,7 +83,7 @@ inline std::string build_filename_with_index(const std::string& basename, class file { std::string path; - std::FILE* handle = nullptr; + std::FILE* handle = nullptr; public: ~file() { close(); } @@ -110,19 +107,15 @@ public: return {}; } - return format_error( - fmt::format("Unable to create log file \"{}\"", new_path), errno); + return format_error(fmt::format("Unable to create log file \"{}\"", new_path), errno); } /// Writes the provided memory buffer into an open file, otherwise does /// nothing. detail::error_string write(detail::memory_buffer buffer) { - if (handle && - std::fwrite(buffer.data(), sizeof(char), buffer.size(), handle) != - buffer.size()) { - auto err_str = format_error( - fmt::format("Unable to write log file \"{}\"", path), errno); + if (handle && std::fwrite(buffer.data(), sizeof(char), buffer.size(), handle) != buffer.size()) { + auto err_str = format_error(fmt::format("Unable to write log file \"{}\"", path), errno); close(); return err_str; } @@ -134,9 +127,7 @@ public: detail::error_string flush() { if (handle && ::fflush(handle) == EOF) { - auto err_str = format_error( - fmt::format("Error encountered while flushing log file \"{}\"", path), - errno); + auto err_str = format_error(fmt::format("Error encountered while flushing log file \"{}\"", path), errno); close(); return err_str; } diff --git a/lib/src/srslog/sinks/stream_sink.h b/lib/src/srslog/sinks/stream_sink.h index 75a7cf267..f9116f361 100644 --- a/lib/src/srslog/sinks/stream_sink.h +++ b/lib/src/srslog/sinks/stream_sink.h @@ -34,8 +34,7 @@ class stream_sink : public sink { public: stream_sink(sink_stream_type s, std::unique_ptr f) : - sink(std::move(f)), - handle((s == sink_stream_type::stdout) ? stdout : stderr) + sink(std::move(f)), handle((s == sink_stream_type::stdout) ? stdout : stderr) {} stream_sink(const stream_sink& other) = delete; diff --git a/lib/src/srslog/srslog.cpp b/lib/src/srslog/srslog.cpp index 6e938630a..5d7dd85d6 100644 --- a/lib/src/srslog/srslog.cpp +++ b/lib/src/srslog/srslog.cpp @@ -164,7 +164,7 @@ sink& srslog::fetch_file_sink(const std::string& path, size_t max_size, std::uni return *s; } - //:TODO: GCC5 or lower versions emits an error if we use the new() expression + //: TODO: GCC5 or lower versions emits an error if we use the new() expression // directly, use redundant piecewise_construct instead. auto& s = srslog_instance::get().get_sink_repo().emplace( std::piecewise_construct, @@ -371,7 +371,7 @@ sink* srslog::create_stderr_sink(const std::string& name) sink* srslog::create_file_sink(const std::string& path, size_t max_size) { - //:TODO: GCC5 or lower versions emits an error if we use the new() expression + //: TODO: GCC5 or lower versions emits an error if we use the new() expression // directly, use redundant piecewise_construct instead. return srslog_instance::get() .get_sink_repo() diff --git a/lib/src/srslog/srslog_c.cpp b/lib/src/srslog/srslog_c.cpp index 872343785..bd033addf 100644 --- a/lib/src/srslog/srslog_c.cpp +++ b/lib/src/srslog/srslog_c.cpp @@ -65,8 +65,7 @@ srslog_log_channel* srslog_find_log_channel(const char* id) return c_cast(find_log_channel(id)); } -void srslog_set_log_channel_enabled(srslog_log_channel* channel, - srslog_bool enabled) +void srslog_set_log_channel_enabled(srslog_log_channel* channel, srslog_bool enabled) { assert(channel && "Expected a valid channel"); c_cast(channel)->set_enabled(enabled); diff --git a/lib/src/srslog/srslog_instance.h b/lib/src/srslog/srslog_instance.h index b28035438..96959aa38 100644 --- a/lib/src/srslog/srslog_instance.h +++ b/lib/src/srslog/srslog_instance.h @@ -36,19 +36,17 @@ class srslog_instance srslog_instance() { // stdout and stderr sinks are always present. - auto& stdout_sink = sink_repo.emplace( - std::piecewise_construct, - std::forward_as_tuple("stdout"), - std::forward_as_tuple(new stream_sink( - sink_stream_type::stdout, - std::unique_ptr(new text_formatter)))); + auto& stdout_sink = + sink_repo.emplace(std::piecewise_construct, + std::forward_as_tuple("stdout"), + std::forward_as_tuple(new stream_sink(sink_stream_type::stdout, + std::unique_ptr(new text_formatter)))); default_sink = stdout_sink.get(); sink_repo.emplace(std::piecewise_construct, std::forward_as_tuple("stderr"), - std::forward_as_tuple(new stream_sink( - sink_stream_type::stderr, - std::unique_ptr(new text_formatter)))); + std::forward_as_tuple(new stream_sink(sink_stream_type::stderr, + std::unique_ptr(new text_formatter)))); // Initialize the default formatter pointer with a text formatter. { @@ -70,28 +68,25 @@ public: /// Logger repository accessor. using logger_repo_type = object_repository; - logger_repo_type& get_logger_repo() { return logger_repo; } + logger_repo_type& get_logger_repo() { return logger_repo; } const logger_repo_type& get_logger_repo() const { return logger_repo; } /// Log channel repository accessor. using channel_repo_type = object_repository; - channel_repo_type& get_channel_repo() { return channel_repo; } + channel_repo_type& get_channel_repo() { return channel_repo; } const channel_repo_type& get_channel_repo() const { return channel_repo; } /// Sink repository accessor. - using sink_repo_type = object_repository>; - sink_repo_type& get_sink_repo() { return sink_repo; } + using sink_repo_type = object_repository >; + sink_repo_type& get_sink_repo() { return sink_repo; } const sink_repo_type& get_sink_repo() const { return sink_repo; } /// Backend accessor. - detail::log_backend& get_backend() { return backend; } + detail::log_backend& get_backend() { return backend; } const detail::log_backend& get_backend() const { return backend; } /// Installs the specified error handler into the backend. - void set_error_handler(error_handler callback) - { - backend.set_error_handler(std::move(callback)); - } + void set_error_handler(error_handler callback) { backend.set_error_handler(std::move(callback)); } /// Set the specified sink as the default one. void set_default_sink(sink& s) { default_sink = &s; } @@ -116,12 +111,12 @@ public: private: /// NOTE: The order of declaration of each member is important here for proper /// destruction. - sink_repo_type sink_repo; - log_backend_impl backend; - channel_repo_type channel_repo; - logger_repo_type logger_repo; + sink_repo_type sink_repo; + log_backend_impl backend; + channel_repo_type channel_repo; + logger_repo_type logger_repo; detail::shared_variable default_sink{nullptr}; - mutable detail::mutex formatter_mutex; + mutable detail::mutex formatter_mutex; std::unique_ptr default_formatter; }; diff --git a/lib/src/upper/pdcp_entity_lte.cc b/lib/src/upper/pdcp_entity_lte.cc index 0aad10f6f..969fdae60 100644 --- a/lib/src/upper/pdcp_entity_lte.cc +++ b/lib/src/upper/pdcp_entity_lte.cc @@ -772,7 +772,7 @@ void pdcp_entity_lte::notify_failure(const pdcp_sn_vector_t& pdcp_sns) ***************************************************************************/ bool pdcp_entity_lte::check_valid_config() { - if (cfg.sn_len != PDCP_SN_LEN_5 && cfg.sn_len != PDCP_SN_LEN_7 && cfg.sn_len != PDCP_SN_LEN_12) { + if (cfg.sn_len != PDCP_SN_LEN_5 && cfg.sn_len != PDCP_SN_LEN_7 && cfg.sn_len != PDCP_SN_LEN_12 && cfg.sn_len != PDCP_SN_LEN_18) { logger.error("Trying to configure bearer with invalid SN LEN=%d", cfg.sn_len); return false; } diff --git a/lib/src/upper/rlc.cc b/lib/src/upper/rlc.cc index 43ecc99d5..f51c1d5c3 100644 --- a/lib/src/upper/rlc.cc +++ b/lib/src/upper/rlc.cc @@ -471,8 +471,7 @@ void rlc::add_bearer(uint32_t lcid, const rlc_config_t& cnfg) goto delete_and_exit; } - logger.info( - "Added %s radio bearer with LCID %d in %s", to_string(cnfg.rat), lcid, to_string(cnfg.rlc_mode).c_str()); + logger.info("Added %s radio bearer with LCID %d in %s", to_string(cnfg.rat), lcid, to_string(cnfg.rlc_mode)); rlc_entity = NULL; } @@ -484,8 +483,7 @@ void rlc::add_bearer(uint32_t lcid, const rlc_config_t& cnfg) } } - logger.info( - "Configured %s radio bearer with LCID %d in %s", to_string(cnfg.rat), lcid, to_string(cnfg.rlc_mode).c_str()); + logger.info("Configured %s radio bearer with LCID %d in %s", to_string(cnfg.rat), lcid, to_string(cnfg.rlc_mode)); delete_and_exit: if (rlc_entity) { diff --git a/lib/src/upper/rlc_tm.cc b/lib/src/upper/rlc_tm.cc index 9887b0d14..f9773576f 100644 --- a/lib/src/upper/rlc_tm.cc +++ b/lib/src/upper/rlc_tm.cc @@ -161,7 +161,7 @@ int rlc_tm::read_pdu(uint8_t* payload, uint32_t nof_bytes) pdu_size, "%s Tx %s PDU, queue size=%d, bytes=%d", rrc->get_rb_name(lcid), - srsran::to_string(rlc_mode_t::tm).c_str(), + srsran::to_string(rlc_mode_t::tm), ul_queue.size(), ul_queue.size_bytes()); diff --git a/lib/src/upper/rlc_um_lte.cc b/lib/src/upper/rlc_um_lte.cc index 8899a3081..bb5fb285a 100644 --- a/lib/src/upper/rlc_um_lte.cc +++ b/lib/src/upper/rlc_um_lte.cc @@ -61,7 +61,7 @@ bool rlc_um_lte::configure(const rlc_config_t& cnfg_) logger.info("%s configured in %s: t_reordering=%d ms, rx_sn_field_length=%u bits, tx_sn_field_length=%u bits", rb_name.c_str(), - srsran::to_string(cnfg_.rlc_mode).c_str(), + srsran::to_string(cnfg_.rlc_mode), cfg.um.t_reordering, srsran::to_number(cfg.um.rx_sn_field_length), srsran::to_number(cfg.um.tx_sn_field_length)); diff --git a/lib/src/upper/rlc_um_nr.cc b/lib/src/upper/rlc_um_nr.cc index 77e9f36a2..56bd8bafb 100644 --- a/lib/src/upper/rlc_um_nr.cc +++ b/lib/src/upper/rlc_um_nr.cc @@ -60,7 +60,7 @@ bool rlc_um_nr::configure(const rlc_config_t& cnfg_) logger.info("%s configured in %s: sn_field_length=%u bits", rb_name.c_str(), - srsran::to_string(cnfg_.rlc_mode).c_str(), + srsran::to_string(cnfg_.rlc_mode), srsran::to_number(cfg.um_nr.sn_field_length)); rx_enabled = true; diff --git a/lib/test/asn1/CMakeLists.txt b/lib/test/asn1/CMakeLists.txt index dd7eee308..86247309a 100644 --- a/lib/test/asn1/CMakeLists.txt +++ b/lib/test/asn1/CMakeLists.txt @@ -54,9 +54,9 @@ add_executable(rrc_asn1_test rrc_test.cc) target_link_libraries(rrc_asn1_test rrc_asn1 asn1_utils srsran_common) add_test(rrc_asn1_test rrc_asn1_test) -add_executable(srsran_asn1_rrc_nr_test srsran_asn1_rrc_nr_test.cc) -target_link_libraries(srsran_asn1_rrc_nr_test rrc_nr_asn1 asn1_utils srsran_common) -add_test(srsran_asn1_rrc_nr_test srsran_asn1_rrc_nr_test) +add_executable(rrc_nr_asn1_test rrc_nr_test.cc) +target_link_libraries(rrc_nr_asn1_test rrc_nr_asn1 asn1_utils srsran_common) +add_test(rrc_nr_asn1_test rrc_nr_asn1_test) add_executable(ngap_asn1_test ngap_test.cc) target_link_libraries(ngap_asn1_test ngap_nr_asn1 srsran_common) diff --git a/lib/test/asn1/srsran_asn1_rrc_nr_test.cc b/lib/test/asn1/rrc_nr_test.cc similarity index 99% rename from lib/test/asn1/srsran_asn1_rrc_nr_test.cc rename to lib/test/asn1/rrc_nr_test.cc index 69df54744..21fbe26d9 100644 --- a/lib/test/asn1/srsran_asn1_rrc_nr_test.cc +++ b/lib/test/asn1/rrc_nr_test.cc @@ -325,6 +325,7 @@ int main() TESTASSERT(test_cell_group_config() == SRSRAN_SUCCESS); srslog::flush(); + printf("Success\n"); return 0; } diff --git a/lib/test/common/CMakeLists.txt b/lib/test/common/CMakeLists.txt index 690998f61..fcae468cc 100644 --- a/lib/test/common/CMakeLists.txt +++ b/lib/test/common/CMakeLists.txt @@ -58,6 +58,7 @@ add_executable(bcd_helpers_test bcd_helpers_test.cc) target_link_libraries(bcd_helpers_test srsran_common) add_executable(stack_procedure_test stack_procedure_test.cc) +target_link_libraries(stack_procedure_test srsran_common) add_test(stack_procedure_test stack_procedure_test) add_executable(queue_test multiqueue_test.cc) diff --git a/lib/test/common/byte_buffer_queue_test.cc b/lib/test/common/byte_buffer_queue_test.cc index ea87fea7e..7c80c5e41 100644 --- a/lib/test/common/byte_buffer_queue_test.cc +++ b/lib/test/common/byte_buffer_queue_test.cc @@ -31,53 +31,56 @@ typedef struct { byte_buffer_queue* q; } args_t; -void* write_thread(void* a) +void write_thread(byte_buffer_queue* q) { - args_t* args = (args_t*)a; + unique_byte_buffer_t b; for (uint32_t i = 0; i < NMSGS; i++) { - unique_byte_buffer_t b = srsran::make_byte_buffer(); - if (b == nullptr) { - return nullptr; - } + do { + b = srsran::make_byte_buffer(); + if (b == nullptr) { + // wait until pool is not depleted + std::this_thread::yield(); + } + } while (b == nullptr); memcpy(b->msg, &i, 4); b->N_bytes = 4; - args->q->write(std::move(b)); + q->write(std::move(b)); } - return NULL; } -int main(int argc, char** argv) +int test_concurrent_writeread() { - bool result; byte_buffer_queue q; unique_byte_buffer_t b; - pthread_t thread; - args_t args; - u_int32_t r; + int result = 0; - result = true; - args.q = &q; - - pthread_create(&thread, NULL, &write_thread, &args); + std::thread t([&q]() { write_thread(&q); }); for (uint32_t i = 0; i < NMSGS; i++) { - b = q.read(); + b = q.read(); + uint32_t r = 0; memcpy(&r, b->msg, 4); - if (r != i) - result = false; + if (r != i) { + result = -1; + break; + } } - pthread_join(thread, NULL); + t.join(); if (q.size() != 0 || q.size_bytes() != 0) { - result = false; + result = -1; } - if (result) { + if (result == 0) { printf("Passed\n"); - exit(0); } else { printf("Failed\n;"); - exit(1); } + return result; +} + +int main() +{ + return test_concurrent_writeread(); } diff --git a/lib/test/common/timer_test.cc b/lib/test/common/timer_test.cc index 36644fd9a..833bc7794 100644 --- a/lib/test/common/timer_test.cc +++ b/lib/test/common/timer_test.cc @@ -34,6 +34,7 @@ int timers_test1() uint32_t dur = 5; { + // TEST: default ctor places unique_timer in correct state timer_handler::unique_timer t = timers.get_unique_timer(); TESTASSERT(not t.is_running() and not t.is_expired()); TESTASSERT(t.id() == 0); @@ -112,7 +113,6 @@ int timers_test1() timers.step_all(); TESTASSERT(t.is_expired() and t2.is_expired() and t3.is_expired()); TESTASSERT(first_id == 1); - printf("Last timer id=%d\n", last_id); TESTASSERT(last_id == 2); } // TEST: timer dtor is called and removes "timer" from "timers" @@ -121,13 +121,13 @@ int timers_test1() return SRSRAN_SUCCESS; } +/** + * Description: + * - calling stop() early, forbids the timer from getting expired + * - calling stop() after timer has expired should be a noop + */ int timers_test2() { - /** - * Description: - * - calling stop() early, forbids the timer from getting expired - * - calling stop() after timer has expired should be a noop - */ timer_handler timers; uint32_t duration = 2; @@ -156,12 +156,12 @@ int timers_test2() return SRSRAN_SUCCESS; } +/** + * Description: + * - setting a new duration while the timer is already running should not stop timer, and should extend timeout + */ int timers_test3() { - /** - * Description: - * - setting a new duration while the timer is already running should not stop timer, and should extend timeout - */ timer_handler timers; uint32_t duration = 5; @@ -182,7 +182,7 @@ int timers_test3() TESTASSERT(utimer.is_running()); } timers.step_all(); - TESTASSERT(not utimer.is_running()); + TESTASSERT(not utimer.is_running() and utimer.is_expired()); return SRSRAN_SUCCESS; } @@ -400,6 +400,56 @@ int timers_test6() return SRSRAN_SUCCESS; } +/** + * Tests specific to timer_handler wheel-based implementation: + * - check if timer update is safe when its new updated wheel position matches the previous wheel position + * - multime timers can exist in the same wheel position + */ +int timers_test7() +{ + timer_handler timers; + size_t wheel_size = timer_handler::get_wheel_size(); + + unique_timer t = timers.get_unique_timer(); + t.set(2); + t.run(); + + timers.step_all(); + TESTASSERT(not t.is_expired() and t.is_running()); + + // should fall in same wheel position as previous timer run + t.set(1 + wheel_size); + for (size_t i = 0; i < wheel_size; ++i) { + timers.step_all(); + TESTASSERT(not t.is_expired() and t.is_running()); + } + timers.step_all(); + TESTASSERT(t.is_expired() and not t.is_running()); + + // the three timers will all fall in the same wheel position. However, only t and t3 should trigger + unique_timer t2 = timers.get_unique_timer(); + unique_timer t3 = timers.get_unique_timer(); + t.set(5); + t2.set(5 + wheel_size); + t3.set(5); + t.run(); + t2.run(); + t3.run(); + TESTASSERT(timers.nof_running_timers() == 3 and timers.nof_timers() == 3); + for (size_t i = 0; i < 5; ++i) { + TESTASSERT(not t.is_expired() and t.is_running()); + TESTASSERT(not t2.is_expired() and t2.is_running()); + TESTASSERT(not t3.is_expired() and t3.is_running()); + timers.step_all(); + } + TESTASSERT(t.is_expired() and not t.is_running()); + TESTASSERT(not t2.is_expired() and t2.is_running()); + TESTASSERT(t3.is_expired() and not t3.is_running()); + TESTASSERT(timers.nof_running_timers() == 1 and timers.nof_timers() == 3); + + return SRSRAN_SUCCESS; +} + int main() { TESTASSERT(timers_test1() == SRSRAN_SUCCESS); @@ -408,6 +458,7 @@ int main() TESTASSERT(timers_test4() == SRSRAN_SUCCESS); TESTASSERT(timers_test5() == SRSRAN_SUCCESS); TESTASSERT(timers_test6() == SRSRAN_SUCCESS); + TESTASSERT(timers_test7() == SRSRAN_SUCCESS); printf("Success\n"); return 0; } diff --git a/lib/test/srslog/any_test.cpp b/lib/test/srslog/any_test.cpp index daf6ddaf7..ad4a1ac59 100644 --- a/lib/test/srslog/any_test.cpp +++ b/lib/test/srslog/any_test.cpp @@ -58,7 +58,7 @@ struct movable_object { static bool when_constructed_with_lvalue_then_any_has_value() { copyable_object value(5); - detail::any a(value); + detail::any a(value); ASSERT_EQ(a.has_value(), true); @@ -74,7 +74,7 @@ static bool when_constructed_with_lvalue_then_any_has_value() static bool when_constructed_with_rvalue_then_any_has_value() { movable_object value(5); - detail::any a(std::move(value)); + detail::any a(std::move(value)); ASSERT_EQ(a.has_value(), true); @@ -89,8 +89,8 @@ static bool when_constructed_with_rvalue_then_any_has_value() static bool when_constructed_with_make_any_then_any_has_int() { - int value = 5; - auto a = detail::make_any(value); + int value = 5; + auto a = detail::make_any(value); ASSERT_EQ(a.has_value(), true); @@ -105,7 +105,7 @@ static bool when_constructed_with_make_any_then_any_has_int() static bool when_move_constructing_from_any_then_contents_are_transferred() { - int value = 5; + int value = 5; detail::any a(value); detail::any b(std::move(a)); @@ -123,7 +123,7 @@ static bool when_move_constructing_from_any_then_contents_are_transferred() static bool when_move_assigning_from_any_then_contents_are_transferred() { - int value = 5; + int value = 5; detail::any a(value); detail::any b(3.0); @@ -152,9 +152,9 @@ static bool when_any_is_reset_then_value_is_lost() static bool when_swapping_any_then_values_are_exchanged() { - int i = 5; + int i = 5; detail::any a(i); - double d = 3.14; + double d = 3.14; detail::any b(d); swap(a, b); @@ -167,7 +167,7 @@ static bool when_swapping_any_then_values_are_exchanged() static bool when_null_is_passed_to_any_cast_then_null_is_returned() { - detail::any* p = nullptr; + detail::any* p = nullptr; const detail::any* cp = nullptr; ASSERT_EQ(detail::any_cast(p), nullptr); ASSERT_EQ(detail::any_cast(cp), nullptr); @@ -177,7 +177,7 @@ static bool when_null_is_passed_to_any_cast_then_null_is_returned() static bool when_empty_any_is_passed_to_any_cast_then_null_is_returned() { - detail::any a; + detail::any a; const detail::any b; ASSERT_EQ(detail::any_cast(&a), nullptr); ASSERT_EQ(detail::any_cast(&b), nullptr); diff --git a/lib/test/srslog/context_test.cpp b/lib/test/srslog/context_test.cpp index 8debcf3cd..5d31fecc8 100644 --- a/lib/test/srslog/context_test.cpp +++ b/lib/test/srslog/context_test.cpp @@ -86,7 +86,7 @@ static bool when_context_is_built_then_metric_units_are_valid() static bool when_metric_is_set_through_context_then_value_is_stored() { - ctx_t ctx = build_context(); + ctx_t ctx = build_context(); float value = 10; ctx.get().write(value); @@ -106,7 +106,7 @@ using ctx2_t = srslog::build_context_type; static bool when_context_with_list_is_set_value_is_retrieved_correctly() { ctx2_t ctx("test"); - float val = 2; + float val = 2; ctx.get().emplace_back(); ctx.at(0).write(val); diff --git a/lib/test/srslog/file_sink_test.cpp b/lib/test/srslog/file_sink_test.cpp index 4189e6774..88a582af0 100644 --- a/lib/test/srslog/file_sink_test.cpp +++ b/lib/test/srslog/file_sink_test.cpp @@ -31,10 +31,7 @@ static constexpr char log_filename[] = "file_sink_test.log"; static bool when_data_is_written_to_file_then_contents_are_valid() { file_test_utils::scoped_file_deleter deleter(log_filename); - file_sink file( - log_filename, - 0, - std::unique_ptr(new test_dummies::log_formatter_dummy)); + file_sink file(log_filename, 0, std::unique_ptr(new test_dummies::log_formatter_dummy)); std::vector entries; for (unsigned i = 0; i != 10; ++i) { @@ -46,8 +43,7 @@ static bool when_data_is_written_to_file_then_contents_are_valid() file.flush(); ASSERT_EQ(file_test_utils::file_exists(log_filename), true); - ASSERT_EQ(file_test_utils::compare_file_contents(log_filename, entries), - true); + ASSERT_EQ(file_test_utils::compare_file_contents(log_filename, entries), true); return true; } @@ -58,10 +54,7 @@ class file_sink_subclass : public file_sink { public: file_sink_subclass(std::string name, size_t max_size) : - file_sink( - std::move(name), - max_size, - std::unique_ptr(new test_dummies::log_formatter_dummy)) + file_sink(std::move(name), max_size, std::unique_ptr(new test_dummies::log_formatter_dummy)) {} uint32_t get_num_of_files() const { return get_file_index(); } @@ -69,14 +62,10 @@ public: static bool when_data_written_exceeds_size_threshold_then_new_file_is_created() { - std::string filename0 = - file_utils::build_filename_with_index(log_filename, 0); - std::string filename1 = - file_utils::build_filename_with_index(log_filename, 1); - std::string filename2 = - file_utils::build_filename_with_index(log_filename, 2); - file_test_utils::scoped_file_deleter deleter = { - filename0, filename1, filename2}; + std::string filename0 = file_utils::build_filename_with_index(log_filename, 0); + std::string filename1 = file_utils::build_filename_with_index(log_filename, 1); + std::string filename2 = file_utils::build_filename_with_index(log_filename, 2); + file_test_utils::scoped_file_deleter deleter = {filename0, filename1, filename2}; file_sink_subclass file(log_filename, 5001); @@ -121,8 +110,7 @@ static bool when_data_written_exceeds_size_threshold_then_new_file_is_created() int main() { TEST_FUNCTION(when_data_is_written_to_file_then_contents_are_valid); - TEST_FUNCTION( - when_data_written_exceeds_size_threshold_then_new_file_is_created); + TEST_FUNCTION(when_data_written_exceeds_size_threshold_then_new_file_is_created); return 0; } diff --git a/lib/test/srslog/file_test_utils.h b/lib/test/srslog/file_test_utils.h index a276d7a0b..57405a56b 100644 --- a/lib/test/srslog/file_test_utils.h +++ b/lib/test/srslog/file_test_utils.h @@ -56,8 +56,7 @@ inline bool file_exists(const std::string& path) /// Reads the contents of the file specified in path and returns true if they /// match with the data in entries, otherwise returns false. -inline bool compare_file_contents(const std::string& path, - const std::vector& entries) +inline bool compare_file_contents(const std::string& path, const std::vector& entries) { std::ifstream file(path, std::ios::binary); if (!file.is_open()) { diff --git a/lib/test/srslog/file_utils_test.cpp b/lib/test/srslog/file_utils_test.cpp index 322b3d83e..a444e6d3a 100644 --- a/lib/test/srslog/file_utils_test.cpp +++ b/lib/test/srslog/file_utils_test.cpp @@ -25,14 +25,12 @@ using namespace srslog; -static constexpr char log_filename[] = "file_utils_test.log"; +static constexpr char log_filename[] = "file_utils_test.log"; static constexpr char log_filename2[] = "file_utils_test2.log"; static bool filename_extension_split_test() { - auto checker = [](const std::string& base, - const std::string& file, - const std::string& ext) { + auto checker = [](const std::string& base, const std::string& file, const std::string& ext) { auto result = file_utils::split_filename_extension(base); return (result.first == file && result.second == ext); }; @@ -57,10 +55,8 @@ static bool filename_with_index_build_test() ASSERT_EQ(file_utils::build_filename_with_index("filename", 0), "filename"); ASSERT_EQ(file_utils::build_filename_with_index("filename", 1), "filename.1"); - ASSERT_EQ(file_utils::build_filename_with_index("filename.txt", 0), - "filename.txt"); - ASSERT_EQ(file_utils::build_filename_with_index("filename.txt", 1), - "filename.1.txt"); + ASSERT_EQ(file_utils::build_filename_with_index("filename.txt", 0), "filename.txt"); + ASSERT_EQ(file_utils::build_filename_with_index("filename.txt", 1), "filename.1.txt"); return true; } @@ -78,7 +74,7 @@ static bool when_default_constructing_file_then_no_file_is_created() static bool when_created_method_is_called_then_file_is_created() { file_test_utils::scoped_file_deleter deleter(log_filename); - file_utils::file f; + file_utils::file f; auto err_str = f.create(log_filename); ASSERT_EQ(err_str.get_error().empty(), true); @@ -91,11 +87,10 @@ static bool when_created_method_is_called_then_file_is_created() return true; } -static bool -when_created_method_is_called_twice_then_file_is_closed_and_created() +static bool when_created_method_is_called_twice_then_file_is_closed_and_created() { file_test_utils::scoped_file_deleter deleter = {log_filename, log_filename2}; - file_utils::file f; + file_utils::file f; auto err_str = f.create(log_filename); ASSERT_EQ(err_str.get_error().empty(), true); @@ -134,7 +129,7 @@ static bool when_flush_method_is_called_with_no_file_then_nothing_happens() static bool when_data_is_written_to_file_then_contents_are_valid() { file_test_utils::scoped_file_deleter deleter(log_filename); - file_utils::file f; + file_utils::file f; auto err_str = f.create(log_filename); ASSERT_EQ(err_str.get_error().empty(), true); @@ -146,8 +141,7 @@ static bool when_data_is_written_to_file_then_contents_are_valid() err_str = f.flush(); ASSERT_EQ(err_str.get_error().empty(), true); - ASSERT_EQ(file_test_utils::compare_file_contents(log_filename, {"test\n"}), - true); + ASSERT_EQ(file_test_utils::compare_file_contents(log_filename, {"test\n"}), true); return true; } @@ -155,7 +149,7 @@ static bool when_data_is_written_to_file_then_contents_are_valid() static bool when_file_is_opened_and_closed_then_members_are_reset() { file_test_utils::scoped_file_deleter deleter(log_filename); - file_utils::file f; + file_utils::file f; auto err_str = f.create(log_filename); ASSERT_EQ(err_str.get_error().empty(), true); @@ -175,8 +169,7 @@ int main() TEST_FUNCTION(filename_with_index_build_test); TEST_FUNCTION(when_default_constructing_file_then_no_file_is_created); TEST_FUNCTION(when_created_method_is_called_then_file_is_created); - TEST_FUNCTION( - when_created_method_is_called_twice_then_file_is_closed_and_created); + TEST_FUNCTION(when_created_method_is_called_twice_then_file_is_closed_and_created); TEST_FUNCTION(when_write_method_is_called_with_no_file_then_nothing_happens); TEST_FUNCTION(when_flush_method_is_called_with_no_file_then_nothing_happens); TEST_FUNCTION(when_data_is_written_to_file_then_contents_are_valid); diff --git a/lib/test/srslog/logger_test.cpp b/lib/test/srslog/logger_test.cpp index a7833af8d..ffd62e400 100644 --- a/lib/test/srslog/logger_test.cpp +++ b/lib/test/srslog/logger_test.cpp @@ -43,10 +43,10 @@ using test_logger = build_logger_type; static bool when_logger_is_created_then_id_matches_expected_value() { test_dummies::backend_dummy backend; - test_dummies::sink_dummy s; - log_channel error("err", s, backend); - log_channel warning("warning", s, backend); - log_channel info("info", s, backend); + test_dummies::sink_dummy s; + log_channel error("err", s, backend); + log_channel warning("warning", s, backend); + log_channel info("info", s, backend); test_logger logger(logger_id, error, warning, info); @@ -58,10 +58,10 @@ static bool when_logger_is_created_then_id_matches_expected_value() static bool when_level_is_set_to_error_then_info_and_warning_is_disabled() { test_dummies::backend_dummy backend; - test_dummies::sink_dummy s; - log_channel error("err", s, backend); - log_channel warning("warning", s, backend); - log_channel info("info", s, backend); + test_dummies::sink_dummy s; + log_channel error("err", s, backend); + log_channel warning("warning", s, backend); + log_channel info("info", s, backend); test_logger logger(logger_id, error, warning, info); logger.set_level(test_logger_levels::error); @@ -76,10 +76,10 @@ static bool when_level_is_set_to_error_then_info_and_warning_is_disabled() static bool when_level_is_set_to_warning_then_info_is_disabled() { test_dummies::backend_dummy backend; - test_dummies::sink_dummy s; - log_channel error("err", s, backend); - log_channel warning("warning", s, backend); - log_channel info("info", s, backend); + test_dummies::sink_dummy s; + log_channel error("err", s, backend); + log_channel warning("warning", s, backend); + log_channel info("info", s, backend); test_logger logger(logger_id, error, warning, info); logger.set_level(test_logger_levels::warning); @@ -94,10 +94,10 @@ static bool when_level_is_set_to_warning_then_info_is_disabled() static bool when_level_is_set_to_info_then_all_are_enabled() { test_dummies::backend_dummy backend; - test_dummies::sink_dummy s; - log_channel error("err", s, backend); - log_channel warning("warning", s, backend); - log_channel info("info", s, backend); + test_dummies::sink_dummy s; + log_channel error("err", s, backend); + log_channel warning("warning", s, backend); + log_channel info("info", s, backend); test_logger logger(logger_id, error, warning, info); logger.set_level(test_logger_levels::info); @@ -112,10 +112,10 @@ static bool when_level_is_set_to_info_then_all_are_enabled() static bool when_level_is_set_to_none_then_all_are_disabled() { test_dummies::backend_dummy backend; - test_dummies::sink_dummy s; - log_channel error("err", s, backend); - log_channel warning("warning", s, backend); - log_channel info("info", s, backend); + test_dummies::sink_dummy s; + log_channel error("err", s, backend); + log_channel warning("warning", s, backend); + log_channel info("info", s, backend); test_logger logger(logger_id, error, warning, info); logger.set_level(test_logger_levels::none); diff --git a/lib/test/srslog/srslog_test.cpp b/lib/test/srslog/srslog_test.cpp index 4372b3df5..484d5b51b 100644 --- a/lib/test/srslog/srslog_test.cpp +++ b/lib/test/srslog/srslog_test.cpp @@ -28,11 +28,9 @@ using namespace srslog; static constexpr char test_id1[] = "Test1"; static constexpr char test_id2[] = "Test2"; -//:TODO: older compilers may not have defined this C++11 trait. -#if (defined(__clang__) && (__clang_major__ >= 5)) || \ - (defined(__GNUG__) && (__GNUC__ >= 5)) -static_assert(std::is_trivially_copyable::value, - "Expected to be trivially copyable"); +//: TODO: older compilers may not have defined this C++11 trait. +#if (defined(__clang__) && (__clang_major__ >= 5)) || (defined(__GNUG__) && (__GNUC__ >= 5)) +static_assert(std::is_trivially_copyable::value, "Expected to be trivially copyable"); #endif static bool when_srslog_is_created_then_stdout_and_stderr_sinks_exist() @@ -91,8 +89,7 @@ static bool when_non_existent_id_is_passed_then_nothing_is_found() return true; } -static bool -when_id_with_sharps_is_passed_then_channel_is_fetched_with_clean_id() +static bool when_id_with_sharps_is_passed_then_channel_is_fetched_with_clean_id() { log_channel& channel1 = fetch_log_channel("a1#a"); log_channel& channel2 = fetch_log_channel("a2#a", fetch_stdout_sink(), {}); @@ -114,19 +111,18 @@ static bool when_channel_already_exists_then_fetch_returns_channel() return true; } -static constexpr char logger_id[] = "TestLogger"; +static constexpr char logger_id[] = "TestLogger"; static constexpr char basic_logger_id1[] = "BasicTestLogger"; static constexpr char basic_logger_id2[] = "BasicTestLogger2"; static bool when_fetching_logger_then_logger_instance_is_returned() { - log_channel& error = fetch_log_channel("logger.error"); + log_channel& error = fetch_log_channel("logger.error"); log_channel& warning = fetch_log_channel("logger.warning"); - log_channel& info = fetch_log_channel("logger.info"); - log_channel& debug = fetch_log_channel("logger.debug"); + log_channel& info = fetch_log_channel("logger.info"); + log_channel& debug = fetch_log_channel("logger.debug"); - auto& logger = - fetch_logger(logger_id, error, warning, info, debug); + auto& logger = fetch_logger(logger_id, error, warning, info, debug); ASSERT_EQ(logger.id(), logger_id); @@ -136,8 +132,7 @@ static bool when_fetching_logger_then_logger_instance_is_returned() static bool when_fetching_basic_logger_then_basic_logger_instance_is_returned() { basic_logger& logger1 = fetch_basic_logger(basic_logger_id1); - basic_logger& logger2 = - fetch_basic_logger(basic_logger_id2, fetch_stdout_sink()); + basic_logger& logger2 = fetch_basic_logger(basic_logger_id2, fetch_stdout_sink()); ASSERT_EQ(logger1.id(), basic_logger_id1); ASSERT_EQ(logger2.id(), basic_logger_id2); @@ -214,8 +209,7 @@ static bool when_invalid_id_is_passed_then_no_sink_is_found() return true; } -static bool -when_setting_stderr_as_default_then_get_default_returns_stderr_sink() +static bool when_setting_stderr_as_default_then_get_default_returns_stderr_sink() { set_default_sink(fetch_stderr_sink()); sink& default_sink = get_default_sink(); @@ -225,8 +219,7 @@ when_setting_stderr_as_default_then_get_default_returns_stderr_sink() return true; } -static bool -when_creating_non_default_stdout_and_stderr_sinks_then_they_are_created() +static bool when_creating_non_default_stdout_and_stderr_sinks_then_they_are_created() { auto& out1 = fetch_stdout_sink("stdout1"); auto& err1 = fetch_stderr_sink("stderr1"); @@ -242,7 +235,7 @@ static constexpr char custom_sink_name[] = "custom_sink"; static bool when_setting_custom_sink_first_time_then_insertion_succeeds() { std::unique_ptr custom(new test_dummies::sink_dummy); - sink* s = custom.get(); + sink* s = custom.get(); bool ret = install_custom_sink(custom_sink_name, std::move(custom)); ASSERT_EQ(ret, true); @@ -257,7 +250,7 @@ static bool when_setting_custom_sink_first_time_then_insertion_succeeds() static bool when_setting_custom_sink_twice_then_insertion_fails() { std::unique_ptr custom(new test_dummies::sink_dummy); - sink* s = custom.get(); + sink* s = custom.get(); bool ret = install_custom_sink(custom_sink_name, std::move(custom)); ASSERT_EQ(ret, false); @@ -269,11 +262,9 @@ static bool when_setting_custom_sink_twice_then_insertion_fails() return true; } -static bool -when_default_formatter_is_installed_then_getter_returns_same_formatter() +static bool when_default_formatter_is_installed_then_getter_returns_same_formatter() { - auto f = - std::unique_ptr(new test_dummies::log_formatter_dummy); + auto f = std::unique_ptr(new test_dummies::log_formatter_dummy); set_default_log_formatter(std::move(f)); // Dummy formatter does not implement the clone method, thus the unique @@ -287,35 +278,27 @@ when_default_formatter_is_installed_then_getter_returns_same_formatter() int main() { TEST_FUNCTION(when_srslog_is_created_then_stdout_and_stderr_sinks_exist); - TEST_FUNCTION( - when_no_installed_default_formatter_then_a_formatter_is_returned); + TEST_FUNCTION(when_no_installed_default_formatter_then_a_formatter_is_returned); TEST_FUNCTION(when_no_installed_default_sink_then_stdout_sink_is_used); TEST_FUNCTION(when_fetching_channel_then_channel_instance_is_returned); TEST_FUNCTION(when_valid_id_is_passed_then_channel_is_found); TEST_FUNCTION(when_non_existent_id_is_passed_then_nothing_is_found); - TEST_FUNCTION( - when_id_with_sharps_is_passed_then_channel_is_fetched_with_clean_id); + TEST_FUNCTION(when_id_with_sharps_is_passed_then_channel_is_fetched_with_clean_id); TEST_FUNCTION(when_channel_already_exists_then_fetch_returns_channel); TEST_FUNCTION(when_fetching_logger_then_logger_instance_is_returned); - TEST_FUNCTION( - when_fetching_basic_logger_then_basic_logger_instance_is_returned); + TEST_FUNCTION(when_fetching_basic_logger_then_basic_logger_instance_is_returned); TEST_FUNCTION(when_valid_id_and_type_is_passed_then_logger_is_found); TEST_FUNCTION(when_basic_logger_already_exists_then_fetch_returns_logger); - TEST_FUNCTION( - when_invalid_id_with_valid_type_is_passed_then_no_logger_is_found); + TEST_FUNCTION(when_invalid_id_with_valid_type_is_passed_then_no_logger_is_found); TEST_FUNCTION(when_invalid_id_and_type_is_passed_then_no_logger_is_found); - TEST_FUNCTION( - when_valid_id_with_invalid_type_is_passed_then_no_logger_is_found); + TEST_FUNCTION(when_valid_id_with_invalid_type_is_passed_then_no_logger_is_found); TEST_FUNCTION(when_file_sink_is_fetched_then_sink_instance_is_returned); TEST_FUNCTION(when_invalid_id_is_passed_then_no_sink_is_found); - TEST_FUNCTION( - when_setting_stderr_as_default_then_get_default_returns_stderr_sink); - TEST_FUNCTION( - when_creating_non_default_stdout_and_stderr_sinks_then_they_are_created); + TEST_FUNCTION(when_setting_stderr_as_default_then_get_default_returns_stderr_sink); + TEST_FUNCTION(when_creating_non_default_stdout_and_stderr_sinks_then_they_are_created); TEST_FUNCTION(when_setting_custom_sink_first_time_then_insertion_succeeds); TEST_FUNCTION(when_setting_custom_sink_twice_then_insertion_fails); - TEST_FUNCTION( - when_default_formatter_is_installed_then_getter_returns_same_formatter); + TEST_FUNCTION(when_default_formatter_is_installed_then_getter_returns_same_formatter); return 0; } diff --git a/lib/test/srslog/testing_helpers.h b/lib/test/srslog/testing_helpers.h index a3fdf8bf7..32deb6801 100644 --- a/lib/test/srslog/testing_helpers.h +++ b/lib/test/srslog/testing_helpers.h @@ -25,48 +25,48 @@ #include /// Invokes the given test function and printing test results to stdout. -#define TEST_FUNCTION(func, ...) \ - do { \ - if (!func(__VA_ARGS__)) { \ - std::printf("Test \"%s\" FAILED! - %s:%u\n", #func, __FILE__, __LINE__); \ - return -1; \ - } else { \ - std::printf("Test \"%s\" PASSED!\n", #func); \ - } \ +#define TEST_FUNCTION(func, ...) \ + do { \ + if (!func(__VA_ARGS__)) { \ + std::printf("Test \"%s\" FAILED! - %s:%u\n", #func, __FILE__, __LINE__); \ + return -1; \ + } else { \ + std::printf("Test \"%s\" PASSED!\n", #func); \ + } \ } while (0) /// Asserts for equality between a and b. The == operator must exist for the /// input types. -#define ASSERT_EQ(a, b) \ - do { \ - if ((a) == (b)) { \ - ; \ - } else { \ - std::printf("EQ assertion failed in Test \"%s\" - %s:%u\n Condition " \ - "\"%s\" not met\n", \ - __FUNCTION__, \ - __FILE__, \ - __LINE__, \ - #a " == " #b); \ - return false; \ - } \ +#define ASSERT_EQ(a, b) \ + do { \ + if ((a) == (b)) { \ + ; \ + } else { \ + std::printf("EQ assertion failed in Test \"%s\" - %s:%u\n Condition " \ + "\"%s\" not met\n", \ + __FUNCTION__, \ + __FILE__, \ + __LINE__, \ + #a " == " #b); \ + return false; \ + } \ } while (0) /// Asserts for non equality between a and b. The != operator must exist for the /// input types. -#define ASSERT_NE(a, b) \ - do { \ - if ((a) != (b)) { \ - ; \ - } else { \ - std::printf("NE assertion failed in Test \"%s\" - %s:%u\n Condition " \ - "\"%s\" not met\n", \ - __FUNCTION__, \ - __FILE__, \ - __LINE__, \ - #a " != " #b); \ - return false; \ - } \ +#define ASSERT_NE(a, b) \ + do { \ + if ((a) != (b)) { \ + ; \ + } else { \ + std::printf("NE assertion failed in Test \"%s\" - %s:%u\n Condition " \ + "\"%s\" not met\n", \ + __FUNCTION__, \ + __FILE__, \ + __LINE__, \ + #a " != " #b); \ + return false; \ + } \ } while (0) #endif // TESTING_HELPERS_H diff --git a/srsenb/hdr/parser.h b/srsenb/hdr/parser.h index 9eebd33e8..82c4c07f9 100644 --- a/srsenb/hdr/parser.h +++ b/srsenb/hdr/parser.h @@ -74,7 +74,6 @@ public: { std::string val; if (root.exists(name)) { - if (enabled_value) { *enabled_value = true; } @@ -142,7 +141,6 @@ public: { S val; if (root.exists(name)) { - if (enabled_value) { *enabled_value = true; } @@ -423,9 +421,9 @@ int str_to_enum(EnumType& enum_val, Setting& root) bool found = nowhitespace_string_to_enum(enum_val, val); if (not found) { fprintf(stderr, "PARSER ERROR: Invalid option: \"%s\" for asn1 enum type\n", val.c_str()); - fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_string().c_str()); + fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_string()); for (uint32_t i = 1; i < EnumType::nof_types; i++) { - fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_string().c_str()); + fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_string()); } fprintf(stderr, "\n"); } diff --git a/srsenb/hdr/stack/mac/schedulers/sched_time_pf.h b/srsenb/hdr/stack/mac/schedulers/sched_time_pf.h index 57c0cc197..a94bd3086 100644 --- a/srsenb/hdr/stack/mac/schedulers/sched_time_pf.h +++ b/srsenb/hdr/stack/mac/schedulers/sched_time_pf.h @@ -23,6 +23,8 @@ #define SRSRAN_SCHED_TIME_PF_H #include "sched_base.h" +#include "srsenb/hdr/common/common_enb.h" +#include "srsran/adt/circular_map.h" #include namespace srsenb { @@ -70,15 +72,21 @@ private: uint32_t dl_nof_samples = 0; uint32_t ul_nof_samples = 0; }; - std::map ue_history_db; + + srsran::static_circular_map ue_history_db; + struct ue_dl_prio_compare { bool operator()(const ue_ctxt* lhs, const ue_ctxt* rhs) const; }; struct ue_ul_prio_compare { bool operator()(const ue_ctxt* lhs, const ue_ctxt* rhs) const; }; - std::priority_queue, ue_dl_prio_compare> dl_queue; - std::priority_queue, ue_ul_prio_compare> ul_queue; + + using ue_dl_queue_t = std::priority_queue, ue_dl_prio_compare>; + using ue_ul_queue_t = std::priority_queue, ue_ul_prio_compare>; + + ue_dl_queue_t dl_queue; + ue_ul_queue_t ul_queue; uint32_t try_dl_alloc(ue_ctxt& ue_ctxt, sched_ue& ue, sf_sched* tti_sched); uint32_t try_ul_alloc(ue_ctxt& ue_ctxt, sched_ue& ue, sf_sched* tti_sched); diff --git a/srsenb/src/enb_cfg_parser.h b/srsenb/src/enb_cfg_parser.h index 540d83bf6..963690d7b 100644 --- a/srsenb/src/enb_cfg_parser.h +++ b/srsenb/src/enb_cfg_parser.h @@ -303,9 +303,9 @@ bool parse_enum_by_number_str(EnumType& enum_val, const char* name, Setting& roo bool found = asn1::number_string_to_enum(enum_val, val); if (not found) { fprintf(stderr, "PARSER ERROR: Invalid option: \"%s\" for field \"%s\"\n", val.c_str(), name); - fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_number_string().c_str()); + fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_number_string()); for (uint32_t i = 1; i < EnumType::nof_types; i++) { - fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_number_string().c_str()); + fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_number_string()); } fprintf(stderr, "\n"); return false; @@ -323,9 +323,9 @@ bool parse_enum_by_str(EnumType& enum_val, const char* name, Setting& root) bool found = asn1_parsers::nowhitespace_string_to_enum(enum_val, val); if (not found) { fprintf(stderr, "PARSER ERROR: Invalid option: \"%s\" for field \"%s\"\n", val.c_str(), name); - fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_string().c_str()); + fprintf(stderr, "Valid options: \"%s\"", EnumType((typename EnumType::options)0).to_string()); for (uint32_t i = 1; i < EnumType::nof_types; i++) { - fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_string().c_str()); + fprintf(stderr, ", \"%s\"", EnumType((typename EnumType::options)i).to_string()); } fprintf(stderr, "\n"); return false; diff --git a/srsenb/src/phy/nr/cc_worker.cc b/srsenb/src/phy/nr/cc_worker.cc index 95679ceb3..b9b4e49fe 100644 --- a/srsenb/src/phy/nr/cc_worker.cc +++ b/srsenb/src/phy/nr/cc_worker.cc @@ -69,7 +69,7 @@ bool cc_worker::set_carrier(const srsran_carrier_nr_t* carrier) coreset.freq_resources[0] = true; // Enable the bottom 6 PRB for PDCCH coreset.duration = 2; - srsran_dci_cfg_nr_t dci_cfg = phy_state->cfg.get_dci_cfg(*carrier); + srsran_dci_cfg_nr_t dci_cfg = phy_state->cfg.get_dci_cfg(); if (srsran_enb_dl_nr_set_pdcch_config(&enb_dl, &phy_state->cfg.pdcch, &dci_cfg) < SRSRAN_SUCCESS) { ERROR("Error setting coreset"); return false; diff --git a/srsenb/src/phy/phy.cc b/srsenb/src/phy/phy.cc index f4f668fdd..d1aeece36 100644 --- a/srsenb/src/phy/phy.cc +++ b/srsenb/src/phy/phy.cc @@ -108,6 +108,12 @@ int phy::init(const phy_args_t& args, srsran::radio_interface_phy* radio_, stack_interface_phy_lte* stack_) { + if (cfg.phy_cell_cfg.size() > SRSRAN_MAX_CARRIERS) { + phy_log.error( + "Number of carriers=%zd provided above its maximum=%zd", cfg.phy_cell_cfg.size(), SRSRAN_MAX_CARRIERS); + return SRSRAN_ERROR; + } + mlockall((uint32_t)MCL_CURRENT | (uint32_t)MCL_FUTURE); // Add PHY lib log. diff --git a/srsenb/src/stack/mac/sched_helpers.cc b/srsenb/src/stack/mac/sched_helpers.cc index 4c0a26b26..8ef449454 100644 --- a/srsenb/src/stack/mac/sched_helpers.cc +++ b/srsenb/src/stack/mac/sched_helpers.cc @@ -21,9 +21,9 @@ #include "srsenb/hdr/stack/mac/sched_helpers.h" #include "srsran/common/standard_streams.h" +#include "srsran/common/string_helpers.h" #include "srsran/mac/pdu.h" #include "srsran/srslog/bundled/fmt/format.h" - #include #define Debug(fmt, ...) get_mac_logger().debug(fmt, ##__VA_ARGS__) @@ -134,9 +134,9 @@ void log_dl_cc_results(srslog::basic_logger& logger, uint32_t enb_cc_idx, const } if (strbuf.size() != 0) { if (logger.debug.enabled()) { - logger.debug("SCHED: DL MAC PDU payload cc=%d:\n%s", enb_cc_idx, fmt::to_string(strbuf).c_str()); + logger.debug("SCHED: DL MAC PDU payload cc=%d:\n%s", enb_cc_idx, srsran::to_c_str(strbuf)); } else { - logger.info("SCHED: DL MAC CEs cc=%d: %s", enb_cc_idx, fmt::to_string(strbuf).c_str()); + logger.info("SCHED: DL MAC CEs cc=%d: %s", enb_cc_idx, srsran::to_c_str(strbuf)); } } } @@ -146,7 +146,7 @@ void log_phich_cc_results(srslog::basic_logger& logger, const sched_interface::ul_sched_res_t& result) { using phich_t = sched_interface::ul_sched_phich_t; - if (!logger.info.enabled()) { + if (!logger.debug.enabled()) { return; } custom_mem_buffer strbuf; @@ -157,7 +157,7 @@ void log_phich_cc_results(srslog::basic_logger& logger, fmt::format_to(strbuf, "{}rnti=0x{:0x}, val={}", prefix, phich.rnti, val); } if (strbuf.size() != 0) { - logger.debug("SCHED: Allocated PHICHs, cc=%d: [%s]", enb_cc_idx, fmt::to_string(strbuf).c_str()); + logger.debug("SCHED: Allocated PHICHs, cc=%d: [%s]", enb_cc_idx, srsran::to_c_str(strbuf)); } } diff --git a/srsenb/src/stack/mac/schedulers/sched_time_pf.cc b/srsenb/src/stack/mac/schedulers/sched_time_pf.cc index 660b73f5f..b3563db48 100644 --- a/srsenb/src/stack/mac/schedulers/sched_time_pf.cc +++ b/srsenb/src/stack/mac/schedulers/sched_time_pf.cc @@ -20,6 +20,7 @@ */ #include "srsenb/hdr/stack/mac/schedulers/sched_time_pf.h" +#include namespace srsenb { @@ -31,6 +32,14 @@ sched_time_pf::sched_time_pf(const sched_cell_params_t& cell_params_, const sche if (not sched_args.sched_policy_args.empty()) { fairness_coeff = std::stof(sched_args.sched_policy_args); } + + std::vector dl_storage; + dl_storage.reserve(SRSENB_MAX_UES); + dl_queue = ue_dl_queue_t(ue_dl_prio_compare{}, std::move(dl_storage)); + + std::vector ul_storage; + ul_storage.reserve(SRSENB_MAX_UES); + ul_queue = ue_ul_queue_t(ue_ul_prio_compare{}, std::move(ul_storage)); } void sched_time_pf::new_tti(sched_ue_list& ue_db, sf_sched* tti_sched) @@ -48,7 +57,7 @@ void sched_time_pf::new_tti(sched_ue_list& ue_db, sf_sched* tti_sched) for (auto& u : ue_db) { auto it = ue_history_db.find(u.first); if (it == ue_history_db.end()) { - it = ue_history_db.insert(std::make_pair(u.first, ue_ctxt{u.first, fairness_coeff})).first; + it = ue_history_db.insert(u.first, ue_ctxt{u.first, fairness_coeff}).value(); } it->second.new_tti(*cc_cfg, *u.second, tti_sched); if (it->second.dl_newtx_h != nullptr or it->second.dl_retx_h != nullptr) { diff --git a/srsenb/src/stack/rrc/rrc_nr.cc b/srsenb/src/stack/rrc/rrc_nr.cc index 1070a764e..e5fd93f42 100644 --- a/srsenb/src/stack/rrc/rrc_nr.cc +++ b/srsenb/src/stack/rrc/rrc_nr.cc @@ -19,10 +19,10 @@ * */ -#include "srsran/common/common_nr.h" -#include "srsran/asn1/rrc_nr_utils.h" #include "srsenb/hdr/stack/rrc/rrc_nr.h" #include "srsenb/hdr/common/common_enb.h" +#include "srsran/asn1/rrc_nr_utils.h" +#include "srsran/common/common_nr.h" using namespace asn1::rrc_nr; @@ -74,7 +74,7 @@ int rrc_nr::init(const rrc_nr_cfg_t& cfg_, srsran::PDCP_SN_LEN_18, srsran::pdcp_t_reordering_t::ms500, srsran::pdcp_discard_timer_t::infinity, - false, + false, srsran::srsran_rat_t::nr}; pdcp->add_bearer(cfg.coreless.rnti, cfg.coreless.drb_lcid, pdcp_cnfg); @@ -107,15 +107,12 @@ void rrc_nr::log_rrc_message(const std::string& source, "%s - %s %s (%d B)", source.c_str(), dir == Tx ? "Tx" : "Rx", - msg.msg.c1().type().to_string().c_str(), + msg.msg.c1().type().to_string(), pdu->N_bytes); logger.debug("Content:\n%s", json_writer.to_string().c_str()); } else if (logger.info.enabled()) { - logger.info("%s - %s %s (%d B)", - source.c_str(), - dir == Tx ? "Tx" : "Rx", - msg.msg.c1().type().to_string().c_str(), - pdu->N_bytes); + logger.info( + "%s - %s %s (%d B)", source.c_str(), dir == Tx ? "Tx" : "Rx", msg.msg.c1().type().to_string(), pdu->N_bytes); } } diff --git a/srsenb/src/stack/rrc/rrc_ue.cc b/srsenb/src/stack/rrc/rrc_ue.cc index dd6571c2a..a232deac0 100644 --- a/srsenb/src/stack/rrc/rrc_ue.cc +++ b/srsenb/src/stack/rrc/rrc_ue.cc @@ -355,7 +355,7 @@ void rrc::ue::parse_ul_dcch(uint32_t lcid, srsran::unique_byte_buffer_t pdu) handle_ue_info_resp(ul_dcch_msg.msg.c1().ue_info_resp_r9(), std::move(original_pdu)); break; default: - parent->logger.error("Msg: %s not supported", ul_dcch_msg.msg.c1().type().to_string().c_str()); + parent->logger.error("Msg: %s not supported", ul_dcch_msg.msg.c1().type().to_string()); break; } } @@ -392,12 +392,11 @@ void rrc::ue::handle_rrc_con_req(rrc_conn_request_s* msg) has_tmsi = true; // Make sure that the context does not already exist - for (auto ue_it = parent->users.begin(); ue_it != parent->users.end(); ue_it++) { - if (ue_it->first != rnti && ue_it->second->has_tmsi && ue_it->second->mmec == mmec && - ue_it->second->m_tmsi == m_tmsi) { + for (auto& user : parent->users) { + if (user.first != rnti && user.second->has_tmsi && user.second->mmec == mmec && user.second->m_tmsi == m_tmsi) { parent->logger.info("RRC connection request: UE context already exists. M-TMSI=%d", m_tmsi); - parent->rem_user_thread(ue_it->first); // Simply remove the old context. No need to notify the MME, it will - // update the eNB/MME-UE S1AP Id pair. + parent->s1ap->user_release(rnti, asn1::s1ap::cause_radio_network_opts::radio_conn_with_ue_lost); + parent->rem_user_thread(user.first); break; } } @@ -532,7 +531,7 @@ void rrc::ue::handle_rrc_con_reest_req(rrc_conn_reest_request_s* msg) (uint32_t)msg->crit_exts.rrc_conn_reest_request_r8().ue_id.c_rnti.to_number(), msg->crit_exts.rrc_conn_reest_request_r8().ue_id.pci, (uint32_t)msg->crit_exts.rrc_conn_reest_request_r8().ue_id.short_mac_i.to_number(), - msg->crit_exts.rrc_conn_reest_request_r8().reest_cause.to_string().c_str()); + msg->crit_exts.rrc_conn_reest_request_r8().reest_cause.to_string()); if (is_idle()) { uint16_t old_rnti = msg->crit_exts.rrc_conn_reest_request_r8().ue_id.c_rnti.to_number(); uint16_t old_pci = msg->crit_exts.rrc_conn_reest_request_r8().ue_id.pci; @@ -886,7 +885,7 @@ bool rrc::ue::handle_ue_cap_info(ue_cap_info_s* msg) for (uint32_t i = 0; i < msg_r8->ue_cap_rat_container_list.size(); i++) { if (msg_r8->ue_cap_rat_container_list[i].rat_type != rat_type_e::eutra) { parent->logger.warning("Not handling UE capability information for RAT type %s", - msg_r8->ue_cap_rat_container_list[i].rat_type.to_string().c_str()); + msg_r8->ue_cap_rat_container_list[i].rat_type.to_string()); continue; } asn1::cbit_ref bref(msg_r8->ue_cap_rat_container_list[i].ue_cap_rat_container.data(), diff --git a/srsenb/src/stack/rrc/ue_meas_cfg.cc b/srsenb/src/stack/rrc/ue_meas_cfg.cc index 184823363..b5b2900de 100644 --- a/srsenb/src/stack/rrc/ue_meas_cfg.cc +++ b/srsenb/src/stack/rrc/ue_meas_cfg.cc @@ -294,7 +294,7 @@ bool apply_meas_gap_updates(const meas_gap_cfg_c& src_gaps, break; default: srslog::fetch_basic_logger("RRC").warning("MeasGap of type %s not supported", - target_offset.type().to_string().c_str()); + target_offset.type().to_string()); } } } diff --git a/srsenb/src/stack/upper/s1ap.cc b/srsenb/src/stack/upper/s1ap.cc index 358706d87..e04acb73a 100644 --- a/srsenb/src/stack/upper/s1ap.cc +++ b/srsenb/src/stack/upper/s1ap.cc @@ -650,7 +650,7 @@ bool s1ap::handle_initiatingmessage(const init_msg_s& msg) case s1ap_elem_procs_o::init_msg_c::types_opts::mme_status_transfer: return handle_mme_status_transfer(msg.value.mme_status_transfer()); default: - logger.error("Unhandled initiating message: %s", msg.value.type().to_string().c_str()); + logger.error("Unhandled initiating message: %s", msg.value.type().to_string()); } return true; } @@ -665,7 +665,7 @@ bool s1ap::handle_successfuloutcome(const successful_outcome_s& msg) case s1ap_elem_procs_o::successful_outcome_c::types_opts::ho_cancel_ack: return true; default: - logger.error("Unhandled successful outcome message: %s", msg.value.type().to_string().c_str()); + logger.error("Unhandled successful outcome message: %s", msg.value.type().to_string()); } return true; } @@ -678,7 +678,7 @@ bool s1ap::handle_unsuccessfuloutcome(const unsuccessful_outcome_s& msg) case s1ap_elem_procs_o::unsuccessful_outcome_c::types_opts::ho_prep_fail: return handle_handover_preparation_failure(msg.value.ho_prep_fail()); default: - logger.error("Unhandled unsuccessful outcome message: %s", msg.value.type().to_string().c_str()); + logger.error("Unhandled unsuccessful outcome message: %s", msg.value.type().to_string()); } return true; } @@ -1405,10 +1405,6 @@ bool s1ap::ue::send_ulnastransport(srsran::unique_byte_buffer_t pdu) bool s1ap::ue::send_uectxtreleaserequest(const cause_c& cause) { - if (!s1ap_ptr->mme_connected) { - return false; - } - if (not ctxt.mme_ue_s1ap_id.has_value()) { logger.error("Cannot send UE context release request without a MME-UE-S1AP-Id allocated."); return false; @@ -1449,7 +1445,7 @@ void s1ap::ue::ue_ctxt_setup_complete() { if (current_state != s1ap_elem_procs_o::init_msg_c::types_opts::init_context_setup_request) { logger.warning("Procedure %s,rnti=0x%x - Received unexpected complete notification", - s1ap_elem_procs_o::init_msg_c::types_opts{current_state}.to_string().c_str(), + s1ap_elem_procs_o::init_msg_c::types_opts{current_state}.to_string(), ctxt.rnti); return; } diff --git a/srsenb/test/phy/CMakeLists.txt b/srsenb/test/phy/CMakeLists.txt index ec9f8d0ad..eae7d98df 100644 --- a/srsenb/test/phy/CMakeLists.txt +++ b/srsenb/test/phy/CMakeLists.txt @@ -59,7 +59,7 @@ add_lte_test(enb_phy_test_tm3 enb_phy_test --duration=${ENB_PHY_TEST_DURATION} - add_lte_test(enb_phy_test_tm4 enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --cell.nof_prb=100 --tm=4) # Five carrier aggregation using PUCCH3: -# - 6 eNb cell/carrier +# - 5 eNb cell/carrier # - Transmission Mode 1 # - 5 Aggregated carriers # - 6 PRB @@ -67,7 +67,7 @@ add_lte_test(enb_phy_test_tm4 enb_phy_test --duration=${ENB_PHY_TEST_DURATION} - add_lte_test(enb_phy_test_tm1_ca_pucch3 enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=5 --ue_cell_list=3,4,0,1,2 --ack_mode=pucch3 --cell.nof_prb=6 --tm=1) # Five carrier aggregation using PUCCH3: -# - 6 eNb cell/carrier +# - 5 eNb cell/carrier # - Transmission Mode 4 # - 5 Aggregated carriers # - 6 PRB @@ -75,7 +75,7 @@ add_lte_test(enb_phy_test_tm1_ca_pucch3 enb_phy_test --duration=${ENB_PHY_TEST_D add_lte_test(enb_phy_test_tm4_ca_pucch3 enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=5 --ue_cell_list=0,4,3,1,2 --ack_mode=pucch3 --cell.nof_prb=6 --tm=4) # Two carrier aggregation using Channel Selection: -# - 6 eNb cell/carrier +# - 5 eNb cell/carrier # - Transmission Mode 1 # - 2 Aggregated carriers # - 6 PRB @@ -83,12 +83,12 @@ add_lte_test(enb_phy_test_tm4_ca_pucch3 enb_phy_test --duration=${ENB_PHY_TEST_D add_lte_test(enb_phy_test_tm1_ca_cs enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=5 --ue_cell_list=4,3 --ack_mode=cs --cell.nof_prb=6 --tm=1) # Two carrier aggregation using Channel Selection: -# - 6 eNb cell/carrier +# - 5 eNb cell/carrier # - Transmission Mode 4 # - 2 Aggregated carriers # - 6 PRB # - PUCCH format 1b with Channel selection ACK/NACK feedback mode -add_lte_test(enb_phy_test_tm4_ca_cs enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=5 --ue_cell_list=0,4 --ack_mode=cs --cell.nof_prb=6 --tm=4) +add_lte_test(enb_phy_test_tm4_ca_cs enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=5 --ue_cell_list=1,4 --ack_mode=cs --cell.nof_prb=6 --tm=4) # Two carrier aggregation using Channel Selection and HO: # - 3 eNb cell/carrier @@ -97,3 +97,6 @@ add_lte_test(enb_phy_test_tm4_ca_cs enb_phy_test --duration=${ENB_PHY_TEST_DURAT # - 100 PRB # - PUCCH format 1b with Channel selection ACK/NACK feedback mode add_lte_test(enb_phy_test_tm1_ca_cs_ho enb_phy_test --duration=1000 --nof_enb_cells=3 --ue_cell_list=2,0 --ack_mode=cs --cell.nof_prb=100 --tm=1 --rotation=100) + +# 6 Carrier eNb shall end in error without breaking the PHY +add_lte_test(enb_phy_test_exceed_nof_carriers enb_phy_test --duration=${ENB_PHY_TEST_DURATION} --nof_enb_cells=6 --ue_cell_list=1,5 --ack_mode=cs --cell.nof_prb=6 --tm=4) diff --git a/srsenb/test/phy/enb_phy_test.cc b/srsenb/test/phy/enb_phy_test.cc index ab4bd70d7..4dc436e9c 100644 --- a/srsenb/test/phy/enb_phy_test.cc +++ b/srsenb/test/phy/enb_phy_test.cc @@ -1237,6 +1237,12 @@ public: phy_cfg.prach_cnfg.prach_cfg_info.prach_freq_offset = 2; phy_cfg.prach_cnfg.prach_cfg_info.zero_correlation_zone_cfg = 5; + /// eNb PHY initialisation instance + enb_phy = unique_srsenb_phy_t(new srsenb::phy(log_sink)); + } + + int init() + { // Create base UE dedicated configuration srsran::phy_cfg_t dedicated = {}; @@ -1302,11 +1308,10 @@ public: stack = unique_dummy_stack_t(new dummy_stack(phy_cfg, phy_rrc_cfg, args.log_level, args.rnti)); stack->set_active_cell_list(args.ue_cell_list); - /// eNb PHY initialisation instance - enb_phy = unique_srsenb_phy_t(new srsenb::phy(log_sink)); - /// Initiate eNb PHY with the given RNTI - enb_phy->init(phy_args, phy_cfg, radio.get(), stack.get()); + if (enb_phy->init(phy_args, phy_cfg, radio.get(), stack.get()) < 0) { + return SRSRAN_ERROR; + } enb_phy->set_config(args.rnti, phy_rrc_cfg); enb_phy->complete_config(args.rnti); enb_phy->set_activation_deactivation_scell(args.rnti, activation); @@ -1316,6 +1321,8 @@ public: /// Configure UE with initial configuration ue_phy->reconfigure(phy_rrc_cfg); + + return SRSRAN_SUCCESS; } void stop() @@ -1466,6 +1473,14 @@ int main(int argc, char** argv) // Create Test Bench unique_phy_test_bench test_bench = unique_phy_test_bench(new phy_test_bench(test_args, srslog::get_default_sink())); + int err_code = test_bench->init(); + bool valid_cfg = test_args.nof_enb_cells <= SRSRAN_MAX_CARRIERS; + if (not valid_cfg) { + // Verify that phy returns with an error if provided an invalid configuration + TESTASSERT(err_code != SRSRAN_SUCCESS); + return 0; + } + TESTASSERT(err_code == SRSRAN_SUCCESS); // Run Simulation for (uint32_t i = 0; i < test_args.duration; i++) { diff --git a/srsenb/test/upper/rrc_mobility_test.cc b/srsenb/test/upper/rrc_mobility_test.cc index 0e0f1f419..cbb6ad6cf 100644 --- a/srsenb/test/upper/rrc_mobility_test.cc +++ b/srsenb/test/upper/rrc_mobility_test.cc @@ -29,44 +29,43 @@ using namespace asn1::rrc; -struct mobility_test_params { - enum class test_event { - success, - wrong_measreport, - concurrent_ho, - ho_prep_failure, - duplicate_crnti_ce, - recover, - wrong_target_cell, - unknown_qci, - } fail_at; - const char* to_string() - { - switch (fail_at) { - case test_event::success: - return "success"; - case test_event::wrong_measreport: - return "wrong measreport"; - case test_event::concurrent_ho: - return "measreport while in handover"; - case test_event::ho_prep_failure: - return "ho preparation failure"; - case test_event::recover: - return "fail and success"; - case test_event::duplicate_crnti_ce: - return "duplicate CRNTI CE"; - case test_event::wrong_target_cell: - return "wrong target cell"; - case test_event::unknown_qci: - return "invalid QoS"; - default: - return "none"; - } - } +enum class test_event { + success, + wrong_measreport, + concurrent_ho, + ho_prep_failure, + duplicate_crnti_ce, + recover, + wrong_target_cell, + unknown_qci, }; +const char* to_string(test_event event) +{ + switch (event) { + case test_event::success: + return "success"; + case test_event::wrong_measreport: + return "wrong measreport"; + case test_event::concurrent_ho: + return "measreport while in handover"; + case test_event::ho_prep_failure: + return "ho preparation failure"; + case test_event::recover: + return "fail and success"; + case test_event::duplicate_crnti_ce: + return "duplicate CRNTI CE"; + case test_event::wrong_target_cell: + return "wrong target cell"; + case test_event::unknown_qci: + return "invalid QoS"; + default: + return "none"; + } +} + struct mobility_tester { - explicit mobility_tester(const mobility_test_params& args_) : + explicit mobility_tester(const test_event& args_) : args(args_), logger(srslog::fetch_basic_logger("RRC")), rrc(&task_sched) { logger.set_level(srslog::basic_levels::info); @@ -92,7 +91,7 @@ struct mobility_tester { return SRSRAN_SUCCESS; } - mobility_test_params args; + test_event args; srslog::basic_logger& logger; srsran::task_scheduler task_sched; rrc_cfg_t cfg; @@ -135,7 +134,7 @@ protected: }; struct s1ap_mobility_tester : public mobility_tester { - explicit s1ap_mobility_tester(const mobility_test_params& args_) : mobility_tester(args_) {} + explicit s1ap_mobility_tester(const test_event& args_) : mobility_tester(args_) {} int generate_rrc_cfg() final { TESTASSERT(generate_rrc_cfg_common() == SRSRAN_SUCCESS); @@ -147,7 +146,7 @@ struct s1ap_mobility_tester : public mobility_tester { }; struct intraenb_mobility_tester : public mobility_tester { - explicit intraenb_mobility_tester(const mobility_test_params& args_) : mobility_tester(args_) {} + explicit intraenb_mobility_tester(const test_event& args_) : mobility_tester(args_) {} int generate_rrc_cfg() final { TESTASSERT(generate_rrc_cfg_common() == SRSRAN_SUCCESS); @@ -169,9 +168,9 @@ struct intraenb_mobility_tester : public mobility_tester { } }; -int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_params) +int test_s1ap_mobility(srsran::log_sink_spy& spy, test_event test_params) { - printf("\n===== TEST: test_s1ap_mobility() for event %s =====\n", test_params.to_string()); + printf("\n===== TEST: test_s1ap_mobility() for event %s =====\n", to_string(test_params)); s1ap_mobility_tester tester{test_params}; spy.reset_counters(); srsran::unique_byte_buffer_t pdu; @@ -191,7 +190,7 @@ int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_para tester.cfg.cell_list[0].meas_cfg.meas_gap_period); /* Receive MeasReport from UE (correct if PCI=2) */ - if (test_params.fail_at == mobility_test_params::test_event::wrong_measreport) { + if (test_params == test_event::wrong_measreport) { uint8_t meas_report[] = {0x08, 0x10, 0x38, 0x74, 0x00, 0x0D, 0xBC, 0x80}; // PCI == 3 test_helpers::copy_msg_to_buffer(pdu, meas_report); } else { @@ -202,7 +201,7 @@ int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_para tester.tic(); /* Test Case: the MeasReport is not valid */ - if (test_params.fail_at == mobility_test_params::test_event::wrong_measreport) { + if (test_params == test_event::wrong_measreport) { TESTASSERT(s1ap.last_ho_required.rrc_container == nullptr); TESTASSERT(spy.get_warning_counter() == 1); return SRSRAN_SUCCESS; @@ -210,7 +209,7 @@ int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_para TESTASSERT(s1ap.last_ho_required.rrc_container != nullptr); /* Test Case: Multiple concurrent MeasReports arrived. Only one HO procedure should be running */ - if (test_params.fail_at == mobility_test_params::test_event::concurrent_ho) { + if (test_params == test_event::concurrent_ho) { s1ap.last_ho_required = {}; uint8_t meas_report[] = {0x08, 0x10, 0x38, 0x74, 0x00, 0x09, 0xBC, 0x80}; // PCI == 2 test_helpers::copy_msg_to_buffer(pdu, meas_report); @@ -239,7 +238,7 @@ int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_para } /* Test Case: HandoverPreparation has failed */ - if (test_params.fail_at == mobility_test_params::test_event::ho_prep_failure) { + if (test_params == test_event::ho_prep_failure) { tester.rrc.ho_preparation_complete(tester.rnti, rrc::ho_prep_result::failure, {}, nullptr); // TESTASSERT(spy.get_error_counter() == 1); TESTASSERT(not s1ap.last_enb_status.status_present); @@ -264,9 +263,9 @@ int test_s1ap_mobility(srsran::log_sink_spy& spy, mobility_test_params test_para return SRSRAN_SUCCESS; } -int test_s1ap_tenb_mobility(mobility_test_params test_params) +int test_s1ap_tenb_mobility(test_event test_params) { - printf("\n===== TEST: test_s1ap_tenb_mobility() for event %s =====\n", test_params.to_string()); + printf("\n===== TEST: test_s1ap_tenb_mobility() for event %s =====\n", to_string(test_params)); s1ap_mobility_tester tester{test_params}; srsran::unique_byte_buffer_t pdu; @@ -285,13 +284,13 @@ int test_s1ap_tenb_mobility(mobility_test_params test_params) auto& erab = ho_req.protocol_ies.erab_to_be_setup_list_ho_req.value[0].value.erab_to_be_setup_item_ho_req(); erab.erab_id = 5; erab.erab_level_qos_params.qci = 9; - if (test_params.fail_at == mobility_test_params::test_event::unknown_qci) { + if (test_params == test_event::unknown_qci) { erab.erab_level_qos_params.qci = 10; } ho_req.protocol_ies.ue_security_cap.value.integrity_protection_algorithms.set(14, true); asn1::s1ap::sourceenb_to_targetenb_transparent_container_s container; container.target_cell_id.cell_id.from_number(0x19C02); - if (test_params.fail_at == mobility_test_params::test_event::wrong_target_cell) { + if (test_params == test_event::wrong_target_cell) { container.target_cell_id.cell_id.from_number(0x19C03); } container.erab_info_list_present = true; @@ -313,14 +312,14 @@ int test_s1ap_tenb_mobility(mobility_test_params test_params) memcpy(container.rrc_container.data(), ho_prep_container, sizeof(ho_prep_container)); asn1::s1ap::cause_c cause; int rnti = tester.rrc.start_ho_ue_resource_alloc(ho_req, container, cause); - if (test_params.fail_at == mobility_test_params::test_event::wrong_target_cell) { + if (test_params == test_event::wrong_target_cell) { TESTASSERT(rnti == SRSRAN_INVALID_RNTI); TESTASSERT(cause.type().value == asn1::s1ap::cause_c::types_opts::radio_network); TESTASSERT(cause.radio_network().value == asn1::s1ap::cause_radio_network_opts::ho_target_not_allowed); TESTASSERT(tester.rrc.get_nof_users() == 0); return SRSRAN_SUCCESS; } - if (test_params.fail_at == mobility_test_params::test_event::unknown_qci) { + if (test_params == test_event::unknown_qci) { TESTASSERT(rnti == SRSRAN_INVALID_RNTI); TESTASSERT(cause.type().value == asn1::s1ap::cause_c::types_opts::radio_network); TESTASSERT(cause.radio_network().value == asn1::s1ap::cause_radio_network_opts::not_supported_qci_value); @@ -404,9 +403,9 @@ int test_s1ap_tenb_mobility(mobility_test_params test_params) return SRSRAN_SUCCESS; } -int test_intraenb_mobility(srsran::log_sink_spy& spy, mobility_test_params test_params) +int test_intraenb_mobility(srsran::log_sink_spy& spy, test_event test_params) { - printf("\n===== TEST: test_intraenb_mobility() for event %s =====\n", test_params.to_string()); + printf("\n===== TEST: test_intraenb_mobility() for event %s =====\n", to_string(test_params)); intraenb_mobility_tester tester{test_params}; spy.reset_counters(); srsran::unique_byte_buffer_t pdu; @@ -429,7 +428,7 @@ int test_intraenb_mobility(srsran::log_sink_spy& spy, mobility_test_params test_ tester.phy.phy_cfg_set = false; /* Receive MeasReport from UE (correct if PCI=2) */ - if (test_params.fail_at == mobility_test_params::test_event::wrong_measreport) { + if (test_params == test_event::wrong_measreport) { uint8_t meas_report[] = {0x08, 0x10, 0x38, 0x74, 0x00, 0x0D, 0xBC, 0x80}; // PCI == 3 test_helpers::copy_msg_to_buffer(pdu, meas_report); } else { @@ -441,7 +440,7 @@ int test_intraenb_mobility(srsran::log_sink_spy& spy, mobility_test_params test_ TESTASSERT(tester.s1ap.last_ho_required.rrc_container == nullptr); /* Test Case: the MeasReport is not valid */ - if (test_params.fail_at == mobility_test_params::test_event::wrong_measreport) { + if (test_params == test_event::wrong_measreport) { TESTASSERT(spy.get_warning_counter() == 1); TESTASSERT(tester.pdcp.last_sdu.sdu == nullptr); return SRSRAN_SUCCESS; @@ -451,7 +450,7 @@ int test_intraenb_mobility(srsran::log_sink_spy& spy, mobility_test_params test_ TESTASSERT(not tester.s1ap.last_enb_status.status_present); /* Test Case: Multiple concurrent MeasReports arrived. Only one HO procedure should be running */ - if (test_params.fail_at == mobility_test_params::test_event::concurrent_ho) { + if (test_params == test_event::concurrent_ho) { tester.pdcp.last_sdu = {}; uint8_t meas_report[] = {0x08, 0x10, 0x38, 0x74, 0x00, 0x09, 0xBC, 0x80}; // PCI == 2 test_helpers::copy_msg_to_buffer(pdu, meas_report); @@ -494,7 +493,7 @@ int test_intraenb_mobility(srsran::log_sink_spy& spy, mobility_test_params test_ TESTASSERT(tester.phy.last_cfg[0].enb_cc_idx == tester.mac.ue_db[tester.rnti].supported_cc_list[0].enb_cc_idx); /* Test Case: The UE receives a duplicate C-RNTI CE. Nothing should happen */ - if (test_params.fail_at == mobility_test_params::test_event::duplicate_crnti_ce) { + if (test_params == test_event::duplicate_crnti_ce) { TESTASSERT(tester.rlc.ue_db[tester.rnti].reest_sdu_counter == 0); tester.rrc.upd_user(tester.rnti + 2, tester.rnti); TESTASSERT(tester.rlc.ue_db[tester.rnti].reest_sdu_counter == 0); @@ -554,8 +553,6 @@ int main(int argc, char** argv) srslog::init(); - using event = mobility_test_params::test_event; - if (argc < 3) { argparse::usage(argv[0]); return -1; @@ -563,20 +560,20 @@ int main(int argc, char** argv) argparse::parse_args(argc, argv); // Source ENB - S1 Handover - TESTASSERT(test_s1ap_mobility(*spy, mobility_test_params{event::wrong_measreport}) == 0); - TESTASSERT(test_s1ap_mobility(*spy, mobility_test_params{event::concurrent_ho}) == 0); - TESTASSERT(test_s1ap_mobility(*spy, mobility_test_params{event::ho_prep_failure}) == 0); - TESTASSERT(test_s1ap_mobility(*spy, mobility_test_params{event::success}) == 0); + TESTASSERT(test_s1ap_mobility(*spy, test_event::wrong_measreport) == 0); + TESTASSERT(test_s1ap_mobility(*spy, test_event::concurrent_ho) == 0); + TESTASSERT(test_s1ap_mobility(*spy, test_event::ho_prep_failure) == 0); + TESTASSERT(test_s1ap_mobility(*spy, test_event::success) == 0); - TESTASSERT(test_s1ap_tenb_mobility(mobility_test_params{event::wrong_target_cell}) == 0); - TESTASSERT(test_s1ap_tenb_mobility(mobility_test_params{event::unknown_qci}) == 0); - TESTASSERT(test_s1ap_tenb_mobility(mobility_test_params{event::success}) == 0); + TESTASSERT(test_s1ap_tenb_mobility(test_event::wrong_target_cell) == 0); + TESTASSERT(test_s1ap_tenb_mobility(test_event::unknown_qci) == 0); + TESTASSERT(test_s1ap_tenb_mobility(test_event::success) == 0); // intraeNB Handover - TESTASSERT(test_intraenb_mobility(*spy, mobility_test_params{event::wrong_measreport}) == 0); - TESTASSERT(test_intraenb_mobility(*spy, mobility_test_params{event::concurrent_ho}) == 0); - TESTASSERT(test_intraenb_mobility(*spy, mobility_test_params{event::duplicate_crnti_ce}) == 0); - TESTASSERT(test_intraenb_mobility(*spy, mobility_test_params{event::success}) == 0); + TESTASSERT(test_intraenb_mobility(*spy, test_event::wrong_measreport) == 0); + TESTASSERT(test_intraenb_mobility(*spy, test_event::concurrent_ho) == 0); + TESTASSERT(test_intraenb_mobility(*spy, test_event::duplicate_crnti_ce) == 0); + TESTASSERT(test_intraenb_mobility(*spy, test_event::success) == 0); srslog::flush(); diff --git a/srsenb/test/upper/s1ap_test.cc b/srsenb/test/upper/s1ap_test.cc index c28634a71..629dce670 100644 --- a/srsenb/test/upper/s1ap_test.cc +++ b/srsenb/test/upper/s1ap_test.cc @@ -37,7 +37,8 @@ struct mme_dummy { TESTASSERT(bind_addr(fd, mme_sockaddr)); } - srsran_assert(listen(fd, SOMAXCONN) == 0, "Failed to listen to incoming SCTP connections"); + int success = listen(fd, SOMAXCONN); + srsran_assert(success == 0, "Failed to listen to incoming SCTP connections"); } ~mme_dummy() diff --git a/srsepc/src/mme/s1ap.cc b/srsepc/src/mme/s1ap.cc index 287ea43b0..018b17675 100644 --- a/srsepc/src/mme/s1ap.cc +++ b/srsepc/src/mme/s1ap.cc @@ -274,8 +274,8 @@ void s1ap::handle_initiating_message(const asn1::s1ap::init_msg_s& msg, struct s m_logger.info("Ignoring UE capability Info Indication."); break; default: - m_logger.error("Unhandled S1AP initiating message: %s", msg.value.type().to_string().c_str()); - srsran::console("Unhandled S1APinitiating message: %s\n", msg.value.type().to_string().c_str()); + m_logger.error("Unhandled S1AP initiating message: %s", msg.value.type().to_string()); + srsran::console("Unhandled S1APinitiating message: %s\n", msg.value.type().to_string()); } } @@ -293,7 +293,7 @@ void s1ap::handle_successful_outcome(const asn1::s1ap::successful_outcome_s& msg m_s1ap_ctx_mngmt_proc->handle_ue_context_release_complete(msg.value.ue_context_release_complete()); break; default: - m_logger.error("Unhandled successful outcome message: %s", msg.value.type().to_string().c_str()); + m_logger.error("Unhandled successful outcome message: %s", msg.value.type().to_string()); } } @@ -585,7 +585,7 @@ void s1ap::print_enb_ctx_info(const std::string& prefix, const enb_ctx_t& enb_ct srsran::console("%s - TAC %d, B-PLMN 0x%x\n", prefix.c_str(), enb_ctx.tacs[i], enb_ctx.bplmns[i][j]); } } - srsran::console("%s - Paging DRX %s\n", prefix.c_str(), enb_ctx.drx.to_string().c_str()); + srsran::console("%s - Paging DRX %s\n", prefix.c_str(), enb_ctx.drx.to_string()); return; } diff --git a/srsue/hdr/phy/nr/cc_worker.h b/srsue/hdr/phy/nr/cc_worker.h index 927861db2..da74b3bca 100644 --- a/srsue/hdr/phy/nr/cc_worker.h +++ b/srsue/hdr/phy/nr/cc_worker.h @@ -34,7 +34,6 @@ public: cc_worker(uint32_t cc_idx, srslog::basic_logger& log, state* phy_state_); ~cc_worker(); - bool set_carrier(const srsran_carrier_nr_t* carrier); bool update_cfg(); void set_tti(uint32_t tti); diff --git a/srsue/hdr/phy/nr/sf_worker.h b/srsue/hdr/phy/nr/sf_worker.h index b4d9daeb4..b4c8534b0 100644 --- a/srsue/hdr/phy/nr/sf_worker.h +++ b/srsue/hdr/phy/nr/sf_worker.h @@ -43,7 +43,6 @@ public: sf_worker(phy_common* phy, state* phy_state_, srslog::basic_logger& logger); ~sf_worker() = default; - bool set_carrier_unlocked(uint32_t cc_idx, const srsran_carrier_nr_t* carrier_); bool update_cfg(uint32_t cc_idx); /* Functions used by main PHY thread */ diff --git a/srsue/hdr/phy/nr/state.h b/srsue/hdr/phy/nr/state.h index d49a6b3a4..6e8c36852 100644 --- a/srsue/hdr/phy/nr/state.h +++ b/srsue/hdr/phy/nr/state.h @@ -57,6 +57,7 @@ private: srsran::circular_array pending_ack = {}; mutable std::mutex pending_ack_mutex; + /// Metrics section info_metrics_t info_metrics = {}; sync_metrics_t sync_metrics = {}; ch_metrics_t ch_metrics = {}; @@ -79,8 +80,7 @@ private: } public: - mac_interface_phy_nr* stack = nullptr; - srsran_carrier_nr_t carrier = {}; + mac_interface_phy_nr* stack = nullptr; /// Physical layer user configuration phy_args_nr_t args = {}; @@ -95,12 +95,6 @@ public: state() { - carrier.pci = 500; - carrier.nof_prb = 100; - carrier.max_mimo_layers = 1; - - info_metrics.pci = carrier.pci; - // Hard-coded values, this should be set when the measurements take place csi_measurements[0].K_csi_rs = 1; csi_measurements[0].nof_ports = 1; @@ -117,9 +111,9 @@ public: { // Convert UL DCI to grant srsran_sch_cfg_nr_t pusch_cfg = {}; - if (srsran_ra_ul_dci_to_grant_nr(&carrier, &cfg.pusch, &dci_ul, &pusch_cfg, &pusch_cfg.grant)) { + if (srsran_ra_ul_dci_to_grant_nr(&cfg.carrier, &cfg.pusch, &dci_ul, &pusch_cfg, &pusch_cfg.grant)) { std::array str; - srsran_dci_ul_nr_to_str(&dci_ul, str.data(), str.size()); + srsran_dci_ul_nr_to_str(NULL, &dci_ul, str.data(), str.size()); ERROR("Computing UL grant %s", str.data()); return; } @@ -176,7 +170,7 @@ public: { // Convert DL DCI to grant srsran_sch_cfg_nr_t pdsch_cfg = {}; - if (srsran_ra_dl_dci_to_grant_nr(&carrier, &slot, &cfg.pdsch, &dci_dl, &pdsch_cfg, &pdsch_cfg.grant)) { + if (srsran_ra_dl_dci_to_grant_nr(&cfg.carrier, &slot, &cfg.pdsch, &dci_dl, &pdsch_cfg, &pdsch_cfg.grant)) { ERROR("Computing UL grant"); return; } diff --git a/srsue/hdr/stack/mac_common/mac_common.h b/srsue/hdr/stack/mac_common/mac_common.h index 4e7b7c284..25544689f 100644 --- a/srsue/hdr/stack/mac_common/mac_common.h +++ b/srsue/hdr/stack/mac_common/mac_common.h @@ -76,6 +76,15 @@ public: return srsran::to_c_str(buffer); } + uint32_t get_total_buffer_size() + { + uint32_t buffer_size = 0; + for (const auto& lcg : lcid_buffer_size) { + buffer_size += lcg.second; + } + return buffer_size; + } + std::map lcid_buffer_size; // Buffer size entry for each LCID std::map lcg_buffer_size; // Entry for each LCG (sum of LCIDs of that LCG) uint32_t nof_lcids_with_data = 0; // Is incremented when a LCID is found with data to transmit diff --git a/srsue/hdr/stack/mac_nr/dl_harq_nr.h b/srsue/hdr/stack/mac_nr/dl_harq_nr.h index 2ede8c1dd..41cfa6da8 100644 --- a/srsue/hdr/stack/mac_nr/dl_harq_nr.h +++ b/srsue/hdr/stack/mac_nr/dl_harq_nr.h @@ -59,6 +59,14 @@ public: float get_average_retx(); + // DL HARQ metrics combined for all processes + struct dl_harq_metrics_t { + uint32_t rx_ok; + uint32_t rx_ko; + uint32_t rx_brate; + }; + dl_harq_metrics_t get_metrics(); + private: class dl_harq_process_nr { @@ -96,12 +104,9 @@ private: demux_interface_harq_nr* demux_unit = nullptr; srslog::basic_logger& logger; uint16_t last_temporal_crnti = SRSRAN_INVALID_RNTI; - - float average_retx = 0.0; - uint64_t nof_pkts = 0; - uint8_t cc_idx = 0; - - pthread_rwlock_t rwlock; + dl_harq_metrics_t metrics = {}; + uint8_t cc_idx = 0; + pthread_rwlock_t rwlock; }; typedef std::unique_ptr dl_harq_entity_nr_ptr; diff --git a/srsue/hdr/stack/mac_nr/proc_ra_nr.h b/srsue/hdr/stack/mac_nr/proc_ra_nr.h index db89c87a3..65451c381 100644 --- a/srsue/hdr/stack/mac_nr/proc_ra_nr.h +++ b/srsue/hdr/stack/mac_nr/proc_ra_nr.h @@ -60,6 +60,10 @@ public: void reset(); private: + static const uint32_t PRACH_SEND_CALLBACK_TIMEOUT = + 16 * 10; ///< Limited from frame system number opportunity period in TS 38.211 tables 6.3.3.2-2, 6.3.3.2-3 + ///< and 6.3.3.2-4 + mac_interface_proc_ra_nr& mac; srslog::basic_logger& logger; phy_interface_mac_nr* phy = nullptr; diff --git a/srsue/hdr/stack/mac_nr/ul_harq_nr.h b/srsue/hdr/stack/mac_nr/ul_harq_nr.h index e192786c6..58631029a 100644 --- a/srsue/hdr/stack/mac_nr/ul_harq_nr.h +++ b/srsue/hdr/stack/mac_nr/ul_harq_nr.h @@ -46,8 +46,15 @@ public: /***************** PHY->MAC interface for UL processes **************************/ void new_grant_ul(const mac_interface_phy_nr::mac_nr_grant_ul_t& grant, mac_interface_phy_nr::tb_action_ul_t* action); - int get_current_tbs(uint32_t pid); - float get_average_retx(); + int get_current_tbs(uint32_t pid); + + // HARQ specific metrics interface that is combined for all processees + struct ul_harq_metrics_t { + uint32_t tx_ok; + uint32_t tx_ko; + uint32_t tx_brate; + }; + ul_harq_metrics_t get_metrics(); private: class ul_harq_process_nr @@ -104,9 +111,7 @@ private: srslog::basic_logger& logger; srsran::ul_harq_cfg_t harq_cfg = {}; - - float average_retx = 0.0; - uint64_t nof_pkts = 0; + ul_harq_metrics_t metrics = {}; }; typedef std::unique_ptr ul_harq_entity_nr_ptr; diff --git a/srsue/hdr/stack/rrc/rrc_nr.h b/srsue/hdr/stack/rrc/rrc_nr.h index fb143deb6..288470657 100644 --- a/srsue/hdr/stack/rrc/rrc_nr.h +++ b/srsue/hdr/stack/rrc/rrc_nr.h @@ -49,6 +49,7 @@ struct core_less_args_t { struct rrc_nr_args_t { core_less_args_t coreless; + uint32_t sim_nr_meas_pci; std::string supported_bands_nr_str; std::vector supported_bands_nr; std::vector supported_bands_eutra; @@ -163,8 +164,9 @@ private: usim_interface_rrc_nr* usim = nullptr; stack_interface_rrc* stack = nullptr; - uint32_t fake_measurement_carrier_freq_r15; - srsran::timer_handler::unique_timer fake_measurement_timer; + const uint32_t sim_measurement_timer_duration_ms = 250; + uint32_t sim_measurement_carrier_freq_r15; + srsran::timer_handler::unique_timer sim_measurement_timer; /// RRC states (3GPP 38.331 v15.5.1 Sec 4.2.1) enum rrc_nr_state_t { diff --git a/srsue/src/main.cc b/srsue/src/main.cc index b1b5490f6..782d1cd5f 100644 --- a/srsue/src/main.cc +++ b/srsue/src/main.cc @@ -128,16 +128,17 @@ static int parse_args(all_args_t* args, int argc, char* argv[]) ("rat.nr.dl_arfcn", bpo::value(&args->phy.dl_nr_arfcn)->default_value("634240"), "Downlink NR-ARFCN list") ("rat.nr.dl_freq", bpo::value(&args->phy.nr_freq_hz)->default_value(3513.6e6), "NR DL frequency") ("rat.nr.nof_carriers", bpo::value(&args->phy.nof_nr_carriers)->default_value(0), "Number of NR carriers") - ("rat.nr.nof_prb", bpo::value(&args->phy.nr_nof_prb)->default_value(52), "NR carrier bandwidth") - - ("rrc.feature_group", bpo::value(&args->stack.rrc.feature_group)->default_value(0xe6041000), "Hex value of the featureGroupIndicators field in the" - "UECapabilityInformation message. Default 0xe6041000") - ("rrc.ue_category", bpo::value(&args->stack.rrc.ue_category_str)->default_value(SRSRAN_UE_CATEGORY_DEFAULT), "UE Category (1 to 10)") - ("rrc.ue_category_dl", bpo::value(&args->stack.rrc.ue_category_dl)->default_value(-1), "UE Category DL v12 (valid values: 0, 4, 6, 7, 9 to 16)") - ("rrc.ue_category_ul", bpo::value(&args->stack.rrc.ue_category_ul)->default_value(-1), "UE Category UL v12 (valid values: 0, 3, 5, 7, 8 and 13)") - ("rrc.release", bpo::value(&args->stack.rrc.release)->default_value(SRSRAN_RELEASE_DEFAULT), "UE Release (8 to 15)") - ("rrc.mbms_service_id", bpo::value(&args->stack.rrc.mbms_service_id)->default_value(-1), "MBMS service id for autostart (-1 means disabled)") - ("rrc.mbms_service_port", bpo::value(&args->stack.rrc.mbms_service_port)->default_value(4321), "Port of the MBMS service") + ("rat.nr.max_nof_prb", bpo::value(&args->phy.nr_max_nof_prb)->default_value(106), "Maximum NR carrier bandwidth in PRB") + + ("rrc.feature_group", bpo::value(&args->stack.rrc.feature_group)->default_value(0xe6041000), "Hex value of the featureGroupIndicators field in the" + "UECapabilityInformation message. Default 0xe6041000") + ("rrc.ue_category", bpo::value(&args->stack.rrc.ue_category_str)->default_value(SRSRAN_UE_CATEGORY_DEFAULT), "UE Category (1 to 10)") + ("rrc.ue_category_dl", bpo::value(&args->stack.rrc.ue_category_dl)->default_value(-1), "UE Category DL v12 (valid values: 0, 4, 6, 7, 9 to 16)") + ("rrc.ue_category_ul", bpo::value(&args->stack.rrc.ue_category_ul)->default_value(-1), "UE Category UL v12 (valid values: 0, 3, 5, 7, 8 and 13)") + ("rrc.release", bpo::value(&args->stack.rrc.release)->default_value(SRSRAN_RELEASE_DEFAULT), "UE Release (8 to 15)") + ("rrc.mbms_service_id", bpo::value(&args->stack.rrc.mbms_service_id)->default_value(-1), "MBMS service id for autostart (-1 means disabled)") + ("rrc.mbms_service_port", bpo::value(&args->stack.rrc.mbms_service_port)->default_value(4321), "Port of the MBMS service") + ("rrc.nr_measurement_pci", bpo::value(&args->stack.rrc_nr.sim_nr_meas_pci)->default_value(500), "NR PCI for the simulated NR measurement") ("nas.apn", bpo::value(&args->stack.nas.apn_name)->default_value(""), "Set Access Point Name (APN) for data services") ("nas.apn_protocol", bpo::value(&args->stack.nas.apn_protocol)->default_value(""), "Set Access Point Name (APN) protocol for data services") diff --git a/srsue/src/phy/nr/cc_worker.cc b/srsue/src/phy/nr/cc_worker.cc index 778209c85..fbefd0578 100644 --- a/srsue/src/phy/nr/cc_worker.cc +++ b/srsue/src/phy/nr/cc_worker.cc @@ -65,28 +65,19 @@ cc_worker::~cc_worker() } } -bool cc_worker::set_carrier(const srsran_carrier_nr_t* carrier) +bool cc_worker::update_cfg() { - if (srsran_ue_dl_nr_set_carrier(&ue_dl, carrier) < SRSRAN_SUCCESS) { + if (srsran_ue_dl_nr_set_carrier(&ue_dl, &phy->cfg.carrier) < SRSRAN_SUCCESS) { ERROR("Error setting carrier"); return false; } - if (srsran_ue_ul_nr_set_carrier(&ue_ul, carrier) < SRSRAN_SUCCESS) { + if (srsran_ue_ul_nr_set_carrier(&ue_ul, &phy->cfg.carrier) < SRSRAN_SUCCESS) { ERROR("Error setting carrier"); return false; } - // Set default PDSCH config - phy->cfg.pdsch.rbg_size_cfg_1 = false; - - return true; -} - -bool cc_worker::update_cfg() -{ - srsran_dci_cfg_nr_t dci_cfg = phy->cfg.get_dci_cfg(phy->carrier); - + srsran_dci_cfg_nr_t dci_cfg = phy->cfg.get_dci_cfg(); if (srsran_ue_dl_nr_set_pdcch_config(&ue_dl, &phy->cfg.pdcch, &dci_cfg) < SRSRAN_SUCCESS) { logger.error("Error setting NR PDCCH configuration"); return false; @@ -150,7 +141,7 @@ void cc_worker::decode_pdcch_dl() // Log found DCI if (logger.info.enabled()) { std::array str; - srsran_dci_dl_nr_to_str(&dci_rx[i], str.data(), str.size()); + srsran_dci_dl_nr_to_str(&ue_dl.dci, &dci_rx[i], str.data(), str.size()); logger.info("PDCCH: cc=%d, %s", cc_idx, str.data()); } @@ -200,7 +191,7 @@ void cc_worker::decode_pdcch_ul() // Log found DCI if (logger.info.enabled()) { std::array str; - srsran_dci_ul_nr_to_str(&dci_rx[i], str.data(), str.size()); + srsran_dci_ul_nr_to_str(&ue_dl.dci, &dci_rx[i], str.data(), str.size()); logger.info("PDCCH: cc=%d, %s", cc_idx, str.data()); } @@ -287,12 +278,8 @@ bool cc_worker::work_dl() str.data(), str_extra.data()); } else { - logger.info(pdsch_res.tb[0].payload, - pdsch_cfg.grant.tb[0].tbs / 8, - "PDSCH: cc=%d pid=%d %s", - cc_idx, - pid, - str.data()); + logger.info( + pdsch_res.tb[0].payload, pdsch_cfg.grant.tb[0].tbs / 8, "PDSCH: cc=%d pid=%d %s", cc_idx, pid, str.data()); } } @@ -400,7 +387,7 @@ bool cc_worker::work_ul() } // Set UCI configuration following procedures - srsran_ra_ul_set_grant_uci_nr(&phy->carrier, &phy->cfg.pusch, &uci_data.cfg, &pusch_cfg); + srsran_ra_ul_set_grant_uci_nr(&phy->cfg.carrier, &phy->cfg.pusch, &uci_data.cfg, &pusch_cfg); // Assigning MAC provided values to PUSCH config structs pusch_cfg.grant.tb[0].softbuffer.tx = ul_action.tb.softbuffer; diff --git a/srsue/src/phy/nr/sf_worker.cc b/srsue/src/phy/nr/sf_worker.cc index b676db11b..7ff3d7c66 100644 --- a/srsue/src/phy/nr/sf_worker.cc +++ b/srsue/src/phy/nr/sf_worker.cc @@ -45,15 +45,6 @@ sf_worker::sf_worker(phy_common* phy_, state* phy_state_, srslog::basic_logger& } } -bool sf_worker::set_carrier_unlocked(uint32_t cc_idx, const srsran_carrier_nr_t* carrier_) -{ - if (cc_idx >= cc_workers.size()) { - return false; - } - - return cc_workers.at(cc_idx)->set_carrier(carrier_); -} - bool sf_worker::update_cfg(uint32_t cc_idx) { if (cc_idx >= cc_workers.size()) { @@ -108,7 +99,7 @@ void sf_worker::work_imp() // Notify MAC about PRACH transmission phy_state->stack->prach_sent(TTI_TX(tti_rx), srsran_prach_nr_start_symbol_fr1_unpaired(phy_state->cfg.prach.config_idx), - SRSRAN_SLOT_NR_MOD(phy_state->carrier.scs, TTI_TX(tti_rx)), + SRSRAN_SLOT_NR_MOD(phy_state->cfg.carrier.scs, TTI_TX(tti_rx)), 0, 0); diff --git a/srsue/src/phy/nr/worker_pool.cc b/srsue/src/phy/nr/worker_pool.cc index 11dbd473a..cd4c11483 100644 --- a/srsue/src/phy/nr/worker_pool.cc +++ b/srsue/src/phy/nr/worker_pool.cc @@ -31,12 +31,15 @@ bool worker_pool::init(const phy_args_nr_t& args, phy_common* common, stack_inte phy_state.args = args; // Set carrier attributes - phy_state.carrier.pci = 500; - phy_state.carrier.nof_prb = args.nof_prb; + phy_state.cfg.carrier.pci = 500; + phy_state.cfg.carrier.nof_prb = args.max_nof_prb; // Set NR arguments - phy_state.args.nof_carriers = args.nof_carriers; - phy_state.args.dl.nof_max_prb = args.nof_prb; + phy_state.args.nof_carriers = args.nof_carriers; + phy_state.args.dl.nof_max_prb = args.max_nof_prb; + phy_state.args.dl.pdsch.max_prb = args.max_nof_prb; + phy_state.args.ul.nof_max_prb = args.max_nof_prb; + phy_state.args.ul.pusch.max_prb = args.max_nof_prb; // Skip init of workers if no NR carriers if (phy_state.args.nof_carriers == 0) { @@ -52,10 +55,6 @@ bool worker_pool::init(const phy_args_nr_t& args, phy_common* common, stack_inte auto w = new sf_worker(common, &phy_state, log); pool.init_worker(i, w, prio, args.worker_cpu_mask); workers.push_back(std::unique_ptr(w)); - - if (not w->set_carrier_unlocked(0, &phy_state.carrier)) { - return false; - } } // Set PHY loglevel @@ -79,10 +78,11 @@ void worker_pool::start_worker(sf_worker* w) sf_worker* worker_pool::wait_worker(uint32_t tti) { + logger.set_context(tti); sf_worker* worker = (sf_worker*)pool.wait_worker(tti); // Generate PRACH if ready - if (prach_buffer->is_ready_to_send(tti, phy_state.carrier.pci)) { + if (prach_buffer->is_ready_to_send(tti, phy_state.cfg.carrier.pci)) { uint32_t nof_prach_sf = 0; float prach_target_power = 0.0f; cf_t* prach_ptr = prach_buffer->generate(0.0f, &nof_prach_sf, &prach_target_power); @@ -123,7 +123,7 @@ int worker_pool::set_ul_grant(std::array pac if (logger.info.enabled()) { std::array str; - srsran_dci_ul_nr_to_str(&dci_ul, str.data(), str.size()); + srsran_dci_ul_nr_to_str(NULL, &dci_ul, str.data(), str.size()); logger.set_context(phy_state.rar_grant_tti); logger.info("Setting RAR Grant %s", str.data()); } @@ -136,12 +136,14 @@ bool worker_pool::set_config(const srsran::phy_cfg_nr_t& cfg) { phy_state.cfg = cfg; - // Set PRACH hard-coded cell + logger.info( + "Setting new PHY configuration ARFCN=%d, PCI=%d", cfg.carrier.absolute_frequency_point_a, cfg.carrier.pci); + + // Best effort to convert NR carrier into LTE cell srsran_cell_t cell = {}; - cell.nof_prb = 50; - cell.id = phy_state.carrier.pci; - if (not prach_buffer->set_cell(cell, phy_state.cfg.prach)) { - logger.error("Error setting PRACH cell"); + int ret = srsran_carrier_to_cell(&phy_state.cfg.carrier, &cell); + if (ret < SRSRAN_SUCCESS) { + logger.error("Converting carrier to cell for PRACH (%d)", ret); return false; } @@ -152,6 +154,21 @@ bool worker_pool::set_config(const srsran::phy_cfg_nr_t& cfg) } } + // Best effort to set up NR-PRACH config reused for NR + srsran_prach_cfg_t prach_cfg = cfg.prach; + uint32_t lte_nr_prach_offset = (phy_state.cfg.carrier.nof_prb - cell.nof_prb) / 2; + if (prach_cfg.freq_offset < lte_nr_prach_offset) { + logger.error("prach_cfg.freq_offset=%d is not compatible with LTE", prach_cfg.freq_offset); + return false; + } + prach_cfg.freq_offset -= lte_nr_prach_offset; + + // Set the PRACH configuration + if (not prach_buffer->set_cell(cell, prach_cfg)) { + logger.error("Error setting PRACH cell"); + return false; + } + return true; } diff --git a/srsue/src/stack/mac/proc_ra.cc b/srsue/src/stack/mac/proc_ra.cc index 8b696882b..59639df75 100644 --- a/srsue/src/stack/mac/proc_ra.cc +++ b/srsue/src/stack/mac/proc_ra.cc @@ -614,6 +614,10 @@ void ra_proc::update_rar_window(int& rar_window_start, int& rar_window_length) void ra_proc::harq_retx() { task_queue.push([this]() { + if (state != CONTENTION_RESOLUTION) { + rWarning("Ignore HARQ retx when not in contention resolution."); + return; + } rInfo("Restarting ContentionResolutionTimer=%d ms", contention_resolution_timer.duration()); contention_resolution_timer.run(); }); @@ -623,6 +627,10 @@ void ra_proc::harq_retx() void ra_proc::harq_max_retx() { task_queue.push([this]() { + if (state != CONTENTION_RESOLUTION) { + rWarning("Ignore HARQ retx when not in contention resolution."); + return; + } rWarning("Contention Resolution is considered not successful. Stopping PDCCH Search and going to Response Error"); response_error(); }); diff --git a/srsue/src/stack/mac/ul_harq.cc b/srsue/src/stack/mac/ul_harq.cc index a453392e6..ded1d8c2a 100644 --- a/srsue/src/stack/mac/ul_harq.cc +++ b/srsue/src/stack/mac/ul_harq.cc @@ -196,7 +196,7 @@ void ul_harq_entity::ul_harq_process::new_grant_ul(mac_interface_phy_lte::mac_gr harq_entity->ra_procedure->harq_max_retx(); } reset(); - } else if (grant.rnti == harq_entity->rntis->temp_rnti && current_tx_nb) { + } else if (grant.rnti == harq_entity->rntis->temp_rnti && current_tx_nb && !grant.hi_value) { harq_entity->ra_procedure->harq_retx(); } } diff --git a/srsue/src/stack/mac_nr/dl_harq_nr.cc b/srsue/src/stack/mac_nr/dl_harq_nr.cc index e7996dee5..b23cac552 100644 --- a/srsue/src/stack/mac_nr/dl_harq_nr.cc +++ b/srsue/src/stack/mac_nr/dl_harq_nr.cc @@ -85,7 +85,7 @@ void dl_harq_entity_nr::new_grant_dl(const mac_nr_grant_dl_t& grant, mac_interfa // Set BCCH PID for SI RNTI proc_ptr = &bcch_proc; } else { - if (grant.pid >= cfg.nof_procs) { + if (harq_procs.at(grant.pid) == nullptr) { logger.error("Grant for invalid HARQ PID=%d", grant.pid); return; } @@ -113,7 +113,7 @@ void dl_harq_entity_nr::tb_decoded(const mac_nr_grant_dl_t& grant, mac_interface if (grant.rnti == SRSRAN_SIRNTI) { bcch_proc.tb_decoded(grant, std::move(result)); } else { - if (grant.pid >= cfg.nof_procs) { + if (harq_procs.at(grant.pid) == nullptr) { logger.error("Decoded TB for invalid HARQ PID=%d", grant.pid); return; } @@ -133,9 +133,11 @@ void dl_harq_entity_nr::reset() bcch_proc.reset(); } -float dl_harq_entity_nr::get_average_retx() +dl_harq_entity_nr::dl_harq_metrics_t dl_harq_entity_nr::get_metrics() { - return average_retx; + dl_harq_metrics_t tmp = metrics; + metrics = {}; + return tmp; } dl_harq_entity_nr::dl_harq_process_nr::dl_harq_process_nr(dl_harq_entity_nr* parent_) : @@ -203,6 +205,8 @@ void dl_harq_entity_nr::dl_harq_process_nr::new_grant_dl(const mac_nr_grant_dl_t is_first_tb = false; } else { // This is a retransmission + n_retx++; + if (not acked) { // If data has not yet been successfully decoded, instruct the PHY to combine the received data action->tb.enabled = true; @@ -212,8 +216,7 @@ void dl_harq_entity_nr::dl_harq_process_nr::new_grant_dl(const mac_nr_grant_dl_t } } - // increment counter and store grant - n_retx++; + // store grant current_grant = grant; } @@ -233,11 +236,13 @@ void dl_harq_entity_nr::dl_harq_process_nr::tb_decoded(const mac_nr_grant_dl_t& } else { logger.debug("Delivering PDU=%d bytes to Dissassemble and Demux unit", grant.tbs); harq_entity->demux_unit->push_pdu(std::move(result.payload), grant.tti); - - // Compute average number of retransmissions per packet - harq_entity->average_retx = SRSRAN_VEC_CMA((float)n_retx, harq_entity->average_retx, harq_entity->nof_pkts++); } } + + harq_entity->metrics.rx_ok++; + harq_entity->metrics.rx_brate += grant.tbs * 8; + } else { + harq_entity->metrics.rx_ko++; } logger.info("DL %d: %s tbs=%d, rv=%d, ack=%s, ndi=%d", diff --git a/srsue/src/stack/mac_nr/mac_nr.cc b/srsue/src/stack/mac_nr/mac_nr.cc index 726e0822e..ad7d28d85 100644 --- a/srsue/src/stack/mac_nr/mac_nr.cc +++ b/srsue/src/stack/mac_nr/mac_nr.cc @@ -316,13 +316,6 @@ void mac_nr::tb_decoded(const uint32_t cc_idx, const mac_nr_grant_dl_t& grant, t dl_harq.at(cc_idx)->tb_decoded(grant, std::move(result)); } - - // do metrics - metrics[cc_idx].rx_brate += grant.tbs * 8; - metrics[cc_idx].rx_pkts++; - if (not result.ack) { - metrics[cc_idx].rx_errors++; - } } void mac_nr::new_grant_ul(const uint32_t cc_idx, const mac_nr_grant_ul_t& grant, tb_action_ul_t* action) @@ -355,8 +348,6 @@ void mac_nr::new_grant_ul(const uint32_t cc_idx, const mac_nr_grant_ul_t& grant, } ul_harq.at(cc_idx)->new_grant_ul(grant, action); - metrics[cc_idx].tx_pkts++; - metrics[cc_idx].tx_brate += grant.tbs * 8; // store PCAP if (action->tb.enabled && pcap) { @@ -481,16 +472,32 @@ void mac_nr::get_metrics(mac_metrics_t m[SRSRAN_MAX_CARRIERS]) float dl_avg_ret = 0; int dl_avg_ret_count = 0; - for (const auto& cc : metrics) { - tx_pkts += cc.tx_pkts; - tx_errors += cc.tx_errors; - tx_brate += cc.tx_brate; - rx_pkts += cc.rx_pkts; - rx_errors += cc.rx_errors; - rx_brate += cc.rx_brate; - ul_buffer += cc.ul_buffer; + // Get metrics from HARQ entities explicitly + for (uint32_t i = 0; i < metrics.size(); ++i) { + if (dl_harq.at(i) != nullptr) { + dl_harq_entity_nr::dl_harq_metrics_t harq_metrics = dl_harq.at(i)->get_metrics(); + rx_pkts += (harq_metrics.rx_ok + harq_metrics.rx_ko); + rx_errors += harq_metrics.rx_ko; + rx_brate += harq_metrics.rx_brate; + } + if (ul_harq.at(i) != nullptr) { + ul_harq_entity_nr::ul_harq_metrics_t harq_metrics = ul_harq.at(i)->get_metrics(); + tx_pkts += (harq_metrics.tx_ok + harq_metrics.tx_ko); + tx_errors += harq_metrics.tx_ko; + tx_brate += harq_metrics.tx_brate; + } } + // assign accumulated metrics for PCELL carrier only + auto& pcell_cc = metrics[PCELL_CC_IDX]; + pcell_cc.tx_pkts = tx_pkts; + pcell_cc.tx_errors = tx_errors; + pcell_cc.tx_brate = tx_brate; + pcell_cc.rx_pkts = rx_pkts; + pcell_cc.rx_errors = rx_errors; + pcell_cc.rx_brate = rx_brate; + pcell_cc.ul_buffer = mac_buffer_states.get_total_buffer_size(); + memcpy(m, metrics.data(), sizeof(mac_metrics_t) * SRSRAN_MAX_CARRIERS); metrics = {}; } diff --git a/srsue/src/stack/mac_nr/proc_ra_nr.cc b/srsue/src/stack/mac_nr/proc_ra_nr.cc index 2c05337ea..8aa2699d7 100644 --- a/srsue/src/stack/mac_nr/proc_ra_nr.cc +++ b/srsue/src/stack/mac_nr/proc_ra_nr.cc @@ -181,7 +181,7 @@ void proc_ra_nr::ra_preamble_transmission() // instruct the physical layer to transmit the Random Access Preamble using the selected PRACH occasion, corresponding // RA-RNTI (if available), PREAMBLE_INDEX, and PREAMBLE_RECEIVED_TARGET_POWER. phy->send_prach(prach_occasion, preamble_index, preamble_received_target_power); - prach_send_timer.set(100, [this](uint32_t tid) { timer_expired(tid); }); // TODO find a suitable 100? + prach_send_timer.set(PRACH_SEND_CALLBACK_TIMEOUT, [this](uint32_t tid) { timer_expired(tid); }); prach_send_timer.run(); state = WAITING_FOR_PRACH_SENT; } diff --git a/srsue/src/stack/mac_nr/test/mac_nr_test.cc b/srsue/src/stack/mac_nr/test/mac_nr_test.cc index 89739fb99..e15ff0d51 100644 --- a/srsue/src/stack/mac_nr/test/mac_nr_test.cc +++ b/srsue/src/stack/mac_nr/test/mac_nr_test.cc @@ -125,10 +125,12 @@ public: { logger.debug(payload, nof_bytes, "Received %d B on LCID %d", nof_bytes, lcid); received_bytes += nof_bytes; + received_pdus++; } void write_sdu(uint32_t lcid, uint32_t nof_bytes) { ul_queues[lcid] += nof_bytes; } uint32_t get_received_bytes() { return received_bytes; } + uint32_t get_received_pdus() { return received_pdus; } void disable_read() { read_enable = false; } void set_read_len(uint32_t len) { read_len = len; } @@ -143,8 +145,9 @@ public: private: bool read_enable = true; int32_t read_len = -1; // read all - uint32_t read_min = 0; // minimum "grant size" for read_pdu() to return data - uint32_t received_bytes; + uint32_t read_min = 0; // minimum "grant size" for read_pdu() to return data + uint32_t received_bytes = 0; + uint32_t received_pdus = 0; srslog::basic_logger& logger = srslog::fetch_basic_logger("RLC"); // UL queues where key is LCID and value the queue length std::map ul_queues; @@ -285,6 +288,12 @@ int mac_nr_ul_logical_channel_prioritization_test1() TESTASSERT(memcmp(ul_action.tb.payload->msg, tv, sizeof(tv)) == 0); } + // Check UL metrics + mac_metrics_t metrics[SRSRAN_MAX_CARRIERS] = {}; + mac.get_metrics(metrics); + TESTASSERT(metrics[0].tx_pkts == 1); + TESTASSERT(metrics[0].tx_errors == 0); + stack.run_tti(0); // create new grant that indicates/requests a retx of the previous PDU @@ -315,6 +324,11 @@ int mac_nr_ul_logical_channel_prioritization_test1() TESTASSERT(memcmp(ul_action.tb.payload->msg, tv, sizeof(tv)) == 0); } + // Verify we account the retx + mac.get_metrics(metrics); + TESTASSERT(metrics[0].tx_pkts == 1); + TESTASSERT(metrics[0].tx_errors == 1); + // make sure MAC PDU thread picks up before stopping stack.run_tti(0); mac.stop(); @@ -576,6 +590,115 @@ int mac_nr_ul_periodic_bsr_test() return SRSRAN_SUCCESS; } +// Basic DL test with retransmitted PDSCH +int mac_nr_dl_retx_test() +{ + // Dummy DL-SCH PDU + const uint8_t tv[] = {0x04, 0x0a, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // dummy layers + dummy_phy phy; + rlc_dummy rlc; + rrc_dummy rrc; + stack_dummy stack; + + // the actual MAC + mac_nr mac(&stack.task_sched); + + mac_nr_args_t args = {}; + mac.init(args, &phy, &rlc, &rrc); + + srsran::dl_harq_cfg_nr_t harq_cfg; + TESTASSERT(mac.set_config(harq_cfg) == SRSRAN_SUCCESS); + + stack.init(&mac, &phy); + const uint16_t crnti = 0x1001; + mac.set_crnti(crnti); + + // generate config (default DRB1 config for EN-DC) + std::vector lcids; + srsran::logical_channel_config_t config = {}; + config.lcid = 4; + config.lcg = 6; + config.PBR = 0; + config.BSD = 1000; // 1000ms + config.priority = 11; + lcids.push_back(config); + + // setup LCIDs in MAC + for (auto& channel : lcids) { + mac.setup_lcid(channel); + } + + // create DL grant for MAC + { + mac_interface_phy_nr::mac_nr_grant_dl_t mac_grant = {}; + mac_grant.rnti = crnti; + mac_grant.tbs = sizeof(tv); + int cc_idx = 0; + + mac_interface_phy_nr::tb_action_dl_t dl_action; // don't initialize on purpose + + // Send grant to MAC and get action for this TB + mac.new_grant_dl(cc_idx, mac_grant, &dl_action); + + TESTASSERT(dl_action.tb.enabled == true); + TESTASSERT(dl_action.tb.softbuffer != nullptr); + + // prepare action result + mac_interface_phy_nr::tb_action_dl_result_t dl_result = {}; + dl_result.ack = true; + dl_result.payload = srsran::make_byte_buffer(); + TESTASSERT(dl_result.payload != nullptr); + memcpy(dl_result.payload->msg, tv, sizeof(tv)); + dl_result.payload->N_bytes = sizeof(tv); + + // pass all to MAC + mac.tb_decoded(cc_idx, mac_grant, std::move(dl_result)); + } + + // let stack run to process received PDUs + stack.run_tti(0); + TESTASSERT(rlc.get_received_pdus() == 1); + + // create same grant and pass to MAC to indicate DL retx + { + mac_interface_phy_nr::mac_nr_grant_dl_t mac_grant = {}; + mac_grant.rnti = crnti; + mac_grant.tbs = sizeof(tv); + int cc_idx = 0; + + mac_interface_phy_nr::tb_action_dl_t dl_action; + + // Send grant to MAC and get action for this TB + mac.new_grant_dl(cc_idx, mac_grant, &dl_action); + + // MAC should instruct PHY to *not* decode PDSCH + TESTASSERT(dl_action.tb.enabled == false); + TESTASSERT(dl_action.tb.softbuffer == nullptr); + + // prepare action result + mac_interface_phy_nr::tb_action_dl_result_t dl_result = {}; + dl_result.ack = false; + + // still pass negative result to MAC (needed for metrics) + mac.tb_decoded(cc_idx, mac_grant, std::move(dl_result)); + } + + // run stack again + stack.run_tti(0); + TESTASSERT(rlc.get_received_pdus() == 1); + + // check metrics + mac_metrics_t metrics[SRSRAN_MAX_CARRIERS] = {}; + mac.get_metrics(metrics); + TESTASSERT(metrics[0].rx_pkts == 2); + TESTASSERT(metrics[0].rx_errors == 1); + + return SRSRAN_SUCCESS; +} + int main() { #if HAVE_PCAP @@ -592,6 +715,7 @@ int main() TESTASSERT(mac_nr_ul_logical_channel_prioritization_test1() == SRSRAN_SUCCESS); TESTASSERT(mac_nr_ul_logical_channel_prioritization_test2() == SRSRAN_SUCCESS); TESTASSERT(mac_nr_ul_periodic_bsr_test() == SRSRAN_SUCCESS); + TESTASSERT(mac_nr_dl_retx_test() == SRSRAN_SUCCESS); return SRSRAN_SUCCESS; } diff --git a/srsue/src/stack/mac_nr/ul_harq_nr.cc b/srsue/src/stack/mac_nr/ul_harq_nr.cc index dcd451128..e479462f4 100644 --- a/srsue/src/stack/mac_nr/ul_harq_nr.cc +++ b/srsue/src/stack/mac_nr/ul_harq_nr.cc @@ -98,7 +98,6 @@ void ul_harq_entity_nr::new_grant_ul(const mac_interface_phy_nr::mac_nr_grant_ul logger.warning("Ignoring grant for CS-RNTI=0x%x", grant.rnti); } else { logger.warning("Received grant for unknown rnti=0x%x", grant.rnti); - printf("Received grant for unknown rnti=0x%x\n", grant.rnti); } srsran_expect(action->tb.enabled ? action->tb.payload != nullptr : true, @@ -114,9 +113,11 @@ int ul_harq_entity_nr::get_current_tbs(uint32_t pid) return harq_procs.at(pid).get_current_tbs(); } -float ul_harq_entity_nr::get_average_retx() +ul_harq_entity_nr::ul_harq_metrics_t ul_harq_entity_nr::get_metrics() { - return average_retx; + ul_harq_entity_nr::ul_harq_metrics_t tmp = metrics; + metrics = {}; + return tmp; } ul_harq_entity_nr::ul_harq_process_nr::ul_harq_process_nr() : logger(srslog::fetch_basic_logger("MAC")) {} @@ -235,10 +236,8 @@ int ul_harq_entity_nr::ul_harq_process_nr::get_current_tbs() void ul_harq_entity_nr::ul_harq_process_nr::generate_new_tx(const mac_interface_phy_nr::mac_nr_grant_ul_t& grant, mac_interface_phy_nr::tb_action_ul_t* action) { - // Compute average number of retransmissions per packet considering previous packet - harq_entity->average_retx = SRSRAN_VEC_CMA((float)nof_retx, harq_entity->average_retx, harq_entity->nof_pkts++); - current_grant = grant; - nof_retx = 0; + current_grant = grant; + nof_retx = 0; logger.info("UL %d: New TX%s, rv=%d, tbs=%d", pid, @@ -247,6 +246,8 @@ void ul_harq_entity_nr::ul_harq_process_nr::generate_new_tx(const mac_interface_ grant.tbs); generate_tx(action); + + harq_entity->metrics.tx_ok++; } // Retransmission (Section 5.4.2.2) @@ -259,12 +260,16 @@ void ul_harq_entity_nr::ul_harq_process_nr::generate_retx(const mac_interface_ph current_grant = grant; generate_tx(action); + + // increment Tx error count + harq_entity->metrics.tx_ko++; } // Transmission of pending frame (Section 5.4.2.2) void ul_harq_entity_nr::ul_harq_process_nr::generate_tx(mac_interface_phy_nr::tb_action_ul_t* action) { nof_retx++; + harq_entity->metrics.tx_brate += current_grant.tbs * 8; action->tb.rv = current_grant.rv; action->tb.enabled = true; diff --git a/srsue/src/stack/rrc/CMakeLists.txt b/srsue/src/stack/rrc/CMakeLists.txt index 6b5dd449a..19210a4e0 100644 --- a/srsue/src/stack/rrc/CMakeLists.txt +++ b/srsue/src/stack/rrc/CMakeLists.txt @@ -18,8 +18,9 @@ # and at http://www.gnu.org/licenses/. # -set(SOURCES rrc.cc rrc_nr.cc rrc_procedures.cc rrc_meas.cc rrc_cell.cc phy_controller.cc) - +set(SOURCES rrc.cc rrc_procedures.cc rrc_meas.cc rrc_cell.cc phy_controller.cc) add_library(srsue_rrc STATIC ${SOURCES}) + +set(SOURCES rrc_nr.cc) add_library(srsue_rrc_nr STATIC ${SOURCES}) diff --git a/srsue/src/stack/rrc/rrc.cc b/srsue/src/stack/rrc/rrc.cc index 4efc9d630..8ad751683 100644 --- a/srsue/src/stack/rrc/rrc.cc +++ b/srsue/src/stack/rrc/rrc.cc @@ -933,11 +933,11 @@ void rrc::send_con_restablish_request(reest_cause_e cause, uint16_t crnti, uint1 srsran::console("RRC Connection Reestablishment to PCI=%d, EARFCN=%d (Cause: \"%s\")\n", meas_cells.serving_cell().phy_cell.pci, meas_cells.serving_cell().phy_cell.earfcn, - cause.to_string().c_str()); + cause.to_string()); logger.info("RRC Connection Reestablishment to PCI=%d, EARFCN=%d (Cause: \"%s\")", meas_cells.serving_cell().phy_cell.pci, meas_cells.serving_cell().phy_cell.earfcn, - cause.to_string().c_str()); + cause.to_string()); send_ul_ccch_msg(ul_ccch_msg); } diff --git a/srsue/src/stack/rrc/rrc_meas.cc b/srsue/src/stack/rrc/rrc_meas.cc index b3b039e3f..5dbdf21da 100644 --- a/srsue/src/stack/rrc/rrc_meas.cc +++ b/srsue/src/stack/rrc/rrc_meas.cc @@ -770,9 +770,9 @@ void rrc::rrc_meas::var_meas_cfg::report_triggers() logger.debug("MEAS: Calculating reports for MeasId=%d, ObjectId=%d (Type %s), ReportId=%d (Type %s)", m.first, m.second.meas_obj_id, - report_cfg.report_cfg.type().to_string().c_str(), + report_cfg.report_cfg.type().to_string(), m.second.report_cfg_id, - meas_obj.meas_obj.type().to_string().c_str()); + meas_obj.meas_obj.type().to_string()); if (meas_obj.meas_obj.type().value == meas_obj_to_add_mod_s::meas_obj_c_::types_opts::meas_obj_eutra && report_cfg.report_cfg.type().value == report_cfg_to_add_mod_s::report_cfg_c_::types::report_cfg_eutra) { @@ -784,8 +784,8 @@ void rrc::rrc_meas::var_meas_cfg::report_triggers() m.first, report_cfg.report_cfg.report_cfg_inter_rat(), meas_obj.meas_obj.meas_obj_nr_r15()); } else { logger.error("Unsupported combination of measurement object type %s and report config type %s ", - meas_obj.meas_obj.type().to_string().c_str(), - report_cfg.report_cfg.type().to_string().c_str()); + meas_obj.meas_obj.type().to_string(), + report_cfg.report_cfg.type().to_string()); } // upon expiry of the periodical reporting timer for this measId @@ -844,7 +844,7 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers_eutra(uint32_t meas_i trigger_state[meas_id][serv_cell->get_pci()].event_condition(enter_condition, exit_condition); logger.debug("MEAS: eventId=%s, Ms=%.2f, hyst=%.2f, Thresh=%.2f, enter_condition=%d, exit_condition=%d", - event_id.type().to_string().c_str(), + event_id.type().to_string(), Ms, hyst, thresh, @@ -855,8 +855,7 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers_eutra(uint32_t meas_i } else { auto cells = rrc_ptr->get_cells(meas_obj.carrier_freq); for (auto& pci : cells) { - logger.debug( - "MEAS: eventId=%s, pci=%d, earfcn=%d", event_id.type().to_string().c_str(), pci, meas_obj.carrier_freq); + logger.debug("MEAS: eventId=%s, pci=%d, earfcn=%d", event_id.type().to_string(), pci, meas_obj.carrier_freq); float Ofn = offset_val(meas_obj); float Ocn = 0; // If the cell was provided by the configuration, check if it has an individual q_offset @@ -908,14 +907,14 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers_eutra(uint32_t meas_i exit_condition = (Ms - hyst > th1) && (Mn + Ofn + Ocn + hyst < th2); break; default: - logger.error("Error event %s not implemented", event_id.type().to_string().c_str()); + logger.error("Error event %s not implemented", event_id.type().to_string()); } trigger_state[meas_id][pci].event_condition(enter_condition, exit_condition); logger.debug( "MEAS: eventId=%s, pci=%d, Ms=%.2f, hyst=%.2f, Thresh=%.2f, enter_condition=%d, exit_condition=%d", - event_id.type().to_string().c_str(), + event_id.type().to_string(), pci, Ms, hyst, @@ -948,8 +947,7 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers_interrat_nr(uint32_t bool exit_condition = false; float Mn = 0.0; - logger.debug( - "MEAS: eventId=%s, pci=%d, earfcn=%d", event_id.type().to_string().c_str(), pci, meas_obj.carrier_freq_r15); + logger.debug("MEAS: eventId=%s, pci=%d, earfcn=%d", event_id.type().to_string(), pci, meas_obj.carrier_freq_r15); if (event_id.event_b1_nr_r15().b1_thres_nr_r15.type().value == thres_nr_r15_c::types::nr_rsrp_r15) { Mn = rrc_ptr->get_cell_rsrp_nr(meas_obj.carrier_freq_r15, pci); @@ -965,7 +963,7 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers_interrat_nr(uint32_t trigger_state_nr[meas_id][pci].event_condition(enter_condition, exit_condition); logger.debug("MEAS (NR): eventId=%s, Mn=%.2f, hyst=%.2f, Thresh=%.2f, enter_condition=%d, exit_condition=%d", - event_id.type().to_string().c_str(), + event_id.type().to_string(), Mn, hyst, thresh, @@ -1012,9 +1010,9 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers() logger.debug("MEAS: Calculating trigger for MeasId=%d, ObjectId=%d (Type %s), ReportId=%d (Type %s)", m.first, m.second.meas_obj_id, - report_cfg.report_cfg.type().to_string().c_str(), + report_cfg.report_cfg.type().to_string(), m.second.report_cfg_id, - meas_obj.meas_obj.type().to_string().c_str()); + meas_obj.meas_obj.type().to_string()); if (meas_obj.meas_obj.type().value == meas_obj_to_add_mod_s::meas_obj_c_::types_opts::meas_obj_eutra && report_cfg.report_cfg.type().value == report_cfg_to_add_mod_s::report_cfg_c_::types::report_cfg_eutra) { @@ -1027,8 +1025,8 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers() m.first, report_cfg.report_cfg.report_cfg_inter_rat(), meas_obj.meas_obj.meas_obj_nr_r15()); else { logger.error("Unsupported combination of measurement object type %s and report config type %s ", - meas_obj.meas_obj.type().to_string().c_str(), - report_cfg.report_cfg.type().to_string().c_str()); + meas_obj.meas_obj.type().to_string(), + report_cfg.report_cfg.type().to_string()); } } } @@ -1346,7 +1344,7 @@ void rrc::rrc_meas::var_meas_cfg::measObject_addmod(const meas_obj_to_add_mod_li measObject_addmod_nr_r15(l); break; default: - logger.error("Unsupported measObject type: %s", l.meas_obj.type().to_string().c_str()); + logger.error("Unsupported measObject type: %s", l.meas_obj.type().to_string()); break; } } @@ -1404,7 +1402,7 @@ void rrc::rrc_meas::var_meas_cfg::reportConfig_addmod_eutra(const report_cfg_to_ logger.info("MEAS: %s reportConfig id=%d, event-type=%s, time-to-trigger=%d ms, reportInterval=%d", !entry_exists ? "Added" : "Modified", l.report_cfg_id, - report_cfg.trigger_type.event().event_id.type().to_string().c_str(), + report_cfg.trigger_type.event().event_id.type().to_string(), report_cfg.trigger_type.event().time_to_trigger.to_number(), report_cfg.report_interv.to_number()); if (entry_exists) { @@ -1423,7 +1421,7 @@ void rrc::rrc_meas::var_meas_cfg::reportConfig_addmod_interrat(const report_cfg_ logger.info("MEAS: Inter RAT %s reportConfig id=%d, event-type=%s, time-to-trigger=%d ms, reportInterval=%d", !entry_exists ? "Added" : "Modified", l.report_cfg_id, - report_cfg.trigger_type.event().event_id.type().to_string().c_str(), + report_cfg.trigger_type.event().event_id.type().to_string(), report_cfg.trigger_type.event().time_to_trigger.to_number(), report_cfg.report_interv.to_number()); log_debug_trigger_value_interrat(report_cfg.trigger_type.event().event_id); @@ -1441,7 +1439,7 @@ void rrc::rrc_meas::var_meas_cfg::reportConfig_addmod(const report_cfg_to_add_mo reportConfig_addmod_interrat(l); break; default: - logger.error("MEAS: Unsupported reportConfig type: %s", l.report_cfg.type().to_string().c_str()); + logger.error("MEAS: Unsupported reportConfig type: %s", l.report_cfg.type().to_string()); break; } } @@ -1461,7 +1459,7 @@ void rrc::rrc_meas::var_meas_cfg::log_debug_trigger_value_interrat( break; } default: - logger.debug("MEAS: Unsupported inter rat trigger type %s", e.type().to_string().c_str()); + logger.debug("MEAS: Unsupported inter rat trigger type %s", e.type().to_string()); break; } } diff --git a/srsue/src/stack/rrc/rrc_nr.cc b/srsue/src/stack/rrc/rrc_nr.cc index 1dce600f8..7143b991f 100644 --- a/srsue/src/stack/rrc/rrc_nr.cc +++ b/srsue/src/stack/rrc/rrc_nr.cc @@ -66,8 +66,8 @@ void rrc_nr::init(phy_interface_rrc_nr* phy_, stack = stack_; args = args_; - running = true; - fake_measurement_timer = task_sched.get_unique_timer(); + running = true; + sim_measurement_timer = task_sched.get_unique_timer(); } void rrc_nr::stop() @@ -112,22 +112,22 @@ const char* rrc_nr::get_rb_name(uint32_t lcid) void rrc_nr::timer_expired(uint32_t timeout_id) { logger.debug("Handling Timer Expired"); - if (timeout_id == fake_measurement_timer.id()) { - logger.debug("Triggered Fake Measurement"); + if (timeout_id == sim_measurement_timer.id()) { + logger.debug("Triggered simulated measurement"); - phy_meas_nr_t fake_meas = {}; + phy_meas_nr_t sim_meas = {}; std::vector phy_meas_nr; - fake_meas.rsrp = -60.0; - fake_meas.rsrq = -60.0; - fake_meas.cfo_hz = 1.0; - fake_meas.arfcn_nr = fake_measurement_carrier_freq_r15; - fake_meas.pci_nr = 500; - phy_meas_nr.push_back(fake_meas); + sim_meas.rsrp = -60.0; + sim_meas.rsrq = -60.0; + sim_meas.cfo_hz = 1.0; + sim_meas.arfcn_nr = sim_measurement_carrier_freq_r15; + sim_meas.pci_nr = args.sim_nr_meas_pci; + phy_meas_nr.push_back(sim_meas); rrc_eutra->new_cell_meas_nr(phy_meas_nr); auto timer_expire_func = [this](uint32_t tid) { timer_expired(tid); }; - fake_measurement_timer.set(10, timer_expire_func); - fake_measurement_timer.run(); + sim_measurement_timer.set(sim_measurement_timer_duration_ms, timer_expire_func); + sim_measurement_timer.run(); } } @@ -414,20 +414,20 @@ void rrc_nr::get_nr_capabilities(srsran::byte_buffer_t* nr_caps_pdu) void rrc_nr::phy_meas_stop() { - // possbile race condition for fake_measurement timer, which might be set at the same moment as stopped => fix with + // possbile race condition for sim_measurement timer, which might be set at the same moment as stopped => fix with // phy integration - logger.debug("Stopping fake measurements"); - fake_measurement_timer.stop(); + logger.debug("Stopping simulated measurements"); + sim_measurement_timer.stop(); } void rrc_nr::phy_set_cells_to_meas(uint32_t carrier_freq_r15) { logger.debug("Measuring phy cell %d ", carrier_freq_r15); // Start timer for fake measurements - auto timer_expire_func = [this](uint32_t tid) { timer_expired(tid); }; - fake_measurement_carrier_freq_r15 = carrier_freq_r15; - fake_measurement_timer.set(10, timer_expire_func); - fake_measurement_timer.run(); + auto timer_expire_func = [this](uint32_t tid) { timer_expired(tid); }; + sim_measurement_carrier_freq_r15 = carrier_freq_r15; + sim_measurement_timer.set(sim_measurement_timer_duration_ms, timer_expire_func); + sim_measurement_timer.run(); } bool rrc_nr::configure_sk_counter(uint16_t sk_counter) @@ -1060,7 +1060,8 @@ bool rrc_nr::apply_sp_cell_cfg(const sp_cell_cfg_s& sp_cell_cfg) mac->set_crnti(recfg_with_sync.new_ue_id); if (recfg_with_sync.sp_cell_cfg_common_present) { if (recfg_with_sync.sp_cell_cfg_common.pci_present) { - phy_cfg.carrier.pci = recfg_with_sync.sp_cell_cfg_common.pci; + phy_cfg.carrier.pci = recfg_with_sync.sp_cell_cfg_common.pci; + phy_cfg.carrier.max_mimo_layers = 1; // TODO: flatten } else { logger.warning("Option PCI not present"); return false; @@ -1254,7 +1255,7 @@ bool rrc_nr::apply_cell_group_cfg(const cell_group_cfg_s& cell_group_cfg) bool rrc_nr::apply_drb_release(const uint8_t drb) { uint32_t lcid = get_lcid_for_drbid(drb); - if(lcid == 0){ + if (lcid == 0) { logger.warning("Can not release bearer with lcid %d and drb %d", lcid, drb); return false; } @@ -1288,7 +1289,7 @@ bool rrc_nr::apply_drb_add_mod(const drb_to_add_mod_s& drb_cfg) } if (!(drb_cfg.cn_assoc.type() == drb_to_add_mod_s::cn_assoc_c_::types_opts::eps_bearer_id)) { - logger.error("CN associtaion type not supported %s ", drb_cfg.cn_assoc.type().to_string().c_str()); + logger.error("CN association type not supported %s ", drb_cfg.cn_assoc.type().to_string()); return false; } uint32_t eps_bearer_id = drb_cfg.cn_assoc.eps_bearer_id(); @@ -1442,7 +1443,7 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator Error("Reconfiguration does not contain Secondary Cell Group Config"); return proc_outcome_t::error; } - + if (not rrc_recfg.crit_exts.rrc_recfg().secondary_cell_group_present) { Error("Reconfiguration does not contain Secondary Cell Group Config"); return proc_outcome_t::error; @@ -1476,23 +1477,23 @@ proc_outcome_t rrc_nr::connection_reconf_no_ho_proc::init(const reconf_initiator } } - if(nr_radio_bearer_cfg1_r15_present){ - cbit_ref bref1(nr_radio_bearer_cfg1_r15.data(), nr_radio_bearer_cfg1_r15.size()); + if (nr_radio_bearer_cfg1_r15_present) { + cbit_ref bref1(nr_radio_bearer_cfg1_r15.data(), nr_radio_bearer_cfg1_r15.size()); - err = radio_bearer_cfg.unpack(bref1); - if (err != asn1::SRSASN_SUCCESS) { - Error("Could not unpack radio bearer config."); - return proc_outcome_t::error; - } + err = radio_bearer_cfg.unpack(bref1); + if (err != asn1::SRSASN_SUCCESS) { + Error("Could not unpack radio bearer config."); + return proc_outcome_t::error; + } - rrc_ptr->log_rrc_message( - "RRC NR Reconfiguration", Rx, nr_radio_bearer_cfg1_r15, radio_bearer_cfg, "Radio Bearer Config R15"); + rrc_ptr->log_rrc_message( + "RRC NR Reconfiguration", Rx, nr_radio_bearer_cfg1_r15, radio_bearer_cfg, "Radio Bearer Config R15"); - Info("Applying Radio Bearer Cfg"); - if (!rrc_ptr->apply_radio_bearer_cfg(radio_bearer_cfg)) { - return proc_outcome_t::error; + Info("Applying Radio Bearer Cfg"); + if (!rrc_ptr->apply_radio_bearer_cfg(radio_bearer_cfg)) { + return proc_outcome_t::error; + } } - } return proc_outcome_t::success; } diff --git a/srsue/src/ue.cc b/srsue/src/ue.cc index 19cdae717..63e70d384 100644 --- a/srsue/src/ue.cc +++ b/srsue/src/ue.cc @@ -102,7 +102,7 @@ int ue::init(const all_args_t& args_) } srsue::phy_args_nr_t phy_args_nr = {}; - phy_args_nr.nof_prb = args.phy.nr_nof_prb; + phy_args_nr.max_nof_prb = args.phy.nr_max_nof_prb; phy_args_nr.nof_carriers = args.phy.nof_nr_carriers; phy_args_nr.nof_phy_threads = args.phy.nof_phy_threads; phy_args_nr.worker_cpu_mask = args.phy.worker_cpu_mask; @@ -218,8 +218,8 @@ int ue::parse_args(const all_args_t& args_) } // replicate some RF parameter to make them available to PHY - args.phy.nof_rx_ant = args.rf.nof_antennas; - args.phy.agc_enable = args.rf.rx_gain < 0.0f; + args.phy.nof_rx_ant = args.rf.nof_antennas; + args.phy.agc_enable = args.rf.rx_gain < 0.0f; // populate DL EARFCN list if (not args.phy.dl_earfcn.empty()) { diff --git a/srsue/test/mac_test.cc b/srsue/test/mac_test.cc index 1b8ea8128..a95ae0a6b 100644 --- a/srsue/test/mac_test.cc +++ b/srsue/test/mac_test.cc @@ -259,7 +259,7 @@ public: ul_mac_grant.tb.ndi = ul_ndi; ul_mac_grant.tb.ndi_present = ack; } else { - ul_mac_grant.hi_value = true; + ul_mac_grant.hi_value = false; // PHICH with hi=0 to request retx ul_mac_grant.phich_available = true; ul_mac_grant.tb.ndi = ul_ndi; ul_mac_grant.tb.ndi_present = true; diff --git a/srsue/test/ttcn3/src/CMakeLists.txt b/srsue/test/ttcn3/src/CMakeLists.txt index 44e5b2663..4320c132b 100644 --- a/srsue/test/ttcn3/src/CMakeLists.txt +++ b/srsue/test/ttcn3/src/CMakeLists.txt @@ -24,10 +24,10 @@ add_executable(ttcn3_dut ttcn3_dut.cc lte_ttcn3_phy.cc ${SOURCES}) set(LINK_LIBRARIES srsue_stack srsue_upper srsue_rrc + srsue_rrc_nr srsran_upper srsran_common srsran_mac - srsran_mac srsran_phy srsran_radio srsran_upper @@ -37,7 +37,7 @@ set(LINK_LIBRARIES srsue_stack rrc_asn1 rrc_nr_asn1 sctp -${Boost_LIBRARIES}) + ${Boost_LIBRARIES}) target_link_libraries(ttcn3_dut ${LINK_LIBRARIES}) diff --git a/srsue/test/upper/CMakeLists.txt b/srsue/test/upper/CMakeLists.txt index 861864e35..da5d2538a 100644 --- a/srsue/test/upper/CMakeLists.txt +++ b/srsue/test/upper/CMakeLists.txt @@ -56,7 +56,7 @@ target_link_libraries(rrc_cell_test srsue_rrc srsue_upper srsran_upper srsran_ph add_test(rrc_cell_test rrc_cell_test) add_executable(ue_rrc_nr_test ue_rrc_nr_test.cc) -target_link_libraries(ue_rrc_nr_test srsue_rrc srsue_upper srsran_upper srsran_phy rrc_asn1 rrc_nr_asn1) +target_link_libraries(ue_rrc_nr_test srsue_rrc_nr srsue_upper srsran_common srsran_upper srsran_phy rrc_asn1 rrc_nr_asn1) ######################################################################## # Option to run command after build (useful for remote builds) diff --git a/srsue/ue.conf.example b/srsue/ue.conf.example index 3632f9c05..ce10510be 100644 --- a/srsue/ue.conf.example +++ b/srsue/ue.conf.example @@ -147,13 +147,14 @@ imei = 353490069873319 ##################################################################### # RRC configuration # -# ue_category: Sets UE category (range 1-5). Default: 4 -# release: UE Release (8 to 15) -# feature_group: Hex value of the featureGroupIndicators field in the -# UECapabilityInformation message. Default 0xe6041000 -# mbms_service_id: MBMS service id for autostarting MBMS reception -# (default -1 means disabled) -# mbms_service_port: Port of the MBMS service +# ue_category: Sets UE category (range 1-5). Default: 4 +# release: UE Release (8 to 15) +# feature_group: Hex value of the featureGroupIndicators field in the +# UECapabilityInformation message. Default 0xe6041000 +# mbms_service_id: MBMS service id for autostarting MBMS reception +# (default -1 means disabled) +# mbms_service_port: Port of the MBMS service +# nr_measurement_pci: NR PCI for the simulated NR measurement. Default: 500 ##################################################################### [rrc] #ue_category = 4